授予 Amazon 接收電子郵件SES的許可 - Amazon Simple Email Service

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

授予 Amazon 接收電子郵件SES的許可

收到電子郵件時可以執行的一些任務SES,例如將電子郵件傳送到 Amazon Simple Storage Service (Amazon S3) 儲存貯體或呼叫 AWS Lambda 函數,則需要特殊許可。本節說明多個常見使用案例的範例政策。

設定交付至 S3 儲存貯體動作的IAM角色許可

以下幾點適用於此IAM角色:

如果想要寫入 S3 儲存貯體IAM,您可以提供具有存取傳送至 S3 儲存貯體動作. 您還需要SES授予權限,以假定該角色才能透過IAM信任原則執行動作,如下一節所述。

此權限原則必須貼到IAM角色的內嵌原則編輯器中 — 請參閱傳送至 S3 儲存貯體動作並遵循IAM角色項目中提供的步驟。如果您想要在 S3 動作中使用SNS主題通知或客戶受管金鑰,下列範例也包含選用許可。)

{ "Version": "2012-10-17", "Statement": [ // Required: allows SES to write in the bucket { "Sid": "S3Access", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::my-bucket/*" }, // Optional: use if an SNS topic is used in the S3 action { "Sid": "SNSAccess", "Effect": "Allow", "Action": "sns:Publish", "Resource": "arn:aws:sns:region:111122223333:my-topic" }, // Optional: use if a customer managed key is used in the S3 action { "Sid": "KMSAccess", "Effect": "Allow", "Action": "kms:GenerateDataKey*", "Resource": "arn:aws:kms:region::111122223333:key/key-id" } ] }

在上述範例政策中進行下列變更:

  • Replace (取代) my-bucket 使用您要寫入的 S3 儲存貯體的名稱。

  • Replace (取代) region 與您建立接收規則的 AWS 區域 位置。

  • Replace (取代) 111122223333 使用您的 AWS 帳戶 ID。

  • Replace (取代) my-topic 與您要發佈通知的SNS主題的名稱。

  • Replace (取代) key-id 與您的KMS密鑰的 ID。

S3 動作IAM角色的信任政策

下列信任原則應新增至IAM角色的「信任」關係中,以SES允許擔任該角色。

注意

只有當您未使用傳送至 S3 儲存貯體動作工作流程角色項目中提供的步驟從SES控制台建立IAM角色時,才需要手動新增此信任原則。IAM當您從主控台建立IAM角色時,此信任原則會自動產生並套用至角色,讓您不必要執行此步驟。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSESAssume", "Effect": "Allow", "Principal": { "Service": "ses.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "AWS:SourceAccount":"111122223333", "AWS:SourceArn": "arn:aws:ses:region:111122223333:receipt-rule-set/rule_set_name:receipt-rule/receipt_rule_name" } } } ] }

在上述範例政策中進行下列變更:

  • Replace (取代) region 與您建立接收規則的 AWS 區域 位置。

  • Replace (取代) 111122223333 使用您的 AWS 帳戶 ID。

  • Replace (取代) rule_set_name 使用規則集的名稱,該規則集包含交付至 Amazon S3 儲存貯體動作的接收規則。

  • Replace (取代) receipt_rule_name 使用包含交付至 Amazon S3 儲存貯體動作的接收規則名稱。

SES授予寫入 S3 儲存貯體的權限

當您將下列政策套用至 S3 儲存貯體時,只要該儲存貯體位於可接收SES電子郵件的區域,就會SES授予寫入該儲存貯體的權限 — 如果您想要寫入電子郵件接收區域以外的儲存貯體,請參閱。設定交付至 S3 儲存貯體動作的IAM角色許可如需建立將傳入電子郵件傳輸到 Amazon S3 的接收規則相關資訊,請參閱「傳送至 S3 儲存貯體動作」。

如需 S3 儲存貯體原則的詳細資訊,請參閱 Amazon Simple Storage Service 使用者指南中的使用儲存貯體政策和使用者政策

