

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

# Amazon SES 中的 Identity and Access Management
<a name="control-user-access"></a>

您可以将 AWS Identity and Access Management (IAM) 与亚马逊简单电子邮件服务 (Amazon SES) 配合使用，以指定用户、群组或角色可以执行的 SES API 操作。（在本主题中，我们将这些实体统称为*用户*。） 您还可以控制用户可对电子邮件的“发件人”、收件人和“退回路径”地址使用的电子邮件地址。

例如，您可以创建一个 IAM 策略，允许组织中的用户发送电子邮件，但是不允许其执行管理操作（例如检查发送统计数据）。又例如，您可以编写一个策略，允许用户通过 SES 从您的账户发送电子邮件，但只在他们使用特定的“发件人”地址时才能这样做。

要使用 IAM，您可以定义一个 IAM 策略（一个用于显式定义权限的文档），然后将该策略附加到用户。要了解如何创建 IAM 策略，请参阅 [IAM 用户指南](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies_overview.html)。除了应用您在策略中设定的限制之外，用户与 SES 交互的方式或 SES 执行请求的方式没有变化。

**注意**  
如果您的账户在 SES 沙盒中，其限制可能会阻止实施其中一些策略：请参阅[请求生产环境访问权限](request-production-access.md)。
您还可以使用发送授权策略控制对 SES 的访问。不过，IAM 策略限制各个用户可执行的操作，发送授权策略限制可以使用各个经验证的身份的方式。此外，只有发送授权策略可以授予跨账户访问权限。有关发送授权的更多信息，请参阅[使用 Amazon SES 的发送授权](sending-authorization.md)。

如果您正在查找有关如何为现有用户生成 SES SMTP 凭证的信息，请参阅[获取 Amazon SES SMTP 凭证](smtp-credentials.md)。

## 创建用于访问 SES 的 IAM 策略
<a name="iam-and-ses"></a>

