Amazon SESでの Identity and Access Management - Amazon Simple Email Service

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

Amazon SESでの Identity and Access Management

AWS Identity and Access Management (IAM) と Amazon Simple Email Service (Amazon SES) を使用して、ユーザー、グループ、またはロールが実行できる SES API アクションを指定できます。(このトピックでは、これらのエンティティをまとめて「ユーザー」と呼びます)。ユーザーが「From」、受取人、「Return-Path」の E メールアドレスに使用できる E メールアドレスをコントロールすることもできます。

例えば、IAM ポリシーを作成して、組織内のユーザーはメールを送信できるが送信統計の確認アクションなどのチェック作業を実行できないようにすることができます。別の例として、ユーザーが特定の「From」アドレスを使用している場合のみ、アカウントから SES を介して E メールを送信することを許可するポリシーを作成できます。

IAM を使用するには、IAM ポリシー (明示的にアクセス許可を定義するドキュメント) を定義し、ユーザーにポリシーをアタッチします。IAM ポリシーを作成する方法については、「IAM ユーザーガイド」を参照してください。ポリシーで設定した制限が適用される以外に、ユーザーが SES を操作する方法や SES がリクエストを実行する方法に変更はありません。

注記
  • アカウントが SES サンドボックスにある場合は、その制限によってこれらのポリシーの一部を実装できない場合があります。「本番稼働用アクセスのリクエスト」を参照してください。

  • 送信承認ポリシーを使用することで、SES へのアクセスを制御することもできます。IAM ポリシーは、個々のユーザーが実行できる操作を制約しますが、送信承認ポリシーは、個々の検証済みアイデンティティの使用方法を制約します。さらに、クロスアカウントアクセスを許可できるのは送信承認ポリシーのみです。送信承認の詳細については、「Amazon SES での送信承認の使用」を参照してください。

既存のユーザーの SES SMTP の認証情報を生成する方法については、「Amazon SES SMTP 認証情報を取得」を参照してください。

SES にアクセスするための IAM ポリシーの作成

このセクションでは、特に SES で IAM ポリシーを使用する方法を説明します。IAM ポリシーを作成する一般的な方法については、「IAM ユーザーガイド」を参照してください。

SES で IAM を使用する理由は次の 3 つです。

  • E メール送信アクションを制限するため。

  • ユーザーが送信する E メールの「From」、受取人、「Return-Path」のアドレスを制限するため。

  • ユーザーが使用を承認された API の呼び出しを許可される期間など、API の使用の一般的な側面をコントロールするため。

アクションの制限

ユーザーが実行できる SES アクションをコントロールするには、IAM ポリシーの Action 要素を使用します。API 名の先頭に小文字の文字列 Action を付けることで、ses: 要素をすべての SES API アクションに設定できます。たとえば、Actionses:SendEmailses:GetSendStatistics、または ses:* (すべてのアクションの場合) に設定できます。

次に、Action に応じて、次のように Resource 要素を指定します。

Action 要素により E メール送信 API (つまり、ses:SendEmailses:SendRawEmail) へのアクセスのみ許可されている場合、次のようにします。

  • ユーザーがAWS アカウントの任意の ID から送信できるようにするには、Resourceを* に設定します。

  • ユーザーの送信元のアイデンティティを制限するには、Resource をユーザーに使用を許可するアイデンティティの ARN に設定します。

Action 要素によりすべての API へのアクセスが許可されている場合、次のようにします。

  • ユーザーの送信元のアイデンティティを制限しない場合、Resource を * に設定します。

  • ユーザーの送信元のアイデンティティを制限する場合、2 つのポリシー (または、1 つのポリシー内に 2 つのステートメント) を作成する必要があります。

    • Action が、許可される E メール送信以外の API の明示的なリストに設定され、Resource が * に設定されているポリシー

    • Action が E メール送信 API (ses:SendEmailses:SendRawEmail) のいずれかに設定され、Resource がユーザーに使用を許可するアイデンティティの ARN に設定されたポリシー

使用可能な SES アクションのリストについては、「Amazon Simple Email Service API リファレンス」を参照してください。ユーザーが SMTP インターフェイスを使用する場合、許可する ses:SendRawEmail へのアクセスを最小限にする必要があります。

E メールアドレスの制限

ユーザーを特定の E メールアドレスに制限する場合、Condition ブロックを使用できます。Condition ブロックでは、IAM ユーザーガイド で説明されている条件キーを使用して条件を指定します。条件キーを使用して、次の E メールアドレスをコントロールできます。

