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

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

Amazon 中的身分和存取管理 SES

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

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

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

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

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

如果您要尋找如何為現有使用者產生SESSMTP登入資料的相關資訊,請參閱 取得 Amazon SESSMTP登入資料

建立 IAM 政策以存取 SES

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

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

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

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

  • 控制API使用的一般層面,例如允許使用者呼叫APIs其獲授權使用的 的期間。

限制動作

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

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

如果 Action元素僅允許存取電子郵件傳送 APIs(即 ses:SendEmail和/或 ses:SendRawEmail):

  • 若要允許使用者從 中的任何身分傳送 AWS 帳戶,請將 Resource設定為 *

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

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

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

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

    • 一個 Action 設定為允許 non-email-sendingAPIs且Resource設定為 * 的明確清單

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

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

限制電子郵件地址

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

注意

這些電子郵件地址條件索引鍵僅適用於下表APIs所述的 。

條件索引鍵

描述

API

ses:Recipients

限制收件人地址,包括收件人:、「CC」和「BCC」地址。

SendEmail, SendRawEmail

ses:FromAddress

限制「寄件人」地址。

SendEmail, SendRawEmail, SendBounce

ses:FromDisplayName

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

SendEmail, SendRawEmail

ses:FeedbackAddress

限制「傳回路徑」地址,此地址可使用電子郵件意見轉送功能來接收退信和投訴。如需關於電子郵件意見轉送功能的詳細資訊,請參閱 透過電子郵件接收 Amazon SES 通知

SendEmail, SendRawEmail

ses:MultiRegionEndpointId

可讓您控制傳送電子郵件時使用的端點 ID

SendEmail, SendBulkEmail

依SESAPI版本限制

在 條件下使用 ses:ApiVersion金鑰,您可以SES根據 的版本限制對 SES 的存取API。

注意

此SESSMTP介面使用 第 2 SESAPI版ses:SendRawEmail

限制一般API用量

透過在 條件中使用全局金鑰,您可以SES根據允許使用者存取 AWS的日期和時間等層面來限制對 的存取APIs。 只會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":"*" } ] }

僅允許存取第 2 SESAPI版

下列政策允許使用者只呼叫第 2 API版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":"*" } ] }

限制傳送期間

下列政策APIs僅允許使用者在 2018 年 9 月期間呼叫SES電子郵件傳送。

{ "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電子郵件傳送 APIs,但僅限於網域 example.com 中的收件人地址 (StringLike 區分大小寫)。

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

限制「寄件人」地址

下列政策允許使用者呼叫SES電子郵件傳送 APIs,但前提是「寄件人」地址為 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電子郵件傳送 APIs,但前提是「寄件人」地址的顯示名稱包含行銷 (StringLike區分大小寫)。

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

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

下列政策允許使用者呼叫SES電子郵件傳送 APIs,但前提是電子郵件的「傳回路徑」設定為 feedback@example.com

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