

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon SQS でのポリシーの使用
<a name="sqs-using-identity-based-policies"></a>

このトピックでは、アカウント管理者がIAMアイデンティティ (ユーザー、グループ、ロール) へのアクセス権限ポリシーをアタッチする、アイデンティティベースのポリシーの例を示します。

**重要**  
初めに Amazon Simpleキューサ－ビスリソースへのアクセスを管理するための基本概念と使用できるオプションについて説明する概要トピックをご覧になることをお勧めします。詳細については、「[Amazon SQS でのアクセス管理の概要](sqs-overview-of-managing-access.md)」を参照してください。  
ただし、`ListQueues`では、すべての Amazon SQSアクションがリソース-レベルのアクセス許可をサポートします。詳細については、「[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ポリシーシステム (アイデンティティベースのポリシー) を使用する方法の 2 つがあります。１ つまたは両方の方法を使用できます。ただし、`ListQueues` アクションについては、IAM ポリシーでのみ設定できるリージョンアクセス許可であるため、これを除きます。

例えば、以下の図は、IAMポリシーとそれに相当する Amazon SQS ポリシーを示しています。IAM ポリシーは、 AWS アカウント`queue_xyz`で呼び出されたキューの Amazon SQS `ReceiveMessage`および `SendMessage` アクションに対する権限を付与し、ポリシーは Bob と Susan という名前のユーザーにアタッチされます (Bob と Susan にはポリシーに記載されているアクセス許可があります）。この Amazon SQS ポリシーは、Bob と Susan に、同じキューの `ReceiveMessage` と `SendMessage` アクションへの権限も付与します。

**注記**  
この例は、条件のないシンプルなポリシーを示しています。どちらのポリシーでも特定の条件を指定して、同じ結果を得ることができます。

![\[IAM ポリシーおよび同等の Amazon SQS ポリシーを比較する図。IAM ポリシーは、 AWS アカウントqueue_xyzで呼び出されたキューの Amazon SQS ReceiveMessageおよび SendMessage アクションに対する権限を付与し、ポリシーは Bob と Susan という名前のユーザーにアタッチされます (Bob と Susan にはポリシーに記載されているアクセス許可があります）。この Amazon SQS ポリシーは、Bob と Susan に、同じキューの ReceiveMessage と SendMessage アクションへの権限も付与します。\]](http://docs.aws.amazon.com/ja_jp/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/sqs-iam-policies-equivalent.png)


IAM ポリシーと Amazon SQS ポリシーには大きな違いが 1 つあります。Amazon SQS ポリシーシステムでは、他の AWS アカウントにアクセス許可を付与できますが、IAM では付与されません。

両方のシステムを同時に使用してどのようにアクセス許可を管理するかは、ご自身で決めてください。以下の例では、2つのポリシーシステムがどのように連携するかを示しています。
+ 最初の例では、BobのアカウントにIAMポリシーとAmazon SQS ポリシーの両方が適用されています。`ReceiveMessage`IAMポリシーは、Amazon SQSでの`queue_xyz`アクションについて、Bob のアカウントにアクセス許可を付与しAmazon SQS 、 ポリシーは、同じキューの`SendMessage`アクションのアクセス許可をBobのアカウントに付与します。以下の図に、そのコンセプトを示します。  
![\[IAM ポリシーと Amazon SQS ポリシーのコンポーネントを比較する図。最初の例では、BobのアカウントにIAMポリシーとAmazon SQS ポリシーの両方が適用されています。ReceiveMessageIAMポリシーは、Amazon SQSでのqueue_xyzアクションについて、Bob のアカウントにアクセス許可を付与しAmazon SQS 、 ポリシーは、同じキューのSendMessageアクションのアクセス許可をBobのアカウントに付与します。\]](http://docs.aws.amazon.com/ja_jp/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/sqs-iam-policies-union.png)

  Bob が`ReceiveMessage`リクエストを`queue_xyz`に送信すると、IAMポリシーでそのアクションが許可されます。Bobが`SendMessage`リクエストを`queue_xyz` に送信すると Amazon SQSポリシーでそのアクションが許可されます。
+ 2 番目の例では、Bob が`queue_xyz`に対するアクセス許可を不正に使用したため、このキューへのBobのアクセス許可をすべて削除する必要があります。最も簡単な方法は、そのキューに対するBobのアクションをすべて拒否するようなポリシーを追加することです。明示的な `deny`は常に`allow`をオーバーライドするため、このポリシーは他の 2 つのポリシーをオーバーライドします。ポリシーの評価ロジックの詳細については、「[Amazon SQSアクセスポリシー言語を使用したカスタムポリシーの使用](sqs-creating-custom-policies.md)」を参照してください。以下の図に、そのコンセプトを示します。  
![\[Amazon SQS ポリシーによる IAM ポリシーのオーバーライドを示す図。Bob は queue_xyz へのアクセスを不正に使用しているため、Bob によるキューへのアクセス全体を削除する必要があります。最も簡単な方法は、そのキューに対するBobのアクションをすべて拒否するようなポリシーを追加することです。明示的な denyは常にallowをオーバーライドするため、このポリシーは他の 2 つのポリシーをオーバーライドします。\]](http://docs.aws.amazon.com/ja_jp/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/sqs-iam-policies-deny-override.png)

  また、そのキューに対する Bob からのアクセスをすべて拒否するようなステートメントを Amazon SQSポリシーに追加することもできます。これは、そのキューに対する Bobのアクセスを拒否するIAMポリシーを追加するのと同じ効果を持ちます。Amazon SQSアクションおよびリソースに対応するポリシーの例については、「[ベーシックAmazon SQSポリシーの例](sqs-basic-examples-of-sqs-policies.md)」を参照してください。AmazonSQS記載 ポリシーの詳細については、「[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 SNSトピックに登録する Amazon SQS アクセス権限に加えて、コンソールには Amazon SNSアクション用のアクセス権限が必要です。

これらの最小限必要なアクセス権限よりも制限された IAMポリシーを作成している場合、そのIAMポリシーを使用するユーザーに対してコンソールは意図したとおりには機能しない場合があります。

 AWS CLI または Amazon SQS アクションのみを呼び出すユーザーには、最小限のコンソールアクセス許可を付与する必要はありません。