本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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 SESSMTP憑證。
建立可存取 SES 的 IAM 政策
本節說明如何透過 SES 來使用 IAM 政策。若要了解建立 IAM 政策的一般方法,請參閱 IAM 使用者指南。
有三種情況需運用 SES 來使用 IAM:
-
限制電子郵件傳送動作。
-
限制「寄件者」、收件人和「傳回路徑」等使用者傳送的電子郵件欄位。
-
需控制 API 使用量的整體層面時,例如控制允許使用者呼叫已獲授權使用的 API 之使用期間。
限制動作
若要控制使用者可執行哪些SES 動作,您可以使用 IAM 政策中的Action
元素。可在 API 名稱前方加入小寫字串 Action
來將 ses:
元素設至 SES API 動作。例如,您可以設定 Action
為 ses:SendEmail
、ses:GetSendStatistics
或 ses:*
(適用於所有動作)。
然後,根據 Action
來指定 Resource
元素,如下所示:
如果 Action
元素僅允許存取電子郵件傳送 API (也就是說,ses:SendEmail
和/或 ses:SendRawEmail
):
-
要允許用戶從您的任何身份發送 AWS 帳戶,請
Resource
將設置為 * -
若要限制使用者可以傳送的身分,請將
Resource
設定為允許使用者使用的身分 ARN。
如果 Action
元素允許存取所有 API:
-
如果您不想限制使用者用以傳送的身分,請將
Resource
設定為 * -
若要限制使用者可以用於傳送的身分,需要建立兩個政策 (或在一個政策中包含兩項陳述式):
-
一個
Action
設置為允許 non-email-sending 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 |
---|---|---|
|
限制收件人地址,包括:「收件人」、「副本」和「密件副本」地址。 |
|
|
限制「寄件人」地址。 |
|
|
限制做為顯示名稱的「寄件人」地址。 |
|
|
限制「傳回路徑」地址,此地址可使用電子郵件意見轉送功能來接收退信和投訴。如需關於電子郵件意見轉送功能的詳細資訊,請參閱 透過電子郵件接收 Amazon SES 通知。 |
|
根據 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" } } } ] }
下列原則允許使用者呼叫 SendBounceAPI,但前提是「寄件者」位址為 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" } } } ] }