Amazon SES 中的身份策略示例 - Amazon Simple Email Service

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

Amazon SES 中的身份策略示例

您可以使用身份授权指定允许或拒绝对身份执行 API 操作的精细条件。

以下示例介绍如何编写策略来控制不同方面的 API 操作:

指定主体

主体(即要授予权限的实体)可以是 AWS 账户、AWS Identity and Access Management(IAM)用户或属于同一账户的 AWS 服务。

下面的示例介绍一个简单策略,它允许 AWS ID 123456789012 控制已验证的身份 example.com(也归 AWS 账户 123456789012 所有)。

{ "Id":"SampleAuthorizationPolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"AuthorizeMarketer", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:123456789012:identity/example.com", "Principal":{ "AWS":[ "123456789012" ] }, "Action":[ "ses:DeleteEmailIdentity", "ses:PutEmailIdentityDkimSigningAttributes" ] } ] }

以下示例策略向两个用户授予控制已验证的身份 example.com 的权限。用户通过其 Amazon 资源名称(ARN)指定。

{ "Id":"ExampleAuthorizationPolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"AuthorizeIAMUser", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:123456789012:identity/example.com", "Principal":{ "AWS":[ "arn:aws:iam::123456789012:user/John", "arn:aws:iam::123456789012:user/Jane" ] }, "Action":[ "ses:DeleteEmailIdentity", "ses:PutEmailIdentityDkimSigningAttributes" ] } ] }

限制操作

根据您要授权的控制级别,可以在身份授权策略中指定多种操作:

"BatchGetMetricData", "ListRecommendations", "CreateDeliverabilityTestReport", "CreateEmailIdentityPolicy", "DeleteEmailIdentity", "DeleteEmailIdentityPolicy", "GetDomainStatisticsReport", "GetEmailIdentity", "GetEmailIdentityPolicies", "PutEmailIdentityConfigurationSetAttributes", "PutEmailIdentityDkimAttributes", "PutEmailIdentityDkimSigningAttributes", "PutEmailIdentityFeedbackAttributes", "PutEmailIdentityMailFromAttributes", "TagResource", "UntagResource", "UpdateEmailIdentityPolicy"

身份授权策略还使您能够将主体限制为只能执行其中一项操作。

{ "Id":"ExamplePolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"ControlAction", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:123456789012:identity/example.com", "Principal":{ "AWS":[ "123456789012" ] }, "Action":[ "ses:PutEmailIdentityMailFromAttributes ] } ] }

使用多个语句

身份授权策略可以包含多个语句。以下示例策略包含两个语句。第一个语句拒绝两个用户在同一个账户 123456789012 内通过 sender@example.com 访问 getemailidentity。第二个语句拒绝主体 Jack 在同一个账户 123456789012 内访问 UpdateEmailIdentityPolicy

{ "Version":"2012-10-17", "Statement":[ { "Sid":"DenyGet", "Effect":"Deny", "Resource":"arn:aws:ses:us-east-1:123456789012:identity/sender@example.com", "Principal":{ "AWS":[ "arn:aws:iam::123456789012:user/John", "arn:aws:iam::123456789012:user/Jane" ] }, "Action":[ "ses:GetEmailIdentity" ] }, { "Sid":"DenyUpdate", "Effect":"Deny", "Resource":"arn:aws:ses:us-east-1:123456789012:identity/sender@example.com", "Principal":{ "AWS":"arn:aws:iam::123456789012:user/Jack" }, "Action":[ "ses:UpdateEmailIdentityPolicy" ] } ] }