Amazon SES 中的身分和存取管理 - Amazon Simple Email Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon SES 中的身分和存取管理

您可以使用 AWS Identity and Access Management (IAM) 搭配 Amazon Simple Email Service (Amazon SES),指定使用者、群組或角色可以執行哪些 SES API 動作。(在本主題中,這些實體統稱為使用者。) 您也可以控制使用者可用於「寄件者」、收件人和「傳回路徑」等電子郵件地址欄位的電子郵件地址。

舉例來說,您可以建立允許組織中使用者傳送電子郵件的 IAM 政策,但是不可執行如檢查傳送統計資料等管理動作。另一個例子是,您可以編寫一個政策來使用者自您的帳戶中經由 SES 傳送電子郵件,但僅限於使用特定的「寄件人」地址。

若要使用 IAM,需定義一個 IAM 政策,該政策文件中需明確定義許可,並將政策連接至使用者。若要了解如何建立 IAM 政策,請參閱 IAM 使用者指南。除了套用您於政策中制訂的限制外,使用者與 SES 互動的方式或者 SES 執行請求的方法都不會改變。

注意
  • 如果您的帳戶在 SES 沙盒中,其限制會防止一些政策的實作-請參閱 請求生產存取權限

  • 您也可以透過傳送授權政策來控制 SES 的存取。IAM 政策會限制個別使用者可以執行的動作,傳送授權政策則是限制個別已驗證身分的使用方法。此外,只能透過傳送授權政策來允許跨帳戶存取權限。如需關於傳送授權的詳細資訊,請參閱 透過 Amazon SES 使用傳送授權

如果您要尋找如何為現有使用者產生 SES SMTP 憑證的詳細資訊,請參閱 取得 Amazon SES SMTP 憑證

建立可存取 SES 的 IAM 政策

本節說明如何透過 SES 來使用 IAM 政策。若要了解建立 IAM 政策的一般方法,請參閱 IAM 使用者指南

有三種情況需運用 SES 來使用 IAM:

  • 限制電子郵件傳送動作。

  • 限制「寄件者」、收件人和「傳回路徑」等使用者傳送的電子郵件欄位。

  • 需控制 API 使用量的整體層面時,例如控制允許使用者呼叫已獲授權使用的 API 之使用期間。

限制動作

若要控制使用者可執行哪些SES 動作,您可以使用 IAM 政策中的Action元素。可在 API 名稱前方加入小寫字串 Action 來將 ses: 元素設至 SES API 動作。例如,您可以設定 Actionses:SendEmailses:GetSendStatisticsses:* (適用於所有動作)。

然後,根據 Action 來指定 Resource 元素,如下所示:

如果 Action 元素僅允許存取電子郵件傳送 API (也就是說,ses:SendEmail 和/或 ses:SendRawEmail):

  • 為了讓使用者可以從 AWS 帳戶 中的任何身分來傳送通知,將 Resource 設定為 *

  • 若要限制使用者可以傳送的身分,請將 Resource 設定為允許使用者使用的身分 ARN。

如果 Action 元素允許存取所有 API:

  • 如果您不想限制使用者用以傳送的身分,請將 Resource 設定為 *

  • 若要限制使用者可以用於傳送的身分,需要建立兩個政策 (或在一個政策中包含兩項陳述式):

    • 一項是將 Action 設定為明確允許非電子郵件傳送 API 的清單,並將 Resource 設定為 *

    • 另一項是將 Action 設定為其中一個電子郵件傳送 API (ses:SendEmail 和/或 ses:SendRawEmail),並將 Resource 設定為您允許使用者使用的身分 ARN。

如需可用 Amazon SES 動作的清單,請參閱 Amazon Simple Email Service API 參考資料。如果使用者將使用 SMTP 界面,您至少必須允許存取 ses:SendRawEmail

限制電子郵件地址

如果您想限制使用者使用特定電子郵件地址,您也可以使用 Condition 區塊。在 Condition 區塊中,需使用 IAM 使用者指南中說明的條件索引鍵來指定條件。使用條件金鑰即可控制以下電子郵件地址:

注意

這些電子郵件地址的條件金鑰只適用於下方表格中所列之 API。

條件金鑰

描述

API

ses:Recipients

限制收件人地址,包括:「收件人」、「副本」和「密件副本」地址。

SendEmail, SendRawEmail

ses:FromAddress

限制「寄件人」地址。

SendEmail, SendRawEmail, SendBounce

ses:FromDisplayName

限制做為顯示名稱的「寄件人」地址。

SendEmail, SendRawEmail

ses:FeedbackAddress

限制「傳回路徑」地址,此地址可使用電子郵件意見轉送功能來接收退信和投訴。如需關於電子郵件意見轉送功能的詳細資訊,請參閱 透過電子郵件接收 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" } } } ] }

僅允許存取電子郵件傳送動作

以下政策允許使用者經由 SES 傳送電子郵件,但是不允許使用者執行管理動作,例如存取 SES 傳送統計資料。

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

限制傳送期間

以下政策允許使用者呼叫 SES 電子郵件傳送 API,期間僅限於 2018 年 9 月。

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

限制收件人地址

以下政策允許使用者呼叫 SES 電子郵件傳送 API,但是僅限於 example.com 網域中的收件人地址 (StringLike 會區分大小寫)。

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

限制「寄件人」地址

以下政策允許使用者呼叫 SES 電子郵件傳送 API,但是僅限於「寄件人」地址為 marketing@example.com 的情況。

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

以下政策允許使用者呼叫 SendBounce API,但是僅限於「寄件人」地址為 bounce@example.com 的情況。

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

限制電子郵件寄件者的顯示名稱

以下政策允許使用者呼叫 SES 電子郵件傳送 API,但是僅限於「寄件人」地址顯示名稱包含 Marketing 的情況 (StringLike 會區分大小寫)。

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

限制退信目的地與投訴意見回饋

以下政策允許使用者呼叫 SES 電子郵件傳送 API,但是僅限於電子郵件的「傳回路徑」設為 feedback@example.com 的情況。

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