

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 搭配 Amazon SQS 使用政策
<a name="sqs-using-identity-based-policies"></a>

這個主題提供身分型政策範例，在該政策中帳戶管理員可以將許可政策連接至 IAM 身分 (使用者、群組和角色)。

**重要**  
建議您先檢閱簡介主題，其中說明基本概念及有何選項可供您管理對 Amazon Simple Queue Service 資源的存取權。如需詳細資訊，請參閱 [在 Amazon SQS 中管理存取的概觀](sqs-overview-of-managing-access.md)。  
在 `ListQueues` 例外情況下，所有 Amazon SQS 動作皆會支援資源層級許可權。如需詳細資訊，請參閱 [Amazon SQS API 許可：動作和資源參考](sqs-api-permissions-reference.md)。

## 使用 Amazon SQS 和 IAM 政策
<a name="sqs-using-sqs-and-iam-policies"></a>

有兩種方式可授予使用者許可給 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 政策的圖表。IAM 政策授予queue_xyz您 AWS 帳戶中名為 之佇列的 Amazon SQS ReceiveMessage和SendMessage動作的權利，且政策會連接到名為 Bob 和 Susan 的使用者 (Bob 和 Susan 具有政策中所述的許可）。此 Amazon SQS 政策也提供 Bob 和 Susan 相同佇列的 ReceiveMessage 和 SendMessage 動作權利。](http://docs.aws.amazon.com/zh_tw/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/sqs-iam-policies-equivalent.png)


IAM 和 Amazon SQS 政策之間有一項主要差異：Amazon SQS 政策系統可讓您將許可授予其他 AWS 帳戶，而 IAM 則不會。

由您決定如何一起使用兩個系統來管理您的許可。以下範例顯示兩個政策系統如何搭配運作。
+ 在第一個範例中，Bob 同時有 IAM 政策和 Amazon SQS 政策套用到他的帳戶。IAM 政策授予他的帳戶在 `queue_xyz` 上的 `ReceiveMessage` 動作許可，而 Amazon SQS 政策提供他的帳戶在相同佇列上的 `SendMessage` 動作許可。此圖說明了此概念。  
![比較 IAM 政策元件與 Amazon SQS 政策的圖表。在第一個範例中，Bob 同時有 IAM 政策和 Amazon SQS 政策套用到他的帳戶。IAM 政策授予他的帳戶在 queue_xyz 上的 ReceiveMessage 動作許可，而 Amazon SQS 政策提供他的帳戶在相同佇列上的 SendMessage 動作許可。](http://docs.aws.amazon.com/zh_tw/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/sqs-iam-policies-union.png)

  如果 Bob 傳送 `ReceiveMessage` 請求至 `queue_xyz`，IAM 政策會允許此動作。如果 Bob 傳送 `SendMessage` 請求至 `queue_xyz`，Amazon SQS 政策會允許此動作。
+ 在第二個範例中，Bob 濫用他對於 `queue_xyz` 的存取權，所以必須移除他對於佇列的整個存取權。最簡單的方式是新增一個拒絕他存取該佇列所有動作的政策。此政策會覆寫其他兩個政策，因為明確`deny`一律覆寫`allow`。如需政策評估邏輯的相關資訊，請參閱[搭配 Amazon SQS 存取政策語言使用自訂政策](sqs-creating-custom-policies.md)。此圖說明了此概念。  
![顯示使用 Amazon SQS 政策覆寫 IAM 政策的圖表。Bob 濫用他對 的存取權queue_xyz，因此需要移除他對佇列的整個存取權。最簡單的方式是新增一個拒絕他存取該佇列所有動作的政策。此政策會覆寫其他兩個政策，因為明確deny一律覆寫allow。](http://docs.aws.amazon.com/zh_tw/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/sqs-iam-policies-deny-override.png)

  您也可以將其他陳述式新增到拒絕 Bob 任何佇列存取類型的 Amazon SQS 政策。這和新增 IAM 政策來拒絕 Bob 存取佇列擁有相同的效果。如需涵蓋 Amazon SQS 動作和資源之政策的詳細資訊，請參閱 [Amazon SQS 政策的基本範例](sqs-basic-examples-of-sqs-policies.md)。如需撰寫 Amazon SQS 政策的詳細資訊，請參閱[搭配 Amazon SQS 存取政策語言使用自訂政策](sqs-creating-custom-policies.md)。

## 使用 Amazon SQS 主控台所需的許可
<a name="sqs-console-permissions"></a>

想要使用 Amazon SQS 主控台的使用者，必須擁有一組最基本的許可，才能使用其 AWS 帳戶中的 Amazon SQS 佇列。例如，使用者必須具備呼叫 `ListQueues` 動作的許可才能列出佇列，必須具備呼叫 `CreateQueue` 動作的許可才能建立佇列。除了 Amazon SQS 許可權限，若要將 Amazon SQS 佇列訂閱至 Amazon SNS 主題，主控台另外還需要 Amazon SNS 動作的許可。

如果您建立了比最基本的必要許可更嚴格的 IAM 政策，對於採取該 IAM 政策的使用者，主控台可能無法如預期運作。

對於僅呼叫 AWS CLI 或 Amazon SQS 動作的使用者，您不需要允許最低主控台許可。