2013-11-27 94 views
15

我目前正在使用Symfony2开发的网站上工作,我需要在Amazon SQS中发送消息。为了做到这一点,我添加到我的composer.json通过AWS SDK拒绝SQS的访问

"aws/aws-sdk-php": "2.4.*" 

然后,当我尝试创建队列或列表队列我有一个403错误说:

访问资源https://sqs.us-west-2.amazonaws.com/是否认。

编辑: 加入充分的错误消息

AWS错误代码:存取遭拒,状态码:403,AWS请求ID: 2fe34c11-7af8-5445-a768-070159a0953e,AWS错误类型:客户,AWS 错误消息:访问资源 https://sqs.us-west-2.amazonaws.com/被拒绝,用户代理: AWS-SDK-PHP2/2.4.11狂饮/ 3.7.4卷曲/ 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

我保证这不是通过添加卷曲选项进入配置阵列的代理问题。 – SupaCoco

回答

37

挖掘之后,我发现我使用的帐户没有被授予对SQS服务的访问权限。

要让SQS访问帐户,您必须进入亚马逊管理控制台。然后点击IAM。在此部分下,点击用户,然后您可以管理您创建的每个帐户的权限。

+0

宾果!我遇到了与用户访问权限相同的问题 谢谢Supa – Logicalj

+0

当每个其他服务都可以与默认用户连接时,为什么会有单独的SQS用户需求? – Babu