Amazon SES の送信承認ポリシー - Amazon Simple Email Service

Amazon SES の送信承認ポリシー

別の AWS アカウント、Identity Access and Management (IAM) ユーザー、または AWS サービスがお客様の代わりに Amazon SES を通じて E メールを送信できるようにするには、送信承認ポリシーを作成します。このポリシーは、所有している ID にアタッチする JSON ドキュメントです。このポリシーには、その ID での送信を許可するユーザーとその条件が明示的にリストされます。お客様、およびポリシーでアクセス権限を明示的に付与したエンティティ以外のすべての送信者は、拒否されます。アイデンティティにはポリシーをアタッチしないことも、1 つまたは複数のポリシーをアタッチすることもできます。さらに、複数のステートメントを含む 1 つのポリシーを作成して、複数のポリシーの効果を持たせることもできます。

ポリシーは、シンプルな内容にすることも、細かくコントロールできるよう設定することもできます。たとえば、example.com を所有している場合、そのドメインから送信するアクセス権限を AWS ID 123456789012 に付与するシンプルなポリシーを記述することができます。詳細なポリシーでは、AWS ID 123456789012 は、指定された日付範囲に限り、user@example.com からのみ E メールを送信できることを指定できます。

Amazon SES 送信承認ポリシーは、E メール送信 API (SendEmailSendRawEmailSendTemplatedEmail、および SendBulkTemplatedEmail) にのみ適用されます。このポリシーによってユーザーが AWS アカウントにアクセスできるようになることはありません。

ポリシーの構造

各送信承認ポリシーは、アイデンティティにアタッチされる JSON ドキュメントです。各ポリシーには以下のセクションがあります。

  • ポリシー全体に関する情報 (ドキュメントの最上部)。

  • 1 つ以上の個別のステートメント (それぞれが 1 セットのアクセス許可を説明)。

次のサンプルポリシーでは、検証済みドメイン example.com から送信するアクセス許可を AWS アカウント ID 123456789012 に付与します。

{ "Id":"ExampleAuthorizationPolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"AuthorizeAccount", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:123456789012:identity/example.com", "Principal":{ "AWS":[ "123456789012" ] }, "Action":[ "ses:SendEmail", "ses:SendTemplatedEmail", "ses:SendRawEmail", "ses:SendBulkTemplatedEmail" ] } ] }

他の送信承認ポリシーの例は、「送信承認ポリシーの例」を参照してください。

ポリシーの要素

このセクションでは、送信承認ポリシーに含まれている要素について説明します。まず、ポリシー全体の要素について説明した後、その要素が含まれるステートメントにのみ適用される要素について説明します。その後、ステートメントに条件を追加する方法について説明します。

要素の構文の詳細については、IAM ユーザーガイドの「IAM ポリシー言語の文法」を参照してください。

ポリシー全体に関する情報

ポリシー全体の要素として、IdVersion の 2 つがあります。次の表に、これらの要素についての情報を示します。

名前

説明

必須

有効な値

Id

ポリシーを一意に識別します。

いいえ

任意の文字列

Version

ポリシーアクセス言語のバージョンを指定します。

いいえ

任意の文字列。ベストプラクティスとして、このフィールドに値 "2012-10-17" を含めることをお勧めします。

個別のポリシーに関するステートメント

送信承認ポリシーには、少なくとも 1 つのステートメントが必要です。各ステートメントには、次の表に示す要素を含めることができます。

名前

説明

必須

有効な値

Sid

ステートメントを一意に識別します。

いいえ

任意の文字列。

Effect

評価時にポリシーのステートメントによって返される結果を指定します。

はい

"Allow" または "Deny"。

Resource

ポリシーが適用されるアイデンティティを指定します。これは、アイデンティティ所有者が代理送信者に使用を承認する E メールアドレスまたはドメインです。

はい

E メール ID の Amazon リソースネーム (ARN)。

Principal

ステートメントでアクセス許可を受け取る AWS アカウント、IAM ユーザー、または AWS のサービスを指定します。

はい

