Amazon Simple Email Service
開発者ガイド

Amazon SES の送信承認ポリシーの例

送信承認では、代理送信者に代理送信を許可する際の細かい条件を指定することができます。

代理送信者の指定

プリンシパル (アクセス許可を付与するエンティティ) は AWS アカウント、AWS Identity and Access Management (IAM) ユーザー、または AWS のサービスです。

以下の例は、検証済み ID example.com (AWS アカウント 888888888888 が所有) からのメール送信を AWS ID 123456789012 に許可する、シンプルなポリシーを示しています。このポリシーの Condition ステートメントにより、marketing+.*@example.com アドレスからメールを送信できるのが代理送信者 (AWS ID 123456789012) に限定されています。.* は、送信者が marketing+ の後に追加する任意の文字列を示しています。

{ "Id":"SampleAuthorizationPolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"AuthorizeMarketer", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:888888888888:identity/example.com", "Principal":{ "AWS":[ "123456789012" ] }, "Action":[ "SES:SendEmail", "SES:SendRawEmail" ], "Condition":{ "StringLike":{ "ses:FromAddress":"marketing+.*@example.com" } } } ] }

次のポリシー例では、2 人の IAM ユーザーに、アイデンティティ example.com から送信するアクセス許可を付与します。IAM ユーザーは、Amazon リソースネーム (ARN) によって指定されます。

{ "Id":"ExampleAuthorizationPolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"AuthorizeIAMUser", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:888888888888:identity/example.com", "Principal":{ "AWS":[ "arn:aws:iam::111122223333:user/John", "arn:aws:iam::444455556666:user/Jane" ] }, "Action":[ "SES:SendEmail", "SES:SendRawEmail" ] } ] }

次のポリシー例では、Amazon Cognito ユーザーに、アイデンティティ example.com から送信するアクセス許可を付与します。

{ "Id":"ExampleAuthorizationPolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"AuthorizeService", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:888888888888:identity/example.com", "Principal":{ "Service":[ "cognito-idp.amazonaws.com" ] }, "Action":[ "SES:SendEmail", "SES:SendRawEmail" ] } ] }

「From」アドレスの制限

検証済みドメインを使用する場合、代理送信者だけが特定の E メールアドレスから送信できるようにするポリシーを作成することをお勧めします。「From」アドレスを制限するには、キーで ses:FromAddress と呼ばれる条件を設定します。次のポリシーでは、AWS アカウント ID 123456789012 がアイデンティティ example.com から送信することを許可すると同時に、送信元の E メールアドレスを sender@example.com に限定しています。

{ "Id":"ExamplePolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"AuthorizeFromAddress", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:888888888888:identity/example.com", "Principal":{ "AWS":[ "123456789012" ] }, "Action":[ "SES:SendEmail", "SES:SendRawEmail" ], "Condition":{ "StringEquals":{ "ses:FromAddress":"sender@example.com" } } } ] }

代理送信者による E メール送信時間に対する制限

送信者の承認ポリシーを設定することで、代理送信者が E メールを送信できる日付と時間や、日付の範囲を限定することもできます。たとえば、2018 年 9 月内で E メールキャンペーンの送信を予定している場合、以下のポリシーを使用することで、代理送信者による E メール送信を 9 月に限定することができます。

{ "Id":"ExamplePolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"ControlTimePeriod", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:888888888888:identity/example.com", "Principal":{ "AWS":[ "123456789012" ] }, "Action":[ "SES:SendEmail", "SES:SendRawEmail" ], "Condition":{ "DateGreaterThan":{ "aws:CurrentTime":"2018-08-31T12:00Z" }, "DateLessThan":{ "aws:CurrentTime":"2018-10-01T12:00Z" } } } ] }

E メール送信アクションの制限

送信者が Amazon SES で E メールを送信するために使用できるアクションは、SendEmailSendRawEmail の 2 つです。送信者が E メールの形式をどの程度コントロールするかに応じて決定します。送信承認ポリシーでは、代理送信者をこれらの 2 つのアクションのいずれかに制限できます。ただし、多くのアイデンティティ所有者は、ポリシーで両方のアクションを有効にすることで、E メール送信呼び出しの詳細を代理送信者に任せています。

注記

代理送信者が SMTP インターフェイスを介して Amazon SES にアクセスできるようにする場合、少なくとも SendRawEmail を選択する必要があります。

アクションを制限する必要がある場合、送信承認ポリシーにどちらかのアクションのみ含めることで制限することができます。次の例は、アクションを SendRawEmail に制限する方法を示しています。

{ "Id":"ExamplePolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"ControlAction", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:888888888888:identity/example.com", "Principal":{ "AWS":[ "123456789012" ] }, "Action":[ "SES:SendRawEmail" ] } ] }

E メール送信者の表示名の制限

E メールクライアントによっては、実際の「From」アドレスではなく、E メール送信者の「フレンドリ」名 (E メールヘッダーで指定されている場合) が表示されます。たとえば、"John Doe <johndoe@example.com>" の表示名は John Doe です。例として、user@example.com から E メールを送信しますが、E メールが user@example.com ではなく「Marketing」から送信されたものとして受取人に表示したいとします。次のポリシーでは、「From」アドレスの表示名に「Marketing」が含まれている場合のみ、AWS アカウント ID 123456789012 がアイデンティティ example.com から送信できるようにします。

{ "Id":"ExamplePolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"AuthorizeFromAddress", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:888888888888:identity/example.com", "Principal":{ "AWS":[ "123456789012" ] }, "Action":[ "SES:SendEmail", "SES:SendRawEmail" ], "Condition":{ "StringLike":{ "ses:FromDisplayName":"Marketing" } } } ] }

複数のステートメントの使用

送信承認ポリシーには複数のステートメントを含めることができます。以下のサンプルポリシーには、2 つのステートメントが含まれています。最初のステートメントは、「From」アドレスとフィードバックアドレスの両方がドメイン example.com を使用している場合に限り、2 つの AWS アカウントが sender@example.com から送信することを承認します。2 番目のステートメントは、受信者の E メールアドレスが example.com ドメインに属している場合に限り、IAM ユーザーが sender@example.com から E メールを送信することを承認します。

{ "Version":"2012-10-17", "Statement":[ { "Sid":"AuthorizeAWS", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:999999999999:identity/sender@example.com", "Principal":{ "AWS":[ "111111111111", "222222222222" ] }, "Action":[ "SES:SendEmail", "SES:SendRawEmail" ], "Condition":{ "StringLike":{ "ses:FromAddress":"*@example.com", "ses:FeedbackAddress":"*@example.com" } } }, { "Sid":"AuthorizeInternal", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:999999999999:identity/sender@example.com", "Principal":{ "AWS":"arn:aws:iam::333333333333:user/Jane" }, "Action":[ "SES:SendEmail", "SES:SendRawEmail" ], "Condition":{ "ForAllValues:StringLike":{ "ses:Recipients":"*@example.com" } } } ] }