E メール受信のための Amazon SES へのアクセス許可の付与 - Amazon Simple Email Service

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

E メール受信のための Amazon SES へのアクセス許可の付与

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

S3 バケットへの配信アクションのIAMロールアクセス許可の設定

このIAMロールには、次のポイントが適用されます。

S3 バケットに書き込む場合は、 の関連リソースにアクセスするためのアクセス許可を IAMロールに付与できますS3 バケットアクションへの配信。また、次のセクション で説明するように、IAM信頼ポリシーを介してアクションを実行するために、そのロールを引き受けるSESアクセス許可を付与する必要があります。

このアクセス許可ポリシーは、IAMロールのインラインポリシーエディタに貼り付ける必要があります。「」を参照S3 バケットアクションへの配信し、IAMロール項目に記載されているステップに従ってください。(次の例には、SNSトピック通知を使用する場合のオプションアクセス許可、または S3 アクションでカスタマーマネージドキーも含まれます)。

{ "Version": "2012-10-17", "Statement": [ // Required: allows SES to write in the bucket { "Sid": "S3Access", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::my-bucket/*" }, // Optional: use if an SNS topic is used in the S3 action { "Sid": "SNSAccess", "Effect": "Allow", "Action": "sns:Publish", "Resource": "arn:aws:sns:region:111122223333:my-topic" }, // Optional: use if a customer managed key is used in the S3 action { "Sid": "KMSAccess", "Effect": "Allow", "Action": "kms:GenerateDataKey*", "Resource": "arn:aws:kms:region::111122223333:key/key-id" } ] }

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

  • 置換 my-bucket を書き込み先の S3 バケットの名前に置き換えます。

  • 置換 region 受信ルール AWS リージョン を作成した を使用します。

  • 置換 111122223333 アカウント AWS ID を入力します。

  • 置換 my-topic 通知を発行するSNSトピックの名前。

  • 置換 key-id KMS キーの ID を入力します。

S3 アクションIAMロールの信頼ポリシー

がロールを引き受けるSESことができるように、次の信頼ポリシーをIAMロールの信頼関係に追加する必要があります。

注記

この信頼ポリシーを手動で追加する必要があるのは、S3 バケットアクションへの配信ワークフローのIAMロール項目で指定されたステップを使用してSESコンソールからIAMロールを作成しなかった場合のみです。コンソールからIAMロールを作成すると、この信頼ポリシーが自動的に生成され、このステップが不要になるようにロールに適用されます。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSESAssume", "Effect": "Allow", "Principal": { "Service": "ses.amazonaws.com" }, "Action": "sts:AssumeRole", "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 を入力します。

  • 置換 rule_set_name Amazon S3 バケットへの配信アクションを含む受信ルールを含むルールセットの名前。

  • 置換 receipt_rule_name Amazon S3 バケットへの配信アクションを含む受信ルールの名前。

S3 バケットに書き込むアクセスSES許可を付与する

次のポリシーを S3 バケットに適用すると、E SESメール受信が利用可能なリージョンに存在する限り、そのバケットに書き込むSESアクセス許可が付与されます。E メール受信リージョン外のバケットに書き込む場合は、「」を参照してくださいS3 バケットへの配信アクションのIAMロールアクセス許可の設定。入力メールを 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 を入力します。

  • 置換 rule_set_name Amazon S3 バケットへの配信アクションを含む受信ルールを含むルールセットの名前。

  • 置換 receipt_rule_name Amazon S3 バケットへの配信アクションを含む受信ルールの名前。

AWS KMS キーを使用するアクセスSES許可を付与する

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

次のポリシーステートメントをキーポリシーとして使用して、 SESがドメインで E メールを受信したときにカスタマーマネージドキーを使用できるようにします。

{ "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 を入力します。

  • 置換 rule_set_name E メール受信に関連付けた受信ルールを含むルールセットの名前。

  • 置換 receipt_rule_name E メール受信に関連付けられた受信ルールの名前。

を使用して、サーバー側の暗号化を有効にして S3 バケット AWS KMS に暗号化メッセージを送信する場合は、ポリシーアクション を追加する必要があります"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 Key Management Service デベロッパーガイド」の「 でのキーポリシーの使用 AWS KMS」を参照してください。

AWS Lambda 関数を呼び出すSESアクセス許可を付与する

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

または、 の AddPermission AWS Lambda オペレーションを使用してAPI、ポリシーを関数にアタッチすることもできます。への次の呼び出しAddPermissionAPIは、Lambda 関数を呼び出すアクセス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トピックに発行するSESアクセス許可を付与する

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

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

{ "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 メールを受信するように設定されたアカウントの ID AWS を持つ 。

  • 置換 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": "*" } ] }