本节介绍如何将 IAM 策略专门用于 SES。要了解创建 IAM 策略的常规方式，请参阅 [IAM 用户指南](https://docs.aws.amazon.com/IAM/latest/UserGuide/AccessPolicyLanguage_ElementDescriptions.html)。

有三个理由可能让您将 IAM 与 SES 结合使用：
+ 限制电子邮件发送操作。
+ 限制用户发送的电子邮件的“发件人”、收件人和“退回路径”地址。
+ 控制 API 使用的一般方面，例如允许用户调用他们有权使用的时间段。 APIs 

### 限制操作
<a name="iam-and-ses-restrict-action"></a>

要控制用户可执行的 SES 操作，您可以使用 IAM 策略的 `Action` 元素。您可以通过使用小写字符串 `Action` 作为 API 名称的前缀来将 `ses:` 元素设置为任何 SES API 操作。例如，您可以将 `Action` 设置为 `ses:SendEmail`、`ses:GetSendStatistics` 或（`ses:*` 适用于所有操作）。

然后，根据 `Action` 来指定 `Resource` 元素，如下所示：

**如果该`Action`元素仅允许访问电子邮件发送 APIs （即`ses:SendEmail`和/或`ses:SendRawEmail`）：**
+ 要允许用户使用您的任何身份发送 AWS 账户，请`Resource`将其设置为\$1
+ 要限制允许用户发送的身份，请`Resource`将其设置为允许用户使用的身份。 ARNs 

**如果该`Action`元素允许所有人访问 APIs：**
+ 如果您不希望限制用户发送邮件所用的身份，请将 `Resource` 设置为 \$1
+ 如果您希望限制用户发送邮件时可用的身份，则需要创建两个策略（或位于一个策略中的两个语句）：
  + 其中一个`Action`设置为允许的明确列表 non-email-sending APIs ，`Resource`设置为\$1
  + 一个`Action`设置为发送电子邮件的其中一个 APIs（和 `ses:SendEmail` /或`ses:SendRawEmail`），并`Resource`设置为你允许用户使用的身份的 ARN。

有关可用的 SES 操作的列表，请参阅 [Amazon Simple Email Service API 参考](https://docs.aws.amazon.com/ses/latest/APIReference/)。如果该用户将使用 SMTP 接口，您必须至少允许对 `ses:SendRawEmail` 的访问。

### 限制电子邮件地址
<a name="iam-and-ses-restrict-addresses"></a>

如果您要将用户限制到特定电子邮件地址，则可以使用一个 `Condition` 数据块。在 `Condition` 数据块中，您将使用条件键来指定条件，如 [IAM 用户指南](https://docs.aws.amazon.com/IAM/latest/UserGuide/AccessPolicyLanguage_ElementDescriptions.html#Condition)中所述。通过使用条件键，您可以控制以下电子邮件地址：

**注意**  
这些电子邮件地址条件键仅适用于下表中 APIs 注明的。


****  

| 条件键 | 说明 | API | 
| --- | --- | --- | 
| `ses:Recipients` | 限制收件人地址，这包括“收件人”、“抄送”和“密件抄送”地址。 | `SendEmail`, `SendRawEmail` | 
| `ses:FromAddress` | 限制“发件人”地址。 | `SendEmail`, `SendRawEmail`, `SendBounce` | 
| `ses:FromDisplayName` | 限制用作显示名称的“发件人”地址。 | `SendEmail`, `SendRawEmail` | 
| `ses:FeedbackAddress` | 限制“退回路径”地址，这是供退回邮件和投诉通过电子邮件反馈转发发送给您的地址。有关电子邮件反馈转发的信息，请参阅[通过电子邮件接收 Amazon SES 通知](monitor-sending-activity-using-notifications-email.md)。 | `SendEmail`, `SendRawEmail` | 
| `ses:MultiRegionEndpointId` | 允许您控制在发送电子邮件时使用哪个端点 ID | `SendEmail`, `SendBulkEmail` | 

### 通过 SES API 版本进行限制
<a name="iam-and-ses-restrict-api-version"></a>

通过在条件中使用 `ses:ApiVersion` 键，您可以根据 SES API 的版本限制对 SES 的访问。

**注意**  
SES SMTP 接口使用 SES API 版本 2 的 `ses:SendRawEmail`。

### 限制常规 API 使用
<a name="iam-and-ses-restrict-API-usage"></a>

通过在条件中使用 AWS-wide 密钥，您可以根据允许用户访问的日期和时间等方面限制对 SES 的访问 APIs。SES 仅实现以下 AWS范围的策略密钥：
+ `aws:CurrentTime`
+ `aws:EpochTime`
+ `aws:SecureTransport`
+ `aws:SourceIp`
+ `aws:SourceVpc`
+ `aws:SourceVpce`
+ `aws:UserAgent`
+ `aws:VpcSourceIp`

有关这些键的更多信息，请参阅 [IAM 用户指南](https://docs.aws.amazon.com/IAM/latest/UserGuide/AccessPolicyLanguage_ElementDescriptions.html#Condition)。

## SES 的 IAM 策略示例
<a name="iam-and-ses-examples"></a>

本主题提供允许用户仅在特定条件下访问 SES 的策略的示例。

**Topics**
+ [允许对所有 SES 操作的完全访问](#iam-and-ses-examples-full-access)
+ [允许仅访问 SES API 版本 2](#iam-and-ses-examples-access-specific-ses-api-version)
+ [仅允许对电子邮件发送操作的访问](#iam-and-ses-examples-email-sending-actions)
+ [限制发送的时间段](#iam-and-ses-examples-time-period)
+ [限制收件人地址](#iam-and-ses-examples-recipients)
+ [限制“发件人”地址](#iam-and-ses-examples-from-address)
+ [限制电子邮件发件人的显示名称](#iam-and-ses-examples-display-name)
+ [限制退回邮件和投诉反馈的目标](#iam-and-ses-examples-feedback)

### 允许对所有 SES 操作的完全访问
<a name="iam-and-ses-examples-full-access"></a>

以下策略允许用户调用任何 SES 操作。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":[
    {
      "Effect":"Allow",
      "Action":[
        "ses:*"
      ],
      "Resource":"*"
    }
  ]
}
```

------

### 允许仅访问 SES API 版本 2
<a name="iam-and-ses-examples-access-specific-ses-api-version"></a>

以下策略允许用户只调用 API 版本 2 的 SES 操作。

------
#### [ JSON ]

****  

```
{
  		                 "Version":"2012-10-17",		 	 	 
  		                 "Statement":[
  		                     {
  		                         "Effect":"Allow",
  		                         "Action":[
  		                         "ses:*"
  		                         ],
  		                         "Resource":"*",
  		                         "Condition": {
  		                             "StringEquals" : {
  		                             "ses:ApiVersion" : "2"
  		                             }
  		                         }
  		                     }
  		                 ]
  		             }
```

------

### 仅允许对电子邮件发送操作的访问
<a name="iam-and-ses-examples-email-sending-actions"></a>

以下策略允许用户使用 SES 发送电子邮件，但不允许用户执行管理操作（如访问 SES 发送统计数据）。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":[
    {
      "Effect":"Allow",
      "Action":[
        "ses:SendEmail",
        "ses:SendRawEmail"
      ],
      "Resource":"*"
    }
  ]
}
```

------

### 限制发送的时间段
<a name="iam-and-ses-examples-time-period"></a>

以下政策 APIs 仅允许用户在 2018 年 9 月致电 SES 发送电子邮件。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":[
    {
      "Effect":"Allow",
      "Action":[
        "ses:SendEmail",
        "ses:SendRawEmail"
      ],
      "Resource":"*",
      "Condition":{
        "DateGreaterThan":{
          "aws:CurrentTime":"2018-08-31T12:00Z"
        },
        "DateLessThan":{
          "aws:CurrentTime":"2018-10-01T12:00Z"
        }
      }
    }
  ]
}
```

------

### 限制收件人地址
<a name="iam-and-ses-examples-recipients"></a>

*以下策略允许用户致电 SES 发送电子邮件 APIs，但仅限于域名 e *xample.com* 中的收件人地址（`StringLike`区分大小写）。*

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":[
    {
      "Effect":"Allow",
      "Action":[
        "ses:SendEmail",
        "ses:SendRawEmail"
      ],
      "Resource":"*",
      "Condition":{
        "ForAllValues:StringLike":{
          "ses:Recipients":[
            "*@example.com"
          ]
        }
      }
    }
  ]
}
```

------

### 限制“发件人”地址
<a name="iam-and-ses-examples-from-address"></a>

*以下政策允许用户致电 SES 发送电子邮件 APIs，但前提是 “发件人” 地址为 marketing@example.com。*

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":[
    {
      "Effect":"Allow",
      "Action":[
        "ses:SendEmail",
        "ses:SendRawEmail"
      ],
      "Resource":"*",
      "Condition":{
        "StringEquals":{
          "ses:FromAddress":"marketing@example.com"
        }
      }
    }
  ]
}
```

------

以下政策允许用户调用 [SendBounce](https://docs.aws.amazon.com/ses/latest/APIReference/API_SendBounce.html)API，但前提是 “发件人” 地址为 *bounce@example.com*。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":[
    {
      "Effect":"Allow",
      "Action":[
        "ses:SendBounce"
      ],
      "Resource":"*",
      "Condition":{
        "StringEquals":{
          "ses:FromAddress":"bounce@example.com"
        }
      }
    }
  ]
}
```

------

### 限制电子邮件发件人的显示名称
<a name="iam-and-ses-examples-display-name"></a>

以下政策允许用户致电 SES 发送电子邮件 APIs，但前提`StringLike`*是 “发件人” 地址的显示名称包括*市场营销*（区分大小写*）。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":[
    {
      "Effect":"Allow",
      "Action":[
        "ses:SendEmail",
        "ses:SendRawEmail"
      ],
      "Resource":"*",
      "Condition":{
        "StringLike":{
          "ses:FromDisplayName":"Marketing"
        }
      }
    }
  ]
}
```

------

### 限制退回邮件和投诉反馈的目标
<a name="iam-and-ses-examples-feedback"></a>

*以下政策允许用户致电 SES 发送电子邮件 APIs，但前提是电子邮件的 “返回路径” 设置为 feedback@example.com。*

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":[
    {
      "Effect":"Allow",
      "Action":[
        "ses:SendEmail",
        "ses:SendRawEmail"
      ],
      "Resource":"*",
      "Condition":{
        "StringEquals":{
          "ses:FeedbackAddress":"feedback@example.com"
        }
      }
    }
  ]
}
```

------

# AWS Amazon 简单电子邮件服务的托管策略
<a name="security-iam-awsmanpol"></a>

要向用户、群组和角色添加权限，使用 AWS 托管策略比自己编写策略要容易得多。创建仅为团队提供所需权限的 [IAM 客户管理型策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)需要时间和专业知识。要快速入门，您可以使用我们的 AWS 托管策略。这些政策涵盖常见用例，可在您的 AWS 账户中使用。有关 AWS 托管策略的更多信息，请参阅 *IAM 用户指南*中的[AWS 托管策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)。

AWS 服务维护和更新 AWS 托管策略。您无法更改 AWS 托管策略中的权限。服务偶尔会向 AWS 托管策略添加其他权限以支持新功能。此类更新会影响附加策略的所有身份（用户、组和角色）。当推出新功能或有新操作可用时，服务最有可能更新 AWS 托管策略。服务不会从 AWS 托管策略中移除权限，因此策略更新不会破坏您的现有权限。

此外，还 AWS 支持跨多个服务的工作职能的托管策略。例如，**ReadOnlyAccess** AWS 托管策略提供对所有 AWS 服务和资源的只读访问权限。当服务启动新功能时， AWS 会为新操作和资源添加只读权限。有关工作职能策略的列表和说明，请参阅 *IAM 用户指南*中的[适用于工作职能的AWS 托管式策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)。

## AWS 托管策略：Amazon A SESFull ccess
<a name="security-iam-awsmanpol-AmazonSESFullAccess"></a>

您可以将 `AmazonSESFullAccess` 策略附加到 IAM 身份。提供对 Amazon SES 的完全访问权限。

要查看此策略的权限，请参阅《*AWS 托管策略参考》中的 [Amazon A SESFull cces](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSESFullAccess.html) s*。

## AWS 托管策略：Amazon SESRead OnlyAccess
<a name="security-iam-awsmanpol-AmazonSESReadOnlyAccess"></a>

您可以将 `AmazonSESReadOnlyAccess` 策略附加到 IAM 身份。提供对 Amazon SES 的只读访问权限。

要查看此策略的权限，请参阅《*AWS 托管策略参考*》SESReadOnlyAccess中的 [Amazon](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSESReadOnlyAccess.html)。

## AWS 托管策略：Amazon SESService RolePolicy
<a name="security-iam-awsmanpol-AmazonSESServiceRolePolicy"></a>

无法将 `AmazonSESServiceRolePolicy` 策略附加到 IAM 实体。此附加到服务相关角色的策略允许 Amazon SES 代表您执行操作。有关更多信息，请参阅 [Amazon SES 的服务相关角色权限](using-service-linked-roles.md#service-linked-role-permissions)。

要查看此策略的权限，请参阅《*AWS 托管策略参考*》SESServiceRolePolicy中的 [Amazon](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSESServiceRolePolicy.html)。

## Amazon 简单电子邮件服务更新了 AWS 托管政策
<a name="security-iam-awsmanpol-updates"></a>

查看 Amazon Simple Email Service AWS 托管政策自该服务开始跟踪这些变更以来的详情和更新。


| 更改 | 描述 | 日期 | 
| --- | --- | --- | 
| Amazon Simple Email Service 添加了新的托管式策略 | Amazon Simple Email Service 向服务相关角色 AWSServiceRoleForAmazonSES 添加了 AmazonSESServiceRolePolicy，使 SES 可以代表您执行操作 | 2024 年 5 月 13 日 | 
| Amazon Simple Email Service 更新了一个策略定义 | Amazon Simple Email Service 将此表（下行）中的前一个条目澄清为：亚马逊简单电子邮件服务已ses:BatchGetMetricData添加到亚马逊SESReadOnlyAccess托管政策中——这将允许访问 SES API BatchGetMetricData | 2024 年 4 月 30 日 | 
| Amazon Simple Email Service 更新了一个策略定义 | 亚马逊简单电子邮件服务已ses:BatchGet\$1添加到亚马逊SESReadOnlyAccess托管策略中——这将允许访问 SES API BatchGetMetricData | 2024 年 2 月 16 日 | 
| Amazon Simple Email Service 更改了两个策略定义 | Amazon Simple Email Service 从 Amazon A SESFull ccess 和 Amazon SESRead OnlyAccess 定义末尾删除了 “通过 AWS 管理控制台” | 2023 年 5 月 3 日 | 
| Amazon Simple Email Service 已开始跟踪更改 | Amazon Simple Email Service 开始跟踪其 AWS 托管政策的更改 | 2023 年 4 月 5 日 | 

# 对 Amazon SES 使用服务相关角色
<a name="using-service-linked-roles"></a>

亚马逊简单电子邮件服务 (SES) Simple Servic AWS Identity and Access Management e 使用 (IAM[) 服务相关](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)角色。服务相关角色是一种独特类型的 IAM 角色，它与 Amazon SES 直接相关。服务相关角色由 SES 预定义，包括该服务代表您调用其他 AWS 服务所需的所有权限。

服务相关角色可让您更轻松地设置 SES，因为您不必手动添加必要的权限。SES 定义其服务相关角色的权限，除非另外定义，否则只有 SES 可以代入该角色。定义的权限包括信任策略和权限策略，以及不能附加到任何其他 IAM 实体的权限策略。

只有在首先删除相关资源后，您才能删除服务关联角色。这可以保护您的 SES 资源，因为您不会无意中删除对资源的访问权限。

有关支持服务相关角色的其他服务的信息，请参阅与 [IAM 配合使用的AWS 服务，](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)并在**服务相关角色**列中查找标有 “**是**” 的服务。选择**是**和链接，查看该服务的服务关联角色文档。

## Amazon SES 的服务相关角色权限
<a name="service-linked-role-permissions"></a>

SES 使用名为 **AWSServiceRoleForAmazonSES** 的服务相关角色 — 允许 SES 代表您的 SES 资源发布 Amazon CloudWatch 基本监控指标。

S AWSService RoleForAmazon ES 服务相关角色信任以下服务来代入该角色：
+  `ses.amazonaws.com` 

名为 Amazon 的角色权限[策略SESServiceRolePolicy 是一种AWS 托管策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)，允许 SES 对指定资源完成以下操作：
+ 操作：`AWS/SES` CloudWatch 命名空间中的 `cloudwatch:PutMetricData`。此操作授予 SES 将指标数据放入 CloudWatch `AWS/SES`命名空间的权限。有关中可用的 SES 指标的更多信息 CloudWatch，请参阅[Amazon SES 中的日志记录和监控](security-monitoring-overview.md)。
+ 操作：`AWS/SES/MailManager` CloudWatch 命名空间中的 `cloudwatch:PutMetricData`。此操作授予 SES 将指标数据放入 CloudWatch`AWS/SES/MailManager`命名空间的权限。有关中可用的 SES 指标的更多信息 CloudWatch，请参阅[Amazon SES 中的日志记录和监控](security-monitoring-overview.md)。
+ 操作：`AWS/SES/Addons` CloudWatch 命名空间中的 `cloudwatch:PutMetricData`。此操作授予 SES 将指标数据放入 CloudWatch `AWS/SES/Addons`命名空间的权限。有关中可用的 SES 指标的更多信息 CloudWatch，请参阅[Amazon SES 中的日志记录和监控](security-monitoring-overview.md)。

您必须配置使用户、组或角色能够创建、编辑或删除服务相关角色的权限。有关更多信息，请参阅*《IAM 用户指南》*中的[服务相关角色权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)。

## 为 Amazon SES 创建服务相关角色
<a name="create-service-linked-role"></a>

您无需手动创建服务关联角色。当您在 AWS 管理控制台、或 AWS API 中创建 SES 资源时，SES 会为您创建服务相关角色。 AWS CLI

如果您删除该服务关联角色，然后需要再次创建，您可以使用相同流程在账户中重新创建此角色。当您创建 SES 资源时，SES 会再次为您创建服务相关角色。

## 为 Amazon SES 编辑服务相关角色
<a name="edit-service-linked-role"></a>

SES 不允许您编辑 AWSService RoleForAmazon SES 服务相关角色。创建服务关联角色后，您将无法更改角色的名称，因为可能有多种实体引用该角色。但是可以使用 IAM 编辑角色描述。

## 删除 SES 的服务相关角色
<a name="delete-service-linked-role"></a>

如果不再需要使用某个需要服务关联角色的功能或服务，我们建议您删除该角色。这样就没有未被主动监控或维护的未使用实体。但是，您必须先清除您的服务相关角色，然后才能手动删除它。

### 清除服务相关角色
<a name="service-linked-role-review-before-delete"></a>

必须先删除所有 SES 资源，然后才能使用 IAM 删除服务相关角色。

**注意**  
如果在您尝试删除资源时 SES 服务正在使用该角色，则删除操作可能会失败。如果发生这种情况，请等待几分钟后重试。

### 手动删除 服务相关角色
<a name="slr-manual-delete"></a>

使用 IAM 控制台 AWS CLI、或 AWS API 删除 AWSService RoleForAmazon SES 服务相关角色。有关更多信息，请参阅《IAM 用户指南》**中的[删除服务关联角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)。

## Amazon SES 服务相关角色支持的区域
<a name="slr-regions"></a>

SES 并非在提供该服务的每个区域中都支持使用服务相关角色。您可以在以下区域使用 AWSService RoleForAmazon SES 角色。


****  

|  区域名称 | 区域标识 | SES 支持 | 
| --- | --- | --- | 
| 美国东部（弗吉尼亚州北部） | us-east-1 | 是 | 
| 美国东部（俄亥俄州） | us-east-2 | 是 | 
| 亚太地区（悉尼） | ap-southeast-2 | 是 | 
| 亚太地区（东京） | ap-northeast-1 | 是 | 
| 欧洲地区（法兰克福） | eu-central-1 | 是 | 
| 欧洲地区（爱尔兰） | eu-west-1 | 是 | 