

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

# 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`将其设置为\*
+ 要限制允许用户发送的身份，请`Resource`将其设置为允许用户使用的身份。 ARNs 

**如果该`Action`元素允许所有人访问 APIs：**
+ 如果您不希望限制用户发送邮件所用的身份，请将 `Resource` 设置为 \*
+ 如果您希望限制用户发送邮件时可用的身份，则需要创建两个策略（或位于一个策略中的两个语句）：
  + 其中一个`Action`设置为允许的明确列表 non-email-sending APIs ，`Resource`设置为\*
  + 一个`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"
        }
      }
    }
  ]
}
```

------