Amazon Simple Queue Service
開発者ガイド

高度な Amazon SQS ポリシーの例

このセクションでは、一般的な Amazon SQS ユースケースのサンプルポリシーを示します。

コンソールを使用して、ユーザーにポリシーを添付しながら各ポリシーの効果を確認できます。最初は、ユーザーにアクセス権限が付与されてないため、コンソールを使用して何もできません。ユーザーにポリシーを添付することで、ユーザーがコンソールで多様なアクションを実行できることを確認できます。

注記

2 つのブラウザウィンドウを使用することをお勧めします。1 つでアクセス権限を付与し、もう 1 つでユーザーの認証情報を使用して AWS マネジメントコンソール にサインインして、アクセス権限をユーザーに付与するごとに確認します。

例 1: 1 つのアクセス権限を 1 つの AWS アカウントに付与する

以下のサンプルポリシーは、AWS アカウント番号 111122223333 に、米国東部 (オハイオ) リージョンの 444455556666/queue1 という名前のキューに対する SendMessage アクセス権限を付与します。

{ "Version": "2012-10-17", "Id": "Queue1_Policy_UUID", "Statement": [{ "Sid":"Queue1_SendMessage", "Effect": "Allow", "Principal": { "AWS": [ "111122223333" ] }, "Action": "sqs:SendMessage", "Resource": "arn:aws:sqs:us-east-2:444455556666:queue1" }] }

例 2: 2 つのアクセス権限を 1 つの AWS アカウントに付与する

以下のサンプルポリシーは、AWS アカウント番号 111122223333 に、444455556666/queue1 という名前のキューに対する SendMessage アクセス権限と ReceiveMessage アクセス権限の両方を付与します。

{ "Version": "2012-10-17", "Id": "Queue1_Policy_UUID", "Statement": [{ "Sid":"Queue1_Send_Receive", "Effect": "Allow", "Principal": { "AWS": [ "111122223333" ] }, "Action": [ "sqs:SendMessage", "sqs:ReceiveMessage" ], "Resource": "arn:aws:sqs:*:444455556666:queue1" }] }

例 3: すべてのアクセス権限を 2 つの AWS アカウントに付与する

以下のサンプルポリシーでは、米国東部 (オハイオ) リージョン内で 123456789012/queue1 という名前のキューについて、Amazon SQS によって共有アクセスが許可されるすべてのアクションを使用するためのアクセス許可を、2 つの異なる AWS アカウント番号 (111122223333 および 444455556666) に付与しています。

{ "Version": "2012-10-17", "Id": "Queue1_Policy_UUID", "Statement": [{ "Sid":"Queue1_AllActions", "Effect": "Allow", "Principal": { "AWS": [ "111122223333", "444455556666" ] }, "Action": "sqs:*", "Resource": "arn:aws:sqs:us-east-2:123456789012:queue1" }] }

例 4: ロールおよびユーザー名にクロスアカウントのアクセス許可を付与する

以下のサンプルポリシーは、米国東部 (オハイオ) リージョン内で 123456789012/queue1 という名前のキューについて、Amazon SQS によって共有アクセスが許可されるすべてのアクションを使用するためのクロスアカウントのアクセス許可を、AWS アカウント番号 111122223333role1 および username1 に付与します。

クロスアカウント権限は、以下のアクションには適用されません。

{ "Version": "2012-10-17", "Id": "Queue1_Policy_UUID", "Statement": [{ "Sid":"Queue1_AllActions", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:role/role1", "arn:aws:iam::111122223333:user/username1" ] }, "Action": "sqs:*", "Resource": "arn:aws:sqs:us-east-2:123456789012:queue1" }] }

例 5: すべてのユーザーにアクセス権限を付与する

以下のサンプルポリシーは、すべてのユーザー (匿名ユーザー) に、111122223333/queue1 という名前のキューに対する ReceiveMessage アクセス権限を付与します。

{ "Version": "2012-10-17", "Id": "Queue1_Policy_UUID", "Statement": [{ "Sid":"Queue1_AnonymousAccess_ReceiveMessage", "Effect": "Allow", "Principal": "*", "Action": "sqs:ReceiveMessage", "Resource": "arn:aws:sqs:*:111122223333:queue1" }] }

例 6: すべてのユーザーに時間制限付きのアクセス権限を付与する

以下のサンプルポリシーは、すべてのユーザー (匿名ユーザー) に、111122223333/queue1 という名前のキューに対する ReceiveMessage アクセス権限を 2009 年 1 月 31 日の午後 12:00 (正午) から 午後 3:00 の間のみ付与します。

{ "Version": "2012-10-17", "Id": "Queue1_Policy_UUID", "Statement": [{ "Sid":"Queue1_AnonymousAccess_ReceiveMessage_TimeLimit", "Effect": "Allow", "Principal": "*", "Action": "sqs:ReceiveMessage", "Resource": "arn:aws:sqs:*:111122223333:queue1", "Condition" : { "DateGreaterThan" : { "aws:CurrentTime":"2009-01-31T12:00Z" }, "DateLessThan" : { "aws:CurrentTime":"2009-01-31T15:00Z" } } }] }

例 7: CIDR 範囲のすべてのユーザーにすべてのアクセス権限を付与する

以下のサンプルポリシーは、すべてのユーザー (匿名ユーザー) に、111122223333/queue1 という名前のキューで共有できるすべての Amazon SQS アクションを使用するアクセス権限を、リクエストが 192.168.143.0/24 CIDR の範囲から生成された場合のみ付与します。

{ "Version": "2012-10-17", "Id": "Queue1_Policy_UUID", "Statement": [{ "Sid":"Queue1_AnonymousAccess_AllActions_WhitelistIP", "Effect": "Allow", "Principal": "*", "Action": "sqs:*", "Resource": "arn:aws:sqs:*:111122223333:queue1", "Condition" : { "IpAddress" : { "aws:SourceIp":"192.168.143.0/24" } } }] }

例 8: 異なる CIDR 範囲のユーザーのホワイトリストとブラックリストのアクセス権限

以下のサンプルポリシーには、2 つのステートメントが含まれています。

  • 最初のステートメントは、192.168.143.0/24 CIDR の範囲 (192.168.143.188 を除く) に存在するすべてのユーザー (匿名ユーザー) に、111122223333/queue1 という名前のキューに対する SendMessage アクションを使用するアクセス権限を付与します。

  • 2 番目のステートメントは、10.1.2.0/24 CIDR の範囲に存在するすべてのユーザー (匿名ユーザー) をキュー使用のブラックリストに追加します。

{ "Version": "2012-10-17", "Id": "Queue1_Policy_UUID", "Statement": [{ "Sid":"Queue1_AnonymousAccess_SendMessage_IPLimit", "Effect": "Allow", "Principal": "*", "Action": "sqs:SendMessage", "Resource": "arn:aws:sqs:*:111122223333:queue1", "Condition" : { "IpAddress" : { "aws:SourceIp":"192.168.143.0/24" }, "NotIpAddress" : { "aws:SourceIp":"192.168.143.188/32" } } }, { "Sid":"Queue1_AnonymousAccess_AllActions_IPLimit_Deny", "Effect": "Deny", "Principal": "*", "Action": "sqs:*", "Resource": "arn:aws:sqs:*:111122223333:queue1", "Condition" : { "IpAddress" : { "aws:SourceIp":"10.1.2.0/24" } } }] }