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

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

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

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

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

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

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:SourceAccount":"111122223333", "AWS:SourceArn": "arn:aws:ses:region:111122223333:receipt-rule-set/rule_set_name:receipt-rule/receipt_rule_name" } } } ] }

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

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

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

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

  • Amazon S3 バケットアクションへの配信を含むレシピルールを含むルールセットの名前で rule_set_name の部分を置き換えます。

  • Amazon S3 バケットアクションへの配信を含むレシピルールの名前で receipt_rule_name の部分を置き換えます。

AWS KMS キーを使用する許可を Amazon SES に付与する

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

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

{ "Sid": "AllowSESToEncryptMessagesBelongingToThisAccount", "Effect": "Allow", "Principal": { "Service":"ses.amazonaws.com" }, "Action": [ "kms:GenerateDataKey*" ], "Resource": "*", "Condition":{ "StringEquals":{ "AWS:SourceAccount":"111122223333", "AWS:SourceArn": "arn:aws:ses:region:111122223333:receipt-rule-set/rule_set_name:receipt-rule/receipt_rule_name" } } }

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

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

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

  • E メール受信に関連付けたレシピルールを含むルールセットの名前で rule_set_name の部分を置き換えます。

  • E メール受信に関連付けたレシピルールの名前で rule_set_name の部分を置き換えます。

AWS KMS を使用して、サーバー側の暗号化が有効になっている状態で暗号化されたメッセージを S3 バケットに送信するには、ポリシーアクション "kms:Decrypt" を追加する必要があります。前の例を使用してこのアクションをポリシーに追加すると、次のように表示されます。

{ "Sid": "AllowSESToEncryptMessagesBelongingToThisAccount", "Effect": "Allow", "Principal": { "Service":"ses.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey*" ], "Resource": "*", "Condition":{ "StringEquals":{ "AWS:SourceAccount":"111122223333", "AWS:SourceArn": "arn:aws:ses:region:111122223333:receipt-rule-set/rule_set_name:receipt-rule/receipt_rule_name" } } }

AWS KMS キーの添付ポリシーの詳細については、 AWS KMSデベロッパーガイドの「AWS Key Management Service のキーポリシーの使用」を参照してください。

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

Amazon SES が AWS 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:region:111122223333:receipt-rule-set/rule_set_name:receipt-rule/receipt_rule_name" "StatementId": "GiveSESPermissionToInvokeFunction" }

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

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

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

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

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

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

別の AWS アカウントのトピックに通知を公開する場合は、Amazon SNS のトピックにポリシーをアタッチする必要があります。SNS トピックは、ドメインおよび受信ルールセットと、同じリージョンに存在する必要があります。

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

{ "Version":"2012-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" } } } ] }

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

  • 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 トピックへの発行アクションを含む受信ルールの名前に置き換えます。

Amazon SNS トピックでサーバー側の暗号化に AWS KMS を使用する場合は、AWS KMS キーポリシーに許可を追加する必要があります。アクセス権限を追加するには、次のポリシーをAWS KMSキーポリシーにアタッチします。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSESToUseKMSKey", "Effect": "Allow", "Principal": { "Service": "ses.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" } ] }