本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
授予 Amazon 接收電子郵件SES的許可
收到電子郵件時可以執行的一些任務SES,例如將電子郵件傳送到 Amazon Simple Storage Service (Amazon S3) 儲存貯體或呼叫 AWS Lambda 函數,則需要特殊許可。本節說明多個常見使用案例的範例政策。
本節主題:
設定交付至 S3 儲存貯體動作的IAM角色許可
以下幾點適用於此IAM角色:
-
它只能用於傳送至 S3 儲存貯體動作.
-
如果想要寫入存在於無法使用的區域中的 S3 儲存貯體,SES電子郵件接收則必須使用它。
如果想要寫入 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將原則附加至函數。下列呼叫AddPermission
API授與叫用 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": "*" } ] }