我目前正在开发一个使用Symfony2开发的网站,我需要在Amazon SQS中发送消息。为此,我添加到composer.json
:
"aws/aws-sdk-php": "2.4.*"
然后,当我尝试创建队列或列表队列时,我收到403错误说:
修改 添加了完整的错误消息
AWS错误代码:AccessDenied,状态代码:403,AWS请求ID: 2fe34c11-7af8-5445-a768-070159a0953e,AWS错误类型:客户端,AWS 错误消息:访问资源 https://sqs.us-west-2.amazonaws.com/被拒绝。用户代理: aws-sdk-php2 / 2.4.11 Guzzle / 3.7.4 curl / 7.25.0 PHP / 5.4.3
以下是我所做的示例代码:
$aws = Aws::factory(array(
'key' => 'my-key',
'secret' => 'my-secret',
'region' => 'us-west-2'
));
$sqs = $aws->get('sqs');
return new Response(var_dump($sqs->listQueues()));
如果出现此错误,我该怎么办?
答案 0 :(得分:47)
挖掘后,我发现我使用的帐户未被授予对SQS服务的访问权限。
要授予SQS帐户访问权限,您必须转到亚马逊管理控制台。然后单击IAM。在此部分下单击“用户”,然后您可以管理您创建的每个帐户的权限。
答案 1 :(得分:5)
确保以下两个策略均允许访问SQS队列
确保访问权限不受其中任何一个的限制。
答案 2 :(得分:0)
我只是通过弄乱队列名称而遇到同样的问题,因此请确保这也是正确的。