Amazon SES に対する E メール受信に関するアクセス許可の付与 - Amazon Simple Email Service Classic

Amazon SES Classic のユーザーガイドです。更新プログラムや新機能は、推奨している新しい Amazon SES デベロッパーガイドに記述されています。

Amazon SES に対する E メール受信に関するアクセス許可の付与

Amazon S3 バケットへの E メールの送信や Lambda 関数の呼び出しなど、Amazon SES で E メールを受信したときに実行できるタスクには、特別なアクセス許可が必要です。このセクションには、いくつかの一般的なユースケースのサンプルポリシーを含みます。

Amazon S3 バケットへの書き込みができる Amazon SES への許可

Amazon S3 バケットに以下のポリシーを適用すると、Amazon SES にそのバケットに書き込む許可を与えます。入力メールを Amazon S3 に転送する受信ルールを作成することに関する詳細については、「S3 アクション」を参照してください。

Amazon S3 バケットの添付ポリシーの詳細については、Amazon Simple Storage Service デベロッパーガイドの「バケットポリシーとユーザーポリシーの使用」を参照してください。

{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowSESPuts", "Effect":"Allow", "Principal":{ "Service":"ses.amazonaws.com" }, "Action":"s3:PutObject", "Resource":"arn:aws:s3:::myBucket/*", "Condition":{ "StringEquals":{ "aws:Referer":"111122223333" } } } ] }

上のポリシー例に、以下の変更を加えます。

  • myBucket を書き込みたい Amazon S3 バケットの名前に置き換えます。

  • 111122223333 は自分の AWS アカウント ID に置き換えます。

AWS KMS マスターキーを使用する許可を Amazon SES に与える

Amazon SES で E メールを暗号化するためには、受信ルールをセットアップしたときに指定した AWS KMS キーを使用するためのアクセス許可を付与する必要があります。ご使用のアカウントのデフォルトのマスターキー (aws/ses) を使用するか、ご自身で作成するカスタムのマスターキーを使用することができます。デフォルトのマスターキーを使用する場合は、そのキーを使用するためのアクセス許可を Amazon SES に付与する追加の手順を特に実行する必要はありません。カスタムのマスターキーを使用する場合は、キーのポリシーにステートメントを追加することで、使用するためのアクセス許可を Amazon SES に付与する必要があります。

ご使用のドメインで Amazon SES が E メールを受信するときに Amazon SES がカスタムのマスターキーを使用することを許可するために、次のポリシーステートメントを使用します。

{ "Sid": "AllowSESToEncryptMessagesBelongingToThisAccount", "Effect": "Allow", "Principal": { "Service":"ses.amazonaws.com" }, "Action": [ "kms:Encrypt", "kms:GenerateDataKey*" ], "Resource": "*" }
注記

Amazon SES は Amazon S3 マルチパートアップロード API を使用して、大きなメッセージ (5 MB 以上) を Amazon S3 バケットに送信します。AWS KMS を使用して暗号化されたメッセージを Amazon S3バケットに送信し、5 MB を超えるメッセージを受信する計画の場合は、前の例のステートメントではなく、次のポリシーステートメントを使用する必要があります。

{ "Sid": "AllowSESToEncryptMessagesBelongingToThisAccount", "Effect": "Allow", "Principal": { "Service":"ses.amazonaws.com" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }

Amazon S3 におけるマルチパートアップロードの詳細については、Amazon Simple Storage Service デベロッパーガイドの「マルチパートアップロード API の許可」を参照してください。AWS KMS キーの添付ポリシーの詳細については、 AWS KMSデベロッパーガイドの「AWS Key Management Service のキーポリシーの使用」を参照してください。

Lambda 関数を呼び出すためのアクセス許可を Amazon SES に与えます。

Amazon SES が Lambda 関数を呼び出せるようにするには、Amazon SES コンソールで受信ルールを作成するときに、その関数を選択します。これを行うと、Amazon SES は自動的に必要なアクセス許可を関数に追加します。

または、AddPermission API の AWS Lambda オペレーションを使用して、関数へのポリシーを添付します。次の AddPermission API 呼び出しでは、Lambda 関数を呼び出すためのアクセス許可を Amazon SES に付与しています。Lambda 関数へのポリシーの添付に関する詳細については、AWS Lambda デベロッパーガイド「AWS Lambda のアクセス許可」を参照ください。

{ "Action": "lambda:InvokeFunction", "Principal": "ses.amazonaws.com", "SourceAccount": "111122223333", "SourceArn": "arn:aws:ses:us-west-2:111122223333:receipt-rule-set/rule_set_name:receipt-rule/receipt_rule_name" "StatementId": "GiveSESPermissionToInvokeFunction" }

上のポリシー例に、以下の変更を加えます。

  • 中国や AWS GovCloud (US) などの特別なパーティションの場合は、aws の部分を対応する AWS パーティションに置き換えます。これについては、AWS 全般のリファレンスの「Amazon リソースネーム (ARN)」を参照してください。

  • us-west-2 は、受信ルールを作成した AWS リージョン に置き換えます。

  • 111122223333 は自分の AWS アカウント ID に置き換えます。

  • rule_set_name は、Lambda 関数を作成した受信ルールを含むルールセットの名前に置き換えます。

  • receipt_rule_name は、Lambda 関数を含む受信ルールの名前に置き換えます。

異なる AWS アカウントに属する Amazon SNS トピックに発行するための Amazon SES のアクセス許可を付与します。

別の AWS アカウントのトピックに通知を公開する場合は、Amazon SNS トピックにポリシーを添付する必要があります。

次のポリシーでは、Amazon SES トピックに別の AWS アカウントの Amazon SNS トピックに発行するためのアクセス許可を Amazon SES に与えます。

{ "Version":"2008-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"ses.amazonaws.com" }, "Action":"SNS:Publish", "Resource":"arn:aws:sns:topic_region:sns_topic_account_id:topic_name", "Condition":{ "StringEquals":{ "AWS:SourceAccount":"aws_account_id", "AWS:SourceArn": "arn:aws:ses:receipt_region:aws_account_id:receipt-rule-set/rule_set_name:receipt-rule/receipt_rule_name" } } } ] }

上のポリシー例に、以下の変更を加えます。

  • 中国や AWS GovCloud (US) などの特別なパーティションの場合は、aws の部分を対応する AWS パーティションに置き換えます。これについては、AWS 全般のリファレンスの「Amazon リソースネーム (ARN)」を参照してください。

  • topic_region は、とAmazon SNS トピックが作成された AWS リージョン に置き換えます。

  • sns_topic_account_id は、Amazon SNS トピックを所有する AWS アカウント の ID に置き換えます。

  • topic_name は、通知の発行先となる Amazon SNS トピックの名前に置き換えます。

  • aws_account_id は、E メールを受信するように設定した AWS アカウント のID に置き換えます。

  • receipt_region は、受信ルールを作成した AWS リージョン に置き換えます。

  • rule_set_name は、Amazon SNS トピックへの発行アクションを作成した受信ルールを含む、ルールセットの名前に置き換えます。

  • receipt_rule_name は、Amazon SNS トピックへの発行アクションを含む受信ルールの名前に置き換えます。