

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

# Amazon SQS でのアクセス管理の概要
<a name="sqs-overview-of-managing-access"></a>

すべての AWS リソースは によって所有され AWS アカウント、リソースを作成またはアクセスするアクセス許可はアクセス許可ポリシーによって管理されます。アカウント管理者は、IAMアクセス権限ポリシーをアイデンティティ (ユーザー、グループ、ロール) にアタッチできます。一部のサービス ( Amazon SQS など) では、アクセス権限ポリシーをリソースにアタッチすることもできます。

**注記**  
*アカウント管理者* (または管理者ユーザー) は、管理者権限を持つユーザーです。詳細については、「*IAM ユーザーガイド*」の「[IAM のベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)」を参照してください。

アクセス権限を付与する場合、アクセス権限を取得するユーザー、取得するアクセス権限の対象となるリソース、およびリソースに対して許可される特定のアクションを指定します。

## Amazon Simpleキューサービス リソースと操作
<a name="sqs-resource-and-operations"></a>

Amazon SQS では、唯一のリソースは*キュー*です。ポリシーで Amazon リソースネーム (ARN)を使用して、ポリシーを適用するリソースを識別します。次のリソースには、関連付けられた一意のARN があります。


| リソースタイプ | ARN 形式 | 
| --- | --- | 
| [キュー] | arn:aws:sqs:{{region}}:{{account\_id}}:{{queue\_name}} | 

キューの ARN 形式の例を以下に示します。
+  AWS アカウント 123456789012 に属する、米国東部 (オハイオ) リージョン`my_queue`の という名前のキューの ARN。

  ```
  arn:aws:sqs:us-east-2:123456789012:my_queue
  ```
+ Amazon SQSがサポートする異なるリージョンごとの`my_queue`というキューのARN。

  ```
  arn:aws:sqs:*:123456789012:my_queue
  ```
+ キュー名に対して`*`または`?`をワイルドカードとして使用する ARN。次の例で、ARN はプレフィックス `my_prefix_` が付いたすべてのキューに一致します。

  ```
  arn:aws:sqs:*:123456789012:my_prefix_*
  ```

[https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_GetQueueAttributes.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_GetQueueAttributes.html) アクションを呼び出して既存のキューの ARN 値を取得できます。`QueueArn` 属性の値は、キューの ARN です。ARNの詳細については、*IAM ユーザーガイド*の「[IAM ARN](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns)」を参照してください。

Amazon SQSには、キューリソースを操作するための一連の アクションが用意されています。詳細については、「[Amazon SQS (Amazon SQS)、 API のアクセス権限: アクションとリソースのリファレンスについて](sqs-api-permissions-reference.md)」を参照してください。

## リソース所有権についての理解
<a name="sqs-understanding-resource-ownership"></a>

