View a markdown version of this page

Mail Manager 的权限策略 - Amazon Simple Email Service

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Mail Manager 的权限策略

本章中的策略为使用 Mail Manager 所有不同功能所必需的策略提供了一个单一参考点。

在 Mail Manager 功能页面中,提供了链接,单击后会跳转到本页包含您使用该功能所需策略的相应部分。选择所需策略的复制图标,并按照相应功能说明中的指示进行粘贴。

以下策略允许您通过资源权限策略和 AWS Secrets Manager 策略使用 Amazon SES Mail Manager 中包含的不同功能。如果您不熟悉权限策略,请参阅 Amazon SES 策略剖析和 AWS Secrets Manager的权限策略。

入口端点的权限策略

创建入口端点需要同时使用本节中的两个策略。要了解如何创建入口端点以及在何处使用这些策略,请参阅在 SES 控制台中创建入口端点。

入口端点的 Secrets Manager 密钥资源权限策略

要使 SES 能够通过入口端点资源访问密钥,需要使用以下 Secrets Manager 密钥资源权限策略。

JSON
{ "Version":"2012-10-17", "Id": "Id", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ses.amazonaws.com" }, "Action": "secretsmanager:GetSecretValue", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "000000000000" }, "ArnLike": { "aws:SourceArn": "arn:aws:ses:us-east-1:000000000000:mailmanager-ingress-point/*" } } } ] }

入口端点的 KMS 客户自主管理型密钥(CMK)密钥策略

必须使用客户托管密钥 (CMK) 作为您的密钥。要允许 SES 使用您的密钥作为您的密钥,您的 KMS 密钥策略中必须包含以下声明。

{ "Effect": "Allow", "Principal": { "Service": "ses.amazonaws.com" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "secretsmanager.us-east-1.amazonaws.com", "aws:SourceAccount": "000000000000" }, "ArnLike": { "aws:SourceArn": "arn:aws:ses:us-east-1:000000000000:mailmanager-ingress-point/*" } } }

适用于 mTLS 信任存储库的 KMS 客户托管密钥 (CMK) 密钥策略

如果您使用客户托管密钥 (CMK) 来加密您的 mTLS 信任存储,则需要在您的 KMS 密钥策略中使用以下声明以允许 SES 使用您的密钥。

{ "Effect": "Allow", "Principal": { "Service": "ses.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "000000000000" }, "ArnLike": { "aws:SourceArn": "arn:aws:ses:us-east-1:000000000000:mailmanager-ingress-point/*" } } }

SMTP 中继的权限策略

创建 SMTP 中继需要同时使用本节中的两个策略。要了解如何创建 SMTP 中继以及在何处使用这些策略,请参阅在 SES 控制台中创建 SMTP 中继。

SMTP 中继的 Secrets Manager 密钥资源权限策略

要使 SES 能够通过 SMTP 中继资源访问密钥,需要使用以下 Secrets Manager 密钥资源权限策略。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Principal": { "Service": [ "ses.amazonaws.com" ] }, "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "888888888888" }, "ArnLike": { "aws:SourceArn": "arn:aws:ses:us-east-1:888888888888:mailmanager-smtp-relay/*" } } } ] }

SMTP 中继的 KMS 客户自主管理型密钥(CMK)密钥策略

要允许 SES 使用您的密钥作为您的密钥,您的 KMS 密钥策略中必须包含以下声明。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:DescribeKey" ], "Principal": { "Service": "ses.amazonaws.com" }, "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "secretsmanager.us-east-1.amazonaws.com", "aws:SourceAccount": "000000000000" }, "ArnLike": { "aws:SourceArn": "arn:aws:ses:us-east-1:000000000000:mailmanager-smtp-relay/*" } } } ] }

电子邮件存档的权限策略

存档导出

IAM 身份调用者StartArchiveExport必须有权访问由以下 IAM 策略配置的目标 S3 存储桶:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::MyDestinationBucketName" }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectAcl", "s3:PutObjectTagging", "s3:GetObject" ], "Resource": "arn:aws:s3:::MyDestinationBucketName/*" } ] }

这是目标存储桶的 S3 存储桶策略:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ses.amazonaws.com" }, "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::MyDestinationBucketName" }, { "Effect": "Allow", "Principal": { "Service": "ses.amazonaws.com" }, "Action": [ "s3:PutObject", "s3:PutObjectAcl", "s3:PutObjectTagging", "s3:GetObject" ], "Resource": "arn:aws:s3:::MyDestinationBucketName/*" } ] }
注意

存档不支持混淆的副条件键(aws: SourceArn、aws: SourceAccount、aws: SourceOrg ID 或 aws:SourceOrgPaths)。这是因为 Mail Manager 的电子邮件存档在开始实际导出之前,会使用转发访问会话测试调用身份是否具有对导出目标存储桶的写入权限,从而防止出现混淆代理问题。

使用 KMS CMK 进行存档静态加密

IAM 身份调用CreateArchive者UpdateArchive必须能够通过以下策略访问 KMS 密钥 ARN:

JSON
{ "Version":"2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/MyKmsKeyArnID" } }

您的 KMS 密钥策略中需要以下声明:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/MyUserRoleOrGroupName" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "ses.us-east-1.amazonaws.com" ] } } }, { "Effect": "Allow", "Principal": { "Service": "ses.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" } ] }

执行规则操作的权限和信任策略

SES 规则执行角色是一个 AWS Identity and Access Management (IAM) 角色,它授予规则执行权限以访问 AWS 服务和资源。在规则集中创建规则之前,必须使用允许访问所需 AWS 资源的策略创建一个 IAM 角色。SES 在执行规则操作时会代入此角色。例如,您可以创建一个规则执行角色,该角色具有将电子邮件消息写入 S3 存储桶的权限,作为在规则条件满足时要采取的规则操作。

因此,除了本节中执行每个特定规则操作所需的单独权限策略之外,还需要以下信任策略。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ses.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "888888888888" }, "ArnLike": { "aws:SourceArn": "arn:aws:ses:us-east-1:888888888888:mailmanager-rule-set/*" } } } ] }

写入 S3 规则操作的权限策略

您的 IAM 角色需要以下策略才能使用 “写入 S3” 规则操作,该操作将收到的电子邮件发送到 S3 存储桶。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowPutObject", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::MyDestinationBucketName/*" ] }, { "Sid": "AllowListBucket", "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::MyDestinationBucketName" ] } ] }

如果您对启用了服务器端加密的 S3 存储桶使用 AWS KMS 客户托管密钥,则需要添加 IAM 角色策略操作。"kms:GenerateDataKey*"使用前面的示例,将此操作添加到您的角色策略中,如下所示:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowKMSKeyAccess", "Effect": "Allow", "Action": "kms:GenerateDataKey*", "Resource": "arn:aws:kms:us-east-1:888888888888:key/*", "Condition": { "ForAnyValue:StringEquals": { "kms:ResourceAliases": [ "alias/MyKeyAlias" ] } } } ] }

有关为 AWS KMS 密钥附加策略的更多信息,请参阅《AWS Key Management Service 开发人员指南》AWS KMS中的使用密钥策略。

传送到邮箱规则操作的权限策略

您的 IAM 角色需要遵循以下策略才能使用发送到邮箱规则操作,该操作将收到的电子邮件发送到 Amazon WorkMail 账户。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["workmail:DeliverToMailbox"], "Resource": "arn:aws:workmail:us-east-1:888888888888:organization/MyWorkMailOrganizationID>" } ] }

发送到互联网规则操作的权限策略

您的 IAM 角色需要以下策略才能使用 “发送到 Internet” 规则操作将收到的电子邮件发送到外部域。

注意

如果您的 SES 身份正在使用默认配置集,您还需要添加配置集资源,如下例所示。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["ses:SendEmail", "ses:SendRawEmail"], "Resource":[ "arn:aws:ses:us-east-1:888888888888:identity/example.com", "arn:aws:ses:us-east-1:888888888888:configuration-set/my-configuration-set" ] } ] }

传送到 Q Business 规则操作的权限策略

使用传送到 Q Business 规则操作(将接收到的电子邮件传送到 Amazon Q Business 索引)需要以下策略:

您的角色所需的 IAM 政策:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowAccessToQBusiness", "Effect": "Allow", "Action": [ "qbusiness:BatchPutDocument" ], "Resource": [ "arn:aws:qbusiness:us-east-1:888888888888:application/ApplicationID/index/IndexID" ] } ] }

您的 KMS 密钥策略中需要声明:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowAccessToKMSKeyForQbusiness", "Effect": "Allow", "Action": [ "kms:GenerateDataKey*", "kms:Encrypt", "kms:DescribeKey" ], "Resource": [ "arn:aws:kms:us-east-1:888888888888:key/*" ], "Condition": { "StringEquals": { "kms:ViaService": "qbusiness.us-east-1.amazonaws.com", "kms:CallerAccount": "888888888888" }, "ForAnyValue:StringEquals": { "kms:ResourceAliases": [ "alias/MyKeyAlias" ] } } } ] }

有关为 AWS KMS 密钥附加策略的更多信息,请参阅《AWS Key Management Service 开发人员指南》AWS KMS中的使用密钥策略。

发布到 SNS 规则操作的权限策略

使用发布到 SNS 规则操作(将接收到的电子邮件传送到 Amazon SNS 主题)需要以下策略。

您的角色所需的 IAM 政策:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowAccessToSNSTopic", "Effect": "Allow", "Action": [ "sns:Publish" ], "Resource": [ "arn:aws:sns:us-east-1:888888888888:MySnsTopic" ] } ] }

您的 KMS 密钥策略中需要声明:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowAccessToKMSKeyForSNS", "Effect": "Allow", "Action": [ "kms:GenerateDataKey*", "kms:Encrypt", "kms:DescribeKey" ], "Resource": [ "arn:aws:kms:us-east-1:888888888888:key/*" ], "Condition": { "StringEquals": { "kms:ViaService": "qbusiness.us-east-1.amazonaws.com", "kms:CallerAccount": "888888888888" }, "ForAnyValue:StringEquals": { "kms:ResourceAliases": [ "alias/MyKeyAlias" ] } } } ] }

有关为 AWS KMS 密钥附加策略的更多信息,请参阅《AWS Key Management Service 开发人员指南》AWS KMS中的使用密钥策略。

退回规则操作的权限策略

您的 IAM 角色需要遵循以下策略才能使用退回规则操作,该操作通过向发件人返回退回回复来退回电子邮件。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSendBounce", "Effect": "Allow", "Action": [ "ses:SendBounce" ], "Resource": [ "arn:aws:ses:us-east-1:123456789012:identity/*" ], "Condition": { "StringEquals": { "ses:FromAddress": "sender@example.com" } } } ] }

调用 Lambda 函数规则操作的权限策略

您的 IAM 角色必须遵循以下策略才能使用 Invok e Lambda 函数规则操作,该操作调用 AWS Lambda 函数来处理电子邮件。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowInvokeLambdaFunction", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:us-east-1:123456789012:function:MyFunction" ] } ] }