宛先にイベント通知メッセージを発行するアクセス許可の付与
Amazon S3 プリンシパルに、SNS トピック、SQS キュー、Lambda 関数へメッセージを公開する関連する API を呼び出すため必要なアクセス許可を付与する必要があります。これは、Amazon S3 がイベント通知メッセージを宛先に公開できるようにするためです。
イベント通知メッセージを送信先に公開する場合のトラブルシューティングについては、「Amazon S3 イベント通知を Amazon Simple Notification Service に公開するためのトラブルシューティング
AWS Lambda 関数を呼び出すアクセス許可の付与
Amazon S3 は Lambda 関数を呼び出してイベントメッセージを AWS Lambda に発行し、イベントメッセージを引数として指定します。
Amazon S3 コンソールを使用して Lambda 関数の AmazonS3 バケットにイベント通知を設定すると、コンソールは Lambda 関数に必要なアクセス許可を設定します。これは、Amazon S3 がバケットから関数を呼び出す許可があるからです。詳細については、Amazon S3 コンソールを使用したイベント通知の有効化と設定 を参照してください。
AWS Lambda から Amazon S3 の許可を付与して、Lambda 関数を呼び出すこともできます。詳細については、AWS Lambda デベロッパーガイドのチュートリアル: Amazon S3 で AWS Lambda を使用するを参照してください。
SNS トピックまたは SQS キューにメッセージを発行するアクセス許可の付与
SNS トピックや SQS キューにメッセージを発行する許可を Amazon S3 に付与するには、AWS Identity and Access Management (IAM) ポリシーを宛先 SNS トピックや SQS キューにアタッチします。
SNS トピックや SQS キューにポリシーをアタッチする方法の例については、チュートリアル: 通知 (SNS トピックまたは SQS キュー) のバケットを設定する を参照してください。アクセス許可の詳細については、次のトピックを参照してください。
-
「Amazon Simple Notification Service デベロッパーガイド」の「Amazon SNS アクセスコントロールのケース例」
-
「Amazon Simple Queue サービスデベロッパーガイド」の「Amazon SQS での Identity and Access Management」
発行先 SNS トピックの IAM ポリシー
発行先の SNS トピックにアタッチする AWS Identity and Access Management (IAM) ポリシーの例を次に示します。このポリシーを使用してイベント通知の宛先 Amazon SNS トピックを設定する方法については、チュートリアル: 通知 (SNS トピックまたは SQS キュー) のバケットを設定する を参照してください。
発行先 SQS キューの IAM ポリシー
以下は、発行先 SQS キューにアタッチする IAM ポリシーの例です。このポリシーを使用してイベント通知の宛先 Amazon SQS キューを設定する方法については、チュートリアル: 通知 (SNS トピックまたは SQS キュー) のバケットを設定する を参照してください。
このポリシーを使用するには、Amazon SQS キューの ARN、バケット名、およびバケット所有者の AWS アカウント ID を更新する必要があります。
Amazon SNS および Amazon SQS IAM ポリシーの両方について、StringLike
条件の代わりにポリシーで ArnLike
条件を指定できます。
ArnLike
を使用する場合、ARN のパーティション、サービス、アカウント ID、リソースタイプ、および部分的なリソース ID 部分が、リクエストコンテキストの ARN と完全に一致する必要があります。部分一致が許可されるのは、リージョンとリソースパスのみです。
ArnLike
の代わりに StringLike
を使用すると、マッチングでは ARN 構造が無視され、ワイルドカードで指定された部分に関係なく部分一致が可能になります。詳細については、「IAM ユーザーガイド」の「IAM JSON のポリシー要素」を参照してください。
"Condition": { "StringLike": { "aws:SourceArn": "arn:aws:s3:*:*:
" } }
amzn-s3-demo-bucket
AWS KMS キーポリシー
SQS キューまたは SNS トピックが AWS Key Management Service (AWS KMS) カスタマーマネージドキーで暗号化されている場合は、暗号化されたトピックまたはキューを操作するための許可を Amazon S3 サービスプリンシパルに付与する必要があります。Amazon S3 サービスプリンシパルに許可を付与するには、カスタマーマネージドキーのキーポリシーに次のステートメントを追加します。
AWS KMS キーポリシーの詳細については、AWS Key Management Service デベロッパーガイドの AWS KMS でキーポリシーを使用するを参照してください。
Amazon SQS および Amazon SNS 用の AWS KMS でのサーバー側の暗号化の使用の詳細については、以下を参照してください。
-
「Amazon Simple Notification Service デベロッパーガイド」の「キー管理」。
-
「Amazon Simple Queue Service デベロッパーガイド」の「キー管理」。
-
AWS KMS コンピューティングブログ
の Encrypting messages published to Amazon SNS with AWS。