{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowSESPuts", "Effect":"Allow", "Principal":{ "Service":"ses.amazonaws.com" }, "Action":"s3:PutObject", "Resource":"arn:aws:s3:::myBucket/*", "Condition":{ "StringEquals":{ "AWS:SourceAccount":"111122223333", "AWS:SourceArn": "arn:aws:ses:region:111122223333:receipt-rule-set/rule_set_name:receipt-rule/receipt_rule_name" } } } ] }

在上述範例政策中進行下列變更:

  • Replace (取代) myBucket 使用您要寫入的 S3 儲存貯體的名稱。

  • Replace (取代) region 與您建立收款規則的「 AWS 區域」。

  • Replace (取代) 111122223333 使用您的 AWS 帳戶 ID。

  • Replace (取代) rule_set_name 使用規則集的名稱,該規則集包含交付至 Amazon S3 儲存貯體動作的接收規則。

  • Replace (取代) receipt_rule_name 使用包含交付至 Amazon S3 儲存貯體動作的接收規則名稱。

SES授予使用 AWS KMS 金鑰的權限

為了加密您SES的電子郵件,電子郵件必須具有使用您在設定收據規則時指定的 AWS KMS 金鑰的權限。您可以在帳戶中使用預設KMS金鑰 (aws/ses),或使用您建立的客戶管理金鑰。如果您使用預設KMS金鑰,則不需要執行任何其他步驟即SES可授予使用該金鑰的權限。如果您使用客戶管理的金鑰,則需要在金鑰政策中新增陳述式來SES授予使用該金鑰的權限。

請使用下列政策聲明做為金鑰政策,以允許SES在收到您網域上的電子郵件時使用客戶管理金鑰。

{ "Sid": "AllowSESToEncryptMessagesBelongingToThisAccount", "Effect": "Allow", "Principal": { "Service":"ses.amazonaws.com" }, "Action": [ "kms:GenerateDataKey*" ], "Resource": "*", "Condition":{ "StringEquals":{ "AWS:SourceAccount":"111122223333", "AWS:SourceArn": "arn:aws:ses:region:111122223333:receipt-rule-set/rule_set_name:receipt-rule/receipt_rule_name" } } }

在上述範例政策中進行下列變更:

  • Replace (取代) region 與您建立收款規則的「 AWS 區域」。

  • Replace (取代) 111122223333 使用您的 AWS 帳戶 ID。

  • Replace (取代) rule_set_name 與規則集的名稱,其中包含您已與電子郵件接收相關聯的接收規則。

  • Replace (取代) receipt_rule_name 使用您與電子郵件接收相關聯的接收規則名稱。

如果您使用 AWS KMS 將加密訊息傳送到已啟用伺服器端加密的 S3 儲存貯體,則需要新增政策動作"kms:Decrypt"。使用上述範例,將此動作新增到您的政策中,將顯示如下:

{ "Sid": "AllowSESToEncryptMessagesBelongingToThisAccount", "Effect": "Allow", "Principal": { "Service":"ses.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey*" ], "Resource": "*", "Condition":{ "StringEquals":{ "AWS:SourceAccount":"111122223333", "AWS:SourceArn": "arn:aws:ses:region:111122223333:receipt-rule-set/rule_set_name:receipt-rule/receipt_rule_name" } } }

如需有關將原則附加至 AWS KMS 金鑰的詳細資訊,請參閱AWS Key Management Service 開發人員指南 AWS KMS中的使用金鑰原則

SES授予調用 AWS Lambda 函數的權限

若SES要啟用呼叫 AWS Lambda 函數,您可以在SES主控台中建立接收規則時選擇函數。當您這樣做時,SES會自動將必要的權限新增至函數。

或者,您可以使用中的AddPermission作業 AWS Lambda API將原則附加至函數。下列呼叫AddPermissionAPI授與叫用 Lambda 函數的SES權限。如需將政策連接至 Lambda 函數的詳細資訊,請參閱 AWS Lambda 開發人員指南中的 AWS Lambda 許可

{ "Action": "lambda:InvokeFunction", "Principal": "ses.amazonaws.com", "SourceAccount": "111122223333", "SourceArn": "arn:aws:ses:region:111122223333:receipt-rule-set/rule_set_name:receipt-rule/receipt_rule_name" "StatementId": "GiveSESPermissionToInvokeFunction" }

在上述範例政策中進行下列變更:

  • Replace (取代) region 與您建立收款規則的「 AWS 區域」。

  • Replace (取代) 111122223333 使用您的 AWS 帳戶 ID。

  • Replace (取代) rule_set_name 使用規則集的名稱,該規則集包含您在其中建立 Lambda 函數的接收規則。

  • Replace (取代) receipt_rule_name 使用包含 Lambda 函數的接收規則名稱。

SES授予發佈到屬於不同 AWS 帳戶的 Amazon SNS 主題的權限

若要將通知發佈到單獨 AWS 帳戶中的主題,您必須將政策附加到 Amazon SNS 主題。主SNS題必須與網域和接收規則集位於相同的區域。

下列政策SES授予在個別 AWS 帳戶中發佈至 Amazon SNS 主題的權限。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"ses.amazonaws.com" }, "Action":"SNS:Publish", "Resource":"arn:aws:sns:topic_region:sns_topic_account_id:topic_name", "Condition":{ "StringEquals":{ "AWS:SourceAccount":"aws_account_id", "AWS:SourceArn": "arn:aws:ses:receipt_region:aws_account_id:receipt-rule-set/rule_set_name:receipt-rule/receipt_rule_name" } } } ] }

在上述範例政策中進行下列變更:

  • Replace (取代) topic_region 與 Amazon 主SNS題創建在. AWS 區域

  • Replace (取代) sns_topic_account_id 與擁有 Amazon SNS 主題的 AWS 帳戶的 ID。

  • Replace (取代) topic_name 使用您要向其發布通知的 Amazon SNS 主題的名稱。

  • Replace (取代) aws_account_id 具有配置為接收電子郵件的 AWS 帳戶的 ID。

  • Replace (取代) receipt_region 與您建立接收規則的 AWS 區域 位置。

  • Replace (取代) rule_set_name 使用規則集的名稱,該規則集包含您在其中建立發佈到 Amazon SNS 主題動作的接收規則。

  • Replace (取代) receipt_rule_name 與包含發佈到 Amazon SNS 主題動作的接收規則的名稱。

如果您的 Amazon SNS 主題用 AWS KMS 於伺服器端加密,則必須向 AWS KMS 金鑰政策新增許可。您可以透過將下列原則附加至 AWS KMS 金鑰原則來新增權限:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSESToUseKMSKey", "Effect": "Allow", "Principal": { "Service": "ses.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" } ] }