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 密钥资源权限策略。

{ "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)密钥策略

要使 SES 能够在使用您的密钥资源时使用您的密钥,需要使用以下 KMS 客户自主管理型密钥(CMK)密钥策略。

{ "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/*" } } }

SMTP 中继的权限策略

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

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

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

{ "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 客户自主管理型密钥(CMK)密钥策略。

{ "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必须有权访问由以下策略配置的目标 S3 存储桶:

{ "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/*" } ] }

这是针对目标存储桶的策略。

{ "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 身份调用CreateArchiveUpdateArchive必须能够通过以下策略访问 KMS 密钥 ARN:

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

这是电子邮件存档所需的 KMS 密钥策略。

{ "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 存储桶的权限,作为在规则条件满足时要采取的规则操作。

因此,除了本节中执行写入 S3传送到邮箱发送到互联网规则操作所需的各个权限策略外,还需要以下信任策略。

{ "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 规则操作的权限策略

要使用写入 S3 规则操作,将收到的电子邮件传送到 S3 存储桶,需要以下策略。

{ "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*"使用前面的示例,将此操作添加到您的角色策略中,如下所示:

{ "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中的使用密钥策略

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

使用将收到的电子邮件发送到亚马逊 WorkMail账户的 “投递到邮箱” 规则操作需要以下策略。

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

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

要使用发送到互联网规则操作,将收到的电子邮件发送到外部域,需要以下策略。

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

Deliver to Q Business 规则操作的权限策略

使用 “Deliver to Q Business” 规则操作需要以下策略,该操作将收到的电子邮件发送到 Amazon Q Business 索引。

Amazon Q Business 政策:

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

Amazon Q Business 的 KMS 政策:

{ "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中的使用密钥策略