有効な AWS アカウント ID、IAM ユーザー ARN、または AWS のサービス。AWS アカウント ID と IAM ユーザー ARN は "AWS" を使用して指定します ("AWS": ["123456789012"]"AWS": ["arn:aws:iam::123456789012:root"] など)。AWS サービス名は "Service" を使用して指定します ("Service": ["cognito-idp.amazonaws.com"] など)。

IAM ユーザー ARN の形式の例については、AWS General Referenceを参照してください。

Action

ステートメントが適用される E メール送信アクションを指定します。

はい

"ses:SendEmail"、"ses:SendRawEmail"、"ses:SendTemplatedEmail"、"ses:SendBulkTemplatedEmail"

これらのオペレーションは 1 つ以上指定できます。「ses:Send*」を指定して、これらのオペレーションをすべてを含めることもできます。代理送信者が SMTP インターフェイスを使用して E メールを送信する予定の場合は、「ses:SendRawEmail」を指定するか、「ses:Send*」を使用する必要があります。

Condition

アクセス許可についての制限や詳細を指定します。

いいえ

この表の後の条件についての情報を参照してください。

条件

条件は、ステートメントのアクセス権限に関する制限のことです。ステートメントの中でも、記述が最も詳細になるのが、この条件部分です。キーは、リクエストの日時など、アクセス制限に使用される基本項目です。

制限は、条件とキーの両方を使用して定義します。たとえば、代理送信者が 2019 年 7 月 30 日以降はお客様の代わりに Amazon SES にリクエストを行うことができないように制限する場合、DateLessThan という条件を使用します。キーは aws:CurrentTime を使用し、値を 2019-07-30T00:00:00Z に設定します。

IAM ユーザーガイドの「利用可能なキー」で説明されている AWS 全体のキーを使用するか、Amazon SES に固有の次のいずれかのキーを使用できます。

条件キー

説明

ses:Recipients

受信者アドレスを制限します。To:、"CC"、"BCC" アドレスが含まれます。

ses:FromAddress

「From」アドレスを制限します。

ses:FromDisplayName

「From」表示名として使用される文字列の内容を制限します ("フレンドリ名" と呼ばれることもあります)。たとえば、"John Doe <johndoe@example.com>" の表示名は John Doe です。

ses:FeedbackAddress

「Return Path」アドレス (E メールのフィードバック転送によりバウンスや苦情を送信できるアドレス) を制限します。E メールのフィードバック転送の詳細については、「E メールで送信された Amazon SES 通知」を参照してください。

Amazon SES で StringEquals 条件および StringLike 条件を使用することができます。これらの条件は、大文字小文字を区別する文字列の一致を指定するために使用します。StringLike の場合、値には、複数文字一致のワイルドカード (*) または 1 文字一致のワイルドカード (?) を指定できます。文字列のどこにでも含めることができます。たとえば、次の条件は、先頭に「invoicing」、末尾に「@example.com」が付いた「From」アドレスからのみ代理送信者が送信できることを指定します。

"Condition": { "StringLike": { "ses:FromAddress": "invoicing*@example.com" } }

また、StringNotLike 条件を使用して、代理送信者が特定の E メールアドレスから E メールを送信できないようにすることもできます。たとえば、admin@example.com や同様の E メールアドレス ("admin"@example.comadmin+1@example.comsender@admin.example.com) からの送信を禁止するには、ポリシーステートメントの条件に以下を含めます。

"Condition": { "StringNotLike": { "ses:FromAddress": "*admin*example.com" } }

条件を指定する方法の詳細については、IAM ユーザーガイド の「IAM JSON ポリシー要素の条件」を参照してください。

ポリシーの要件

ポリシーは、以下の要件をすべて満たしている必要があります。

  • 各ポリシーには、少なくとも 1 つのステートメントが含まれている必要があります。

  • 各ポリシーには、少なくとも 1 つの有効なプリンシパルが含まれている必要があります。

  • 各ポリシーには、1 つのリソースを指定する必要があります。またそのリソースは、ポリシーがアタッチされている ID の ARN である必要があります。

  • アイデンティティ所有者は、最大 20 のポリシーにそれぞれ一意のアイデンティティを関連付けることができます。

  • ポリシーのサイズが 4 キロバイト (KB) を超えることはできません。

  • ポリシー名が 64 文字を超えることはできません。また、英数字、ダッシュ、アンダースコアのみを含めることができます。