2013-11-27 112 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