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

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

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

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

授予 Amazon SES 寫入 S3 儲存貯體的許可

將下列政策套用到 S3 儲存貯體時,會給予 Amazon SES 寫入儲存貯體的許可。如需建立將傳入電子郵件傳輸到 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" } } } ] }

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

  • 以您想要寫入的 S3 儲存貯體之名稱取代 MyBugs

  • region 取代為您建立接收規則的 AWS 區域。

  • 111122223333 取代為您的 AWS 帳戶 ID。

  • rule_set_name 替換為含有接收規則且該接收規則中含有傳送至 Amazon S3 儲存貯體動作的規則集名稱。

  • receipt_rule_name 替換為含有傳送至 Amazon S3 儲存貯體動作的接收規則名稱。

給予 Amazon SES 使用 AWS KMS 金鑰的許可

若要讓 Amazon SES 加密您的電子郵件,必須給予其使用 AWS KMS 金鑰的許可,而此金鑰是在設定接收規則時指定的。您可以使用帳戶中的預設 KMS 金鑰 (aws/ses),或使用您建立的客戶受管金鑰。如果使用預設 KMS 金鑰,您不需要執行任何額外步驟來授予 Amazon SES 使用金鑰的許可。如果您使用客戶受管金鑰,則需將陳述式新增到金鑰政策中,以提供 Amazon SES 使用金鑰的許可。

將下列政策陳述式貼到金鑰政策中,以允許 Amazon 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" } } }

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

  • region 取代為您建立接收規則的 AWS 區域。

  • 111122223333 取代為您的 AWS 帳戶 ID。

  • rule_set_name 替換為含有已與電子郵件接收相關聯之接收規則的規則集名稱。

  • 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

給予 Amazon SES 呼叫您 AWS Lambda 函數的許可

若要讓 Amazon SES 呼叫 AWS Lambda 函數,您可以在 Amazon SES 主控台中建立收據規則時選擇該函數。當您執行這項作業時,Amazon SES 會自動將必要的許可新增至函數。

或者也可使用 AWS Lambda API 中的 AddPermission 作業來將政策連接至函數。下列 AddPermission API 呼叫可給予 Amazon SES 叫用 Lambda 函數的許可。如需將政策連接至 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" }

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

  • region 取代為您建立接收規則的 AWS 區域。

  • 111122223333 取代為您的 AWS 帳戶 ID。

  • rule_set_name 取代為包含在其中建立 Lambda 函數之接收規則的規則集名稱。

  • receipt_rule_name 取代為包含 Lambda 函數之接收規則的名稱。

給予 Amazon SES 許可,允許發佈至屬於不同 AWS 帳戶的 Amazon SNS 主題

若要在不同的 AWS 帳戶發佈通知到主題,您必須將政策連接至 Amazon SNS 主題。SNS 主題所在區域必須與網域和接收規則集所在區域相同。

下列政策可給予 Amazon 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" } } } ] }

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

  • topic_region 取代為在其中建立 Amazon SNS 主題的 AWS 區域 區域。

  • sns_topic_account_id 取代為擁有 Amazon SNS 主題的 AWS 帳戶 ID。

  • topic_name 取代為您想要發佈通知的 Amazon SNS 主題名稱。

  • aws_account_id 取代為設為接收電子郵件的 AWS 帳戶 ID。

  • receipt_region 取代為與建立接收規則的 AWS 區域。

  • rule_set_name 取代為包含您建立發佈至 Amazon SNS 主題動作的接收規則之規則集名稱。

  • 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": "*" } ] }