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

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

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

以下は、一般的な Amazon SQS アクセスポリシーの例です。

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

次の Amazon SQSポリシーの例では、111122223333 queue2が所有する との間で送受信するアクセス許可を 444455556666 に付与 AWS アカウント します AWS アカウント 。

{ "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ポリシーの例では、特定の期間にアカウントが所有するキューへの 1 つ以上の AWS アカウント アクセスを許可します。このポリシーを記述し、 SetQueueAttributesアクションSQSを使用して Amazon にアップロードする必要があります。アクション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 日 12 時 (UTC) より前に へのアクセスを制限し、IP 範囲 へのアクセスを制限します203.0.113.0/24。このポリシーを記述し、 SetQueueAttributesアクションSQSを使用して Amazon にアップロードする必要があります。アクション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 アカウント。このポリシーを記述し、 SetQueueAttributesアクションSQSを使用して Amazon にアップロードする必要があります。これは、 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エンドポイントからのアクセスでない場合はアクセスを拒否する

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

注記
  • このaws:sourceVpce条件は、VPCエンドポイントリソースARNに を必要とせず、VPCエンドポイント ID のみを必要とします。

  • 次の例を変更して、2 番目のステートメントのすべての Amazon アクション (sqs:*) を拒否することで、すべてのSQSアクションを特定のVPCエンドポイントに制限できます。ただし、このようなポリシーステートメントでは、すべてのアクション (キューのアクセス許可の変更に必要な管理アクションを含む) は、ポリシーで定義されている特定の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" } } } ] }