注記

これらの E メールアドレス条件キーは、以下の表に記載された API にのみ適用されます。

条件キー

説明

API

ses:Recipients

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

SendEmail, SendRawEmail

ses:FromAddress

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

SendEmail, SendRawEmail, SendBounce

ses:FromDisplayName

表示名として使用される「From」アドレスを制限します。

SendEmail, SendRawEmail

ses:FeedbackAddress

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

SendEmail, SendRawEmail

SES API のバージョンによる制限

条件で ses:ApiVersion キーを使用することで、SES API のバージョンに基づいて SES へのアクセスを制限できます。

注記

SES SMTP インターフェイスは、ses:SendRawEmail の SES API バージョン 2 を使用します。

一般的な API の使用の制限

条件で AWS 全体のキーを使用することで、ユーザーが API にアクセスを許可される日時のような側面に基づいて SES へのアクセスを制限できます。SES は、以下の AWS 全体のポリシーキーのみを実装しています。

  • aws:CurrentTime

  • aws:EpochTime

  • aws:SecureTransport

  • aws:SourceIp

  • aws:SourceVpc

  • aws:SourceVpce

  • aws:UserAgent

  • aws:VpcSourceIp

これらのキーについては、「 IAM ユーザーガイド」を参照してください。

SES の IAM ポリシーの例

このトピックでは、特定の条件の下でのみ SES へのユーザーアクセスを許可するポリシーの例を示します。

すべての SES アクションへのフルアクセスを許可

次のポリシーでは、任意の SES アクションの呼び出しをユーザーに許可します。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ses:*" ], "Resource":"*" } ] }

SES API バージョン 2 のみへのアクセスの許可

次のポリシーでは、ユーザーに API バージョン 2 の SES アクションのみの呼び出しを許可します。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ses:*" ], "Resource":"*", "Condition": { "StringEquals" : { "ses:ApiVersion" : "2" } } } ] }

E メール送信アクションへのアクセスのみを許可

次のポリシーでは、SES を使用した E メールの送信をユーザーに許可しますが、SES 送信統計へのアクセスなどの管理作業を実行することは許可しません。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ses:SendEmail", "ses:SendRawEmail" ], "Resource":"*" } ] }

送信期間の制限

次のポリシーでは、2018 年の 9 月中に限り、SES E メール送信 API の呼び出しをユーザーに許可します。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ses:SendEmail", "ses:SendRawEmail" ], "Resource":"*", "Condition":{ "DateGreaterThan":{ "aws:CurrentTime":"2018-08-31T12:00Z" }, "DateLessThan":{ "aws:CurrentTime":"2018-10-01T12:00Z" } } } ] }

受取人アドレスの制限

次のポリシーでは、ドメイン example.com (StringLike では、大文字と小文字が区別されます) の受信者アドレスに対してのみ、SES E メール送信 API の呼び出しをユーザーに許可します。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ses:SendEmail", "ses:SendRawEmail" ], "Resource":"*", "Condition":{ "ForAllValues:StringLike":{ "ses:Recipients":[ "*@example.com" ] } } } ] }

"From" アドレスの制限

次のポリシーでは、marketing@example.com の受信者アドレスに対してのみ、E メール送信 API の呼び出しをユーザーに許可します。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ses:SendEmail", "ses:SendRawEmail" ], "Resource":"*", "Condition":{ "StringEquals":{ "ses:FromAddress":"marketing@example.com" } } } ] }

次のポリシーでは、bounce@example.com の受信者アドレスに対してのみ、SendBounce API の呼び出しをユーザーに許可します。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ses:SendBounce" ], "Resource":"*", "Condition":{ "StringEquals":{ "ses:FromAddress":"bounce@example.com" } } } ] }

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

次のポリシーでは、「From」アドレスの表示名が Marketing (StringLike では、大文字と小文字が区別されます) を含む場合に対してのみ、SES E メール送信 API の呼び出しをユーザーに許可します。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ses:SendEmail", "ses:SendRawEmail" ], "Resource":"*", "Condition":{ "StringLike":{ "ses:FromDisplayName":"Marketing" } } } ] }

バウンスや苦情のフィードバックの制限と送信先

次のポリシーでは、E メールの「Return-Path」が feedback@example.com に設定されている場合にのみ、SES E メール送信 API の呼び出しをユーザーに許可します。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ses:SendEmail", "ses:SendRawEmail" ], "Resource":"*", "Condition":{ "StringEquals":{ "ses:FeedbackAddress":"feedback@example.com" } } } ] }