は、リソースを作成したユーザーに関係なく、アカウントで作成されたリソース AWS アカウント を所有します。具体的には、リソース所有者は、リソースの作成リクエストを認証するプリンシパルエンティティ** (ルートアカウント、ユーザー、または IAM ロール) の AWS アカウント です。次の例は、この仕組みを示しています。
+ のルートアカウントの認証情報を使用して Amazon SQS キュー AWS アカウント を作成する場合、 AWS アカウント はリソースの所有者です (Amazon SQS では、リソースは Amazon SQS キューです）。
+ でユーザーを作成し AWS アカウント 、キューを作成するアクセス許可をユーザーに付与すると、そのユーザーはキューを作成できます。ただし、(ユーザーが属する) AWS アカウント アカウントはキューリソースを所有しています。
+ Amazon SQS キューを作成するアクセス許可 AWS アカウント を持つ で IAM ロールを作成する場合、ロールを引き受けることのできるすべてのユーザーがキューを作成できます。(ロールが属 AWS アカウント する) がキューリソースを所有します。

## リソースへのアクセスの管理
<a name="sqs-managing-access-to-resources"></a>

*アクセス許可ポリシー* では、誰が何にアクセスできるかを記述します。以下のセクションで、アクセス権限のポリシーを作成するために使用可能なオプションについて説明します。

**注記**  
 このセクションでは、Amazon SQSのコンテキストでの IAM の使用について説明します。これは、IAMサービスに関する詳細情報を取得できません。IAM に関する詳細なドキュメントについては、「*IAM ユーザーガイド*」の「[What is IAM?](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)」(IAM とは？) を参照してください。IAM ポリシーの構文と説明については、「*IAM ユーザーガイド*」の「[AWS IAM ポリシーリファレンス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html)」を参照してください。

IAM ID にアタッチされたポリシーは ID ベースのポリシー (IAM ポリシー) と呼ばれ、リソースにアタッチされたポリシーはリソースベースのポリシーと呼ばれます。

### アイデンティティベースのポリシー
<a name="sqs-identity-based-features-of-sqs-policies"></a>

ユーザーにAmazon SQSキューのアクセス権限を付与する方法は、 ポリシーシステムを使用する方法とIAMポリシーシステムを使用する方法の 2 つです。いずれかのシステムまたは両方を使用して、ユーザーまたはロールにポリシーをアタッチできます。ほとんどの場合、どちらのシステムを使用しても同じ結果が得られます。例えば、次の操作を実行できます:
+ アカウントのユーザーまたはグループに**許可ポリシーをアタッチする**–Amazon SQS キューを作成する許可を付与するために、ユーザーまたはユーザーが所属するグループに許可ポリシーをアタッチできます。
+ **別の のユーザーに許可ポリシーを AWS アカウント**アタッチする – 別の のユーザーに許可ポリシーをアタッチ AWS アカウント して、ユーザーが Amazon SQS キューとやり取りできるようにします。ただし、クロスアカウントアクセス許可は、次のアクションには適用されません。

  クロスアカウント権限は、次のアクションには適用されません。
  + `[AddPermission](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_AddPermission.html)`
  + `[CancelMessageMoveTask](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CancelMessageMoveTask.html)`
  + `[CreateQueue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html)`
  + `[DeleteQueue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteQueue.html)`
  + `[ListMessageMoveTask](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ListMessageMoveTasks.html)`
  + `[ListQueues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ListQueues.html)`
  + `[ListQueueTags](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ListQueueTags.html)`
  + `[RemovePermission](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_RemovePermission.html)`
  + `[SetQueueAttributes](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SetQueueAttributes.html)`
  + `[StartMessageMoveTask](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_StartMessageMoveTask.html)`
  + `[TagQueue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_TagQueue.html)`
  + `[UntagQueue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_UntagQueue.html)`

  これらのアクションに対してアクセスを付与するには、ユーザーが Amazon SQS キューを所有するのと同じ AWS アカウント に属している必要があります。
+ **アクセス許可ポリシーをロールにアタッチする (クロスアカウントアクセス許可を付与する)** – SQS キューにクロスアカウントアクセス許可を付与するには、IAM ポリシーとリソースベースのポリシーの両方を組み合わせる必要があります。

  1. **アカウント A** (キューを所有) で、
     + **リソースベースのポリシー**を SQS キューにアタッチします。このポリシーは、**アカウント B** (IAM ロールなど) のプリンシパルに必要なアクセス許可 ([https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html)、[https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html) など) を明示的に付与する必要があります。

  1. **アカウント A** で IAM ロールを作成します。
     + **アカウント B** または AWS のサービス がロールを引き受けるのを許可する**信頼ポリシー**。
**注記**  
(Lambda や EventBridge AWS のサービス など) がロールを引き受けるようにする場合は、信頼ポリシーでサービスプリンシパル ( などlambda.amazonaws.com) を指定します。
     + キューとやり取りするアクセス許可を引き受けたロールに付与する**アイデンティティベースのポリシー**。

  1. **アカウント B** で、**アカウント A** でのロールを引き受けるアクセス許可を付与します。

クロスアカウントプリンシパルを許可するようにキューのアクセスポリシーを設定する必要があります。IAM のアイデンティティベースのポリシーだけでは、SQS キューへのクロスアカウントアクセスには不十分です。

IAM を使用した許可の委任の詳細については、「IAM ユーザーガイド」の「[アクセス管理](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)」を参照してください。

Amazon SQS はIAMポリシーを使用して作業する一方で、独自のポリシーインフラストラクチャがあります。キューで Amazon SQS ポリシーを使用して、キューにアクセスできる AWS アカウントを指定できます。アクセスタイプと条件を指定できます (たとえば、リクエストが 2010年12月31日より前の場合は`SendMessage`、`ReceiveMessage`を使用するアクセス権限を付与する条件)。アクセス許可を付与できる特定のアクションは、Amazon SQS アクションリスト全体のサブセットです。Amazon SQS ポリシーを記述して、`*`「すべての アクションを許可」を意味するを指定した場合、ユーザーがこのサブセット内のすべてのアクション実行できることを意味します。

次の図は、これらのベーシックなAmazon SQS ポリシーのうち1つの概念を表しており、アクションのサブセットを取り上げています。ポリシーは 用であり`queue_xyz`、 AWS アカウント 1 と AWS アカウント 2 に、指定されたキューで許可されたアクションのいずれかを使用するアクセス許可を付与します。

**注記**  
ポリシーのリソースは として指定されます。ここで`123456789012/queue_xyz`、 `123456789012` はキューを所有するアカウントのアカウント AWS ID です。

![アクションのサブセットをカバーする Amazon SQS ポリシー](http://docs.aws.amazon.com/ja_jp/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/SQS_BasicPolicy.png)


IAMと、*ユーザー*および* Amazon リソースネーム（ARN)*の概念の導入により、SQSポリシーに関するいくつかの点が変わりました。次の図と表は、その変更を示しています。

![Amazon SQS ポリシーに追加された IAM および Amazon リソースネーム。](http://docs.aws.amazon.com/ja_jp/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/SQS_PolicyWithNewFeatures.png)


![Number one in the diagram.](http://docs.aws.amazon.com/ja_jp/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/number-1-red.png) 異なるアカウントのユーザーにアクセス許可を付与する方法については、IAM *ユーザーガイド*の[「チュートリアル: IAM ロールを使用した AWS アカウント間のアクセスの委任](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html)」を参照してください。

![Number two in the diagram.](http://docs.aws.amazon.com/ja_jp/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/number-2-red.png) `*`に含まれるアクションのサブセットが拡大されました。可能なアクションの一覧については、[Amazon SQS (Amazon SQS)、 API のアクセス権限: アクションとリソースのリファレンスについて](sqs-api-permissions-reference.md)を参照してください。

![Number three in the diagram.](http://docs.aws.amazon.com/ja_jp/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/number-3-red.png)Amazon リソースネーム (ARN)を使用してリソースを指定できます。これは、IAMポリシーでリソースを指定するためのスタンダードな方法です。Amazon SQSキューのARN形式については、「[Amazon Simpleキューサービス リソースと操作](#sqs-resource-and-operations)」を参照してください。

例えば、前の図の Amazon SQS ポリシーによると、 AWS アカウント 1 または AWS アカウント 2 のセキュリティ認証情報を所有するユーザーは誰でも にアクセスできます`queue_xyz`。さらに、自身の AWS アカウント (ID `123456789012`)内のユーザー Bobおよび Susanもキューにアクセスできます。

IAMの導入前は、 Amazon SQSによりキューの作成者に、キューに対する完全なコントロールが付与されていました (そのキューで使用できるすべての Amazon SQ アクションへのアクセス)。これは、作成者が AWS セキュリティ認証情報を使用している場合以外は当てはまらなくなりました。キューを作成するアクセス権限を持つユーザーは、作成されたキューで何らかの操作を実行するには、他のAmazon SQSアクションを使用するアクセス権限も持っている必要があります。

以下に、ユーザーにすべてのAmazon SQSアクションを許可するが、対象を名前にリテラル文字列というプレフィックスがついているキューに限るポリシーの例を示します`bob_queue_`。

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [{
      "Effect": "Allow",
      "Action": "sqs:*",
      "Resource": "arn:aws:sqs:*:123456789012:bob_queue_*"
   }]
}
```

------

詳細については、*IAMユーザーガイド*[Amazon SQS でのポリシーの使用](sqs-using-identity-based-policies.md)「[ID (ユーザー、グループ、ロール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html)」とのIAM ポリシーの概要」を参照してください。

## ポリシー要素の指定:アクション、効果、リソース、プリンシパル
<a name="sqs-specifying-policy-elements"></a>

[Amazon Simple キューサービス リソース](#sqs-resource-and-operations)の種類ごとに、このサービスは、一連の[アクション](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_Operations.html)を定義します。これらの アクションを実行するためのアクセス権限を付与するために、Amazon SQSではポリシーに一連のアクションを定義できます。

**注記**  
1つの アクションの実行で、複数のアクションのアクセス権限が必要になる場合があります。特定のアクションのアクセス権限を付与した場合は、アクションを許可または拒否するリソースを識別します。

最も基本的なポリシーの要素を次に示します。
+ **リソース**–ポリシーで Amazon リソースネーム (ARN)を使用して、ポリシーを適用するリソースを識別します。
+ **アクション**–アクションのキーワードを使用して、許可または拒否するリソースアクションを識別します。たとえば、`sqs:CreateQueue`権限は、Amazon Simple キューサービス`CreateQueue`アクション の実行をユーザーに許可します。
+ **効果**–ユーザーが特定のアクションを要求する際の効果を指定します。許可または拒否のいずれかになります。リソースへのアクセスを明示的に許可していない場合、アクセスは暗黙的に拒否されます。また、明示的にリソースへのアクセスを拒否すると、別のポリシーによってアクセスが許可されている場合でも、ユーザーはそのリソースにアクセスできなくなります。
+ **プリンシパル**-アイデンティティベースのポリシー（IAMポリシー）で、ポリシーが添付されているユーザーが黙示的なプリンシパルとなります。リソースベースのポリシーでは、アクセス許可 (リソースベースのポリシーにのみ適用) を受け取りたいユーザー、アカウント、サービス、またはその他のエンティティを指定します。

Amazon SQS ポリシーの構文と記述の詳細については、*IAM ユーザーガイド*の[AWS IAM ポリシーリファレンス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html)を参照してください。

すべてのAmazon Simpleキューサービスアクションおよびそれに適用されるリソースを示す表については、「[Amazon SQS (Amazon SQS)、 API のアクセス権限: アクションとリソースのリファレンスについて](sqs-api-permissions-reference.md)」を参照してください。