カスタムの Amazon SQSアクセスポリシー言語の例 - Amazon Simple Queue Service

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

カスタムの Amazon SQSアクセスポリシー言語の例

一般的な Amazon SQSアクセスポリシーの例を次に示します。

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

次のAmazon SQSポリシー例では、AWS アカウント444455556666で所有されるqueue2から送受信するアクセス権限をAWS アカウント111122223333に与えます。

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

例2:1つ以上のアカウントにアクセス権限を与える

次の例では、Amazon SQSポリシーは特定の期間に AWS アカウント によって所有されているキューへのアクセス権を、1つ以上与えます。このポリシーを作成し、Amazon SQSにアップロードするには、SetQueueAttributesのためアクションAddPermissionアクションでは、キューへのアクセスを許可するときに時間制限を指定することはできません。

{ "Version": "2012-10-17", "Id": "UseCase2", "Statement" : [{ "Sid": "1", "Effect": "Allow", "Principal": { "AWS": [ "111122223333", "444455556666" ] }, "Action": [ "sqs:SendMessage", "sqs:ReceiveMessage" ], "Resource": "arn:aws:sqs:us-east-2:444455556666:queue2", "Condition": { "DateLessThan": { "AWS:CurrentTime": "2009-06-30T12:00Z" } } }] }

例3:Amazon EC2インスタンスからのリクエストに許可を与える

次の例では、Amazon SQSポリシーはAmazon EC2 インスタンスから来るリクエストへのアクセスを許可します。この例では、"例2:1つ以上のアカウントにアクセス権限を与える" の例を作成します。2009年6月30日正午 (UTC) 以前のアクセスを制限し、IP 範囲203.0.113.0/24へのアクセスを制限します。このポリシーを作成し、Amazon SQS にアップロードするには、SetQueueAttributesのためにアクションAddPermissionアクションでは、キューへのアクセスを許可するときに IP アドレス制限を指定することはできません。

{ "Version": "2012-10-17", "Id": "UseCase3", "Statement" : [{ "Sid": "1", "Effect": "Allow", "Principal": { "AWS": [ "111122223333" ] }, "Action": [ "sqs:SendMessage", "sqs:ReceiveMessage" ], "Resource": "arn:aws:sqs:us-east-2:444455556666:queue2", "Condition": { "DateLessThan": { "AWS:CurrentTime": "2009-06-30T12:00Z" }, "IpAddress": { "AWS:SourceIp": "203.0.113.0/24" } } }] }

例4:特定のアカウントへのアクセスを拒否する

次の例では、Amazon SQS ポリシーは特定のAWS アカウントからキューへのアクセスを拒否します。この例は、"例1:1つのアカウントにアクセス権限を与える" の例に基づいていて、指定されたAWS アカウントへのアクセスを拒否します。このポリシーを作成し、Amazon SQS にアップロードするには、SetQueueAttributesのためにアクションAddPermissionアクションは、キューへのアクセスを拒否することを許可しません(キューへのアクセスのみを許可します)。

{ "Version": "2012-10-17", "Id": "UseCase4", "Statement" : [{ "Sid": "1", "Effect": "Deny", "Principal": { "AWS": [ "111122223333" ] }, "Action": [ "sqs:SendMessage", "sqs:ReceiveMessage" ], "Resource": "arn:aws:sqs:us-east-2:444455556666:queue2" }] }

例5:VPC エンドポイントからではない場合はアクセスを拒否する

次のqueue1111122223333Amazon SQSポリシー例では、SendMessage へのアクセスを制限します。ReceiveMessagevpce-1a2b3c4d および アクションを実行できるのは、VPC エンドポイント ID (aws:sourceVpce 条件を使用して指定) からのみです。詳細については、「Amazon SQSのAmazon Virtual Private Cloud エンドポイント」を参照してください。

注記
  • aws:sourceVpce 条件では、VPC エンドポイントID のみが必要で、VPC エンドポイントリソースのARNは必要ありません。

  • 次の例を変更し、2番目のステートメントですべてのアクション (sqs:*) を拒否して、特定の VPC エンドポイントにすべての Amazon SQS アクションを制限できます。ただし、このようなポリシーステートメントにより、すべてのアクション (キューのアクセス権限を変更するために必要な管理アクションを含む) が、ポリシーで定義された特定の VPC エンドポイントを通じて行われる必要があることが規定されます。この場合、ユーザーは今後キューのアクセス権限を変更できなくなる可能性があります。

{ "Version": "2012-10-17", "Id": "UseCase5", "Statement": [{ "Sid": "1", "Effect": "Allow", "Principal": { "AWS": [ "111122223333" ] }, "Action": [ "sqs:SendMessage", "sqs:ReceiveMessage" ], "Resource": "arn:aws:sqs:us-east-2:111122223333:queue1" }, { "Sid": "2", "Effect": "Deny", "Principal": "*", "Action": [ "sqs:SendMessage", "sqs:ReceiveMessage" ], "Resource": "arn:aws:sqs:us-east-2:111122223333:queue1", "Condition": { "StringNotEquals": { "aws:sourceVpce": "vpce-1a2b3c4d" } } } ] }