本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
搭配 Amazon SQS 使用政策
這個主題提供身分型政策範例,在該政策中帳戶管理員可以將許可政策連接至 IAM 身分 (使用者、群組和角色)。
重要
建議您先檢閱簡介主題,其中說明基本概念及有何選項可供您管理對 Amazon Simple Queue Service 資源的存取權。如需詳細資訊,請參閱 在 Amazon SQS 中管理存取的概觀。
在 ListQueues
例外情況下,所有 Amazon SQS 動作皆會支援資源層級許可權。如需詳細資訊,請參閱 Amazon SQS API 許可:動作和資源參考。
使用 Amazon SQS 和 IAM 政策
有兩種方式可授予使用者許可給 Amazon SQS 資源:使用 Amazon SQS 政策系統 (以資源為基礎的政策) 和使用 IAM 政策系統 (以身分為基礎的政策)。您可以使用一種或兩種方法,但 ListQueues
動作除外,這是只能在 IAM 政策中設定的區域許可。
例如,下圖顯示 IAM 政策和相當的 Amazon SQS 政策。IAM 政策授予queue_xyz
您 AWS 帳戶中呼叫之佇列的 Amazon SQS ReceiveMessage
和SendMessage
動作權利,且政策會連接到名為 Bob 和 Susan 的使用者 (Bob 和 Susan 具有政策中所述的許可)。此 Amazon SQS 政策也提供 Bob 和 Susan 相同佇列的 ReceiveMessage
和 SendMessage
動作權利。
注意
下列範例顯示沒有條件的簡單政策。您可以在任一政策中指定特定條件,並取得相同結果。

IAM 和 Amazon SQS 政策之間存在一個主要差異:Amazon SQS 政策系統可讓您將許可授予其他 AWS 帳戶,而 IAM 則不會。
由您決定如何一起使用兩個系統來管理您的許可。以下範例顯示兩個政策系統如何搭配運作。
-
在第一個範例中,Bob 同時有 IAM 政策和 Amazon SQS 政策套用到他的帳戶。IAM 政策授予他的帳戶在
queue_xyz
上的ReceiveMessage
動作許可,而 Amazon SQS 政策提供他的帳戶在相同佇列上的SendMessage
動作許可。此圖說明了此概念。如果 Bob 傳送
ReceiveMessage
請求至queue_xyz
,IAM 政策會允許此動作。如果 Bob 傳送SendMessage
請求至queue_xyz
,Amazon SQS 政策會允許此動作。 -
在第二個範例中,Bob 濫用他對於
queue_xyz
的存取權,所以必須移除他對於佇列的整個存取權。最簡單的方式是新增一個拒絕他存取該佇列所有動作的政策。此政策會覆寫其他兩個政策,因為明確deny
一律覆寫allow
。如需政策評估邏輯的相關資訊,請參閱搭配 Amazon SQS 存取政策語言使用自訂政策。此圖說明了此概念。您也可以將其他陳述式新增到拒絕 Bob 任何佇列存取類型的 Amazon SQS 政策。這和新增 IAM 政策來拒絕 Bob 存取佇列擁有相同的效果。如需涵蓋 Amazon SQS 動作和資源之政策的詳細資訊,請參閱 Amazon SQS 政策的基本範例。如需撰寫 Amazon SQS 政策的詳細資訊,請參閱搭配 Amazon SQS 存取政策語言使用自訂政策。
使用 Amazon SQS 主控台所需的許可
想要使用 Amazon SQS 主控台的使用者,必須擁有一組最基本的許可,才能使用其 AWS 帳戶中的 Amazon SQS 佇列。例如,使用者必須具備呼叫 ListQueues
動作的許可才能列出佇列,必須具備呼叫 CreateQueue
動作的許可才能建立佇列。除了 Amazon SQS 許可權限,若要將 Amazon SQS 佇列訂閱至 Amazon SNS 主題,主控台另外還需要 Amazon SNS 動作的許可。
如果您建立了比最基本的必要許可更嚴格的 IAM 政策,對於採取該 IAM 政策的使用者,主控台可能無法如預期運作。
對於僅呼叫 AWS CLI 或 Amazon SQS 動作的使用者,您不需要允許最低主控台許可。