S3への接続がうまくいったので、今度はキューを作成したいと思い、AWS SQSでキューを作って、aws sdkを使ってphpからキューをいじろうと考えたのですが、下記エラーがでてしまいました。
<?xml version="1.0"?><ErrorResponse xmlns="http://queue.amazonaws.com/doc/2012-11-05/"><Error><Type>Sender</Type><Code>A (truncated...)PHP Fatal error: Uncaught exception 'Aws\Sqs\Exception\SqsException' with message 'Error executing "CreateQueue" on "https://sqs.us-west-2.amazonaws.com"; AWS HTTP error: Client error:
POST https://sqs.us-west-2.amazonaws.com
resulted in a403 Forbidden
response:
AccessDenied (client): Access to the resource https://sqs.us-west-2.amazonaws.com/ is denied. - <?xml version="1.0"?><ErrorResponse xmlns="http://queue.amazonaws.com/doc/2012-11-05/"><Error><Type>Sender</Type><Code>AccessDenied</Code><Message>Access to the resource https://sqs.us-west-2.amazonaws.com/ is denied.</Message><Detail/></Error><RequestId>hogehoge</RequestId></ErrorResponse>'
ためしたこと
AWSコンソール上(SQSのアクセス許可タブ内で)アクセス許可の追加を押下し、すべてのSQSアクションのチェックボックスにチェックを入れ、効果が許可であることを確かめた。
アクセス用のソースコード
php
1 1 <?php 2 2 require_once("vendor/autoload.php"); 3 3 4 4 use Aws\S3\S3Client; 5 5 use Aws\Sqs\SqsClient; 6 6 7 7 8 8 $config = array( 9 9 'version' => 'latest', 10 10 'region' => 'us-west-2', 11 11 'credentials' => array( 12 12 'key' => 'KEY' , 13 13 'secret' => 'secret' , 14 14 ) 15 15 ); 16 16 17 17 $s3 = S3Client::factory($config); 18 18 $sqs = SqsClient::factory($config); 19 19 20 20 $result = $sqs->createQueue(array( 21 21 'QueueName' => 'questring', 22 22 'Attributes' => array( 23 23 //QueueAttribute::DELAY_SECONDS => 5, 24 24 "ApproximateNumberOfMessages"=> "1000", 25 26 25 ) 27 26 )); 28 27 29 28 $queueUrl = $result->get('https://sqs.us-west-2.amazonaws.com/以下省略'); 30
エラーがdeniedなので権限がないからだと判断しておりますが、どのように実行権限を取得すればよいでしょうか。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。