2013-01-24 25 views
3

我遇到了一個特別令人頭疼的問題。我可以使用boto SQS模塊輕鬆連接到本機(由我的AWS賬戶憑證擁有的)SQS隊列。但是,AWS提供了允許使用權限連接到非本地(由另一個AWS賬戶擁有)SQS隊列的功能。這可能更好地描述爲共享隊列。使用boto連接到共享SQS隊列

有沒有辦法使用boto連接到共享隊列?我似乎無法在boto代碼或文檔中找到執行此類操作的任何方法或引用。

+0

我不清楚你想要做什麼。您是否試圖授予對特定AWS用戶的訪問權限?或者你是否試圖授予匿名訪問權限?兩者都是可能的,都涉及使用與隊列關聯的JSON策略文件。有關更多詳細信息,請參閱http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/UsingIAM.html。 – garnaat

+0

我已授予訪問權限,允許其他AWS賬戶將消息寫入我的賬戶隊列。但是,當我嘗試使用其他帳戶連接到我的隊列時,我看不到指定隊列屬於不同帳戶(我的帳戶與連接的一個帳戶)的方式。當boto連接它時,只需在連接帳戶下創建隊列,而不是使用我帳戶中已有的隊列。 – PlaidFan

+0

澄清。 AWS賬戶A有一個名爲my_queue的隊列。 AWS賬戶B根本沒有隊列。 AWS賬戶B已被授予寫入my_queue的權限。但是,通過boto連接時,my_queue在AWS賬戶B下創建,因爲在連接時似乎沒有告訴boto它應該連接到AWS賬戶A的my_queue而不是它自己的my_queue。 – PlaidFan

回答

-1

我的印象是你需要的是Identity and Access Management(IAM)。

其他AWS賬戶可以創建一個IAM用戶,同時選擇爲其創建一個訪問密鑰。這提供了一對訪問密鑰和祕密訪問密鑰,與通常訪問該API的常規AWS賬戶的密鑰不同。現在您可以自定義此IAM用戶的確切權限。

這是我的期望,當這個新的IAM用戶的訪問密鑰和祕密訪問密鑰以常規方式提供給boto(aws_access_key_id和aws_secret_access_key)時,它們應該按預期工作。

+0

我可以通過AWS上的隊列管理界面授予權限。我已經做到了。正如garnaat在上面指出的那樣,也可以通過策略文件設置這些權限。問題在於,在打開隊列以寫入不同的AWS賬戶時,連接該賬戶憑證不會顯示隊列。當嘗試連接隊列時,它會在連接帳戶下創建,而不是我原來的帳戶,這是我希望所有消息都積累的地方。 – PlaidFan