

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

# 入口端点
<a name="eb-ingress"></a>

入口端点是 Mail Manager 中的关键基础设施组件，它利用您配置的策略和规则来接收、路由和管理您的电子邮件，以确定哪些电子邮件应被拒绝，哪些应被允许，以及应该对哪些电子邮件采取相应操作。

每个入口端点都有自身的流量策略来确定要阻止或允许的电子邮件，并拥有规则集来对您允许的电子邮件执行操作；因此，通过创建多个入口端点，您可以指派每个入口端点来管理和路由特定类型的电子邮件。这种精细度级别有助于您构建针对您的业务需求量身定制的电子邮件管理系统。

**创建入口端点的必备工作流程**  
在创建入口端点时，必须为其分配*已创建*的流量策略和规则集。因此，创建入口端点的工作流程应遵循以下顺序：

1. 首先，创建流量策略以确定要阻止或允许的电子邮件。有关更多信息，请参阅 [在 SES 控制台中创建流量策略和策略声明](eb-filters.md#eb-filters-create-console)。

1. 接下来，创建一个规则集以对允许传入的电子邮件执行操作。有关更多信息，请参阅 [在 SES 控制台中创建规则集和规则](eb-rules.md#eb-rules-create-console)。

1. 最后，创建您的入口端点，并将您刚刚创建的流量策略和规则集或您之前创建的任何其他流量策略和规则集分配给它。

创建入口端点后，您必须根据用于接收邮件的环境对其进行配置，无论是本地 SMTP 客户端的配置还是基于 Web 的 DNS 域主机的配置。下面的[通过公共端点接收电子邮件](#eb-ingress-a-record)部分将对此进行讨论。

## 配置您的环境以使用入口端点
<a name="eb-ingress-config-endpoints"></a>

SES 支持公共端点和 Amazon 虚拟私有云（VPC）端点作为入口端点来接收传入电子邮件。以下部分说明如何配置您的入口端点以使用这些选项中的任何一种。

**Topics**
+ [公共端点配置](#eb-ingress-a-record)
+ [VPC 端点配置](#eb-ingress-vpc-endpoint)

### 通过公共端点接收电子邮件
<a name="eb-ingress-a-record"></a>

**使用“A”记录**  
在您创建入口端点时，将生成该端点的“A”记录，其值将显示在 SES 控制台的入口端点摘要屏幕上。您使用此记录值的方式具体取决于您创建的端点类型和您的应用场景：
+ **开放端点**：发送到您域的邮件将直接解析到您的入口端点，无需进行身份验证。
  + 将“A”记录的值直接复制并粘贴到本地 SMTP 客户端的 SMTP 配置中，或 DNS 配置中域的 MX 记录中。
  + 支持的端口：25
  + 支持 STARTTLS：是
+ **已验证的端点**：发送到您的域的邮件必须来自您与之共享 SMTP 凭证的授权发件人，例如您的本地电子邮件服务器。
  + 将“A”记录的值以及您的用户名和密码，直接复制并粘贴到本地 SMTP 客户端的 SMTP 配置中。
  + 支持的端口：25、587（[RFC](https://www.ietf.org/rfc/rfc2476.txt) 2476）
  + 支持 STARTTLS：是
+ **mTLS 终端节点** — 发送到您的域的邮件必须来自提供由入口端点信任存储库中的一个证书颁发机构 (CAs) 签署的 TLS 客户端证书的客户端。请参阅[入口端点的双向 TLS (mTLS) 身份验证](#eb-ingress-mtls)。
  + 将 “A” 记录的值直接复制并粘贴到本地 SMTP 客户端的 SMTP 配置中。
  + 支持的端口：25
  + 支持 STARTTLS：是

如果您在配置中使用 MX 记录，请注意，虽然每个 DNS 提供商的配置记录的程序和界面不同，但您需要在 DNS 设置中输入的关键信息如以下示例所示：

所有发送到 *recipient@marketing.example.com* 的电子邮件都将发送到您的入口端点，因为您在域的 DNS 设置中，将入口端点的“A”记录作为 MX 记录的值进行了输入：
+ **域**：`marketing.example.com`
+ **MX 记录值**：`890123abcdef.ghijk.mail-manager-smtp.amazonaws.com`*（这是从您的入口端点复制的“A”记录值。）*
+ **优先级**：`10`

**连接到已验证的端点**  
对于为了连接到已验证的端点而与之共享 SMTP 凭证的授权发件人，*用户名*和*密码*必须遵循以下协议，才能成功建立与服务器的连接：
+ **用户名**：这是入口端点 ID，必须使用 Base64 进行编码。*（请参阅[步骤 11。](#find-ingress-id) 在控制台程序中学习如何查找入口端点 ID。*）
+ **密码**：这是创建入口端点时使用的密码，必须使用 Base64 进行编码。

以下示例显示了典型的 SMTP AUTH 服务器和客户端在建立连接时的交互过程：

```
S: 250 AUTH LOGIN PLAIN
C: AUTH LOGIN
S: 334 VXNlcm5hbWU6
C: SW5ncmVzc1BvaW50
S: 334 UGFzc3dvcmQ6
C: SW5ncmVzc1Bhc3N3b3Jk
S: 235 Authentication successful
```

此示例包含以下属性：
+ `S` 表示“服务器”– 接受消息的 SMTP 服务器。
+ `C` 表示“客户端”- 与服务器建立连接并向服务器发送消息的 SMTP 客户端。
+ `250 AUTH LOGIN PLAIN` 是服务器对支持的 AUTH 方法（`AUTH LOGIN` 或 `AUTH PLAIN`）的响应，发件人可以选择其中任何一种方法，然后发送符合 SMTP 身份验证服务扩展规范 [RFC 2554](https://www.ietf.org/rfc/rfc2554.txt) 的 SMTP 命令。本例中使用 `AUTH LOGIN`。
+ `334 VXNlcm5hbWU6`：服务器以 Base64 编码提示输入用户名。
+ `SW5ncmVzc1BvaW50`：客户端以 Base64 编码响应入口端点 ID。
+ `334 UGFzc3dvcmQ6`：服务器以 Base64 编码提示输入密码。
+ `SW5ncmVzc1Bhc3N3b3Jk`：客户端以 Base64 编码响应入口端点密码。

### 通过 Amazon VPC 端点接收电子邮件
<a name="eb-ingress-vpc-endpoint"></a>

除了公共入口端点，您还可以将 VPC 端点与 SES 入口端点一起使用，以便在您的私有网络基础设施内安全、私有地摄取电子邮件。

**与使用公共入口端点相比的配置差异**  

+ 不提供通常可用于公共端点的“A”记录。
+ 您必须使用 VPC 端点提供的 DNS 名称连接到入口端点。
+ 所有连接都在您的 VPC 内使用私有网络。

**通过 VPC 端点支持的入口端点类型**  
SES 通过 VPC 端点支持两种类型的入口点：
+ **开放入口端点**：发送到您域的电子邮件直接通过 VPC 端点路由，无需发送者身份验证。

  配置要求：
  + 通过将其与您拥有的 VPC 端点 ID 关联来创建私有开放入口端点。
  + 支持的端口：25、587
  + 支持 STARTTLS：是
+ **经过身份验证的入口端点**：发送到您域的邮件必须来自您已共享 SMTP 凭证的授权发送者，例如您的本地电子邮件服务器。

  配置要求：
  + 通过将其与您拥有的 VPC 端点 ID 关联来创建私有经过身份验证的入口端点。
  + 支持的端口：25、587 
  + 支持 STARTTLS：是
  + 身份验证使用与公共经过身份验证的端点相同的 base64 编码用户名和密码机制。

**VPC 端点要求**  
要将 VPC 端点与 SES 入口端点一起使用，必须满足以下要求：
+ VPC 端点必须处于活动状态且可用。
+ VPC 终端节点必须与入口终端节点归同一个 AWS 账户所有（不支持跨账户访问）。
+ VPC 端点必须根据入口端点类型为相应的服务名称创建：
  + **开放入口端点**：`com.amazonaws.region.mail-manager-smtp.open`
  + **经过身份验证的入口端点**：`com.amazonaws.region.mail-manager-smtp.auth`
  + **FIPS 开放入口端点**：`com.amazonaws.region.mail-manager-smtp.open.fips`
  + **FIPS 经过身份验证的入口端点**：`com.amazonaws.region.mail-manager-smtp.auth.fips`

**重要配置说明**  

+ **One-to-one 关系** — 每个 VPC 终端节点只能与一个入口终端节点关联。您不能将同一个 VPC 端点用于多个入口端点。
+ **没有 VPC 终端节点策略** — 与其他 AWS 服务不同，与入口终端节点一起使用的 VPC 终端节点不支持 VPC 终端节点策略。SES 会自动验证 VPC 终端节点所有者和入口终端节点所有者是否为同一个 AWS 账户。
+ **仅私有 DNS**：VPC 端点提供的所有 DNS 名称将是仅在您的 VPC 内可访问的私有 DNS 名称。
+ **创建时验证**：SES 在资源创建期间执行验证，以确保 VPC 端点满足所有要求。
+ **TLS 策略必须与 VPC 终端节点服务匹配** — 创建私有入口终端节点时，TLS 策略值必须与 VPC 终端节点服务类型相匹配。采用 `FIPS` TLS 策略的入口终端节点必须使用 FIPS VPC 终端节点服务，具有`REQUIRED`或 `OPTIONAL` TLS 策略的入口终端节点必须使用非 FIPS VPC 终端节点服务。它们不能混在一起。

**通过 VPC 端点连接到您的入口端点**  
配置 VPC 端点和入口端点后：

1. 检索为 VPC 端点生成的 DNS 名称。

1. 配置您的 SMTP 客户端或电子邮件服务器以使用这些 DNS 名称进行连接。

1. 如果使用经过身份验证的端点，请使用与您的经过身份验证的入口端点一起使用的适当的 base64 编码凭证配置您的 SMTP 客户端。

## 入口端点的 TLS 策略
<a name="eb-ingress-tls-policy"></a>

入口端点的 TLS 策略控制连接的 SMTP 客户端在向终端节点发送电子邮件时是否需要使用 TLS 加密。您可以在使用 `CreateIngressPoint` API 创建入口端点时指定 TLS 策略，稍后再使用 `UpdateIngressPoint` API 进行更改。默认 TLS 策略取决于您所在的地区：`FIPS`是美国和加拿大地区的默认策略，在所有其他地区`REQUIRED`是默认策略。

所有入口端点连接都通过 STARTTLS 命令使用机会性 TLS。连接以纯文本形式开始，如果连接的客户端支持，则会升级到 TLS。不支持开始加密连接的隐式 TLS（TLS 封装器）。

以下 TLS 策略值可用：
+ **FIPS** — 要求使用经过 FIPS 验证的加密模块进行 TLS 加密。这是美国和加拿大地区的默认设置，并且仅在这些地区可用。
+ **必需** — 连接 SMTP 客户端必须使用 TLS 加密。不使用 TLS 的连接将被拒绝。这是美国和加拿大以外地区的默认设置。
+ **可选**-支持 TLS 加密，但不是必需的。连接 SMTP 客户端可以发送带有 TLS 或不使用 TLS 的电子邮件。

**按入口端点类型划分的可用性**  
并非所有 TLS 策略值对入口端点类型和网络配置的每种组合都有效：
+ **FIPS** — 可用于公共网络上的所有入口端点类型（开放、经过身份验证和 mTLS），也可用于私有网络上的开放和经过身份验证的入口端点，但仅限于美国和加拿大地区。一旦设置，`FIPS`就无法通过更新将其更改为其他值。如果您需要不同的 TLS 策略，则必须创建一个新的入口端点。
+ **必需** — 可用于所有区域的所有入口端点类型。但是，对于公共网络上经过身份验证的入口端点和 mTLS 入口端点，`REQUIRED`只能在创建时进行设置，无法通过更新进行更改。对于私有网络上的开放入口端点（公共或私有）和经过身份验证的入口端点，`REQUIRED`可以在创建时进行设置并通过更新进行更改。请注意，`REQUIRED`这不适用于美国和加拿大地区公共网络上经过身份验证的入口终端节点或 mTLS 入口终端节点，改`FIPS`为使用这些终端节点。
+ **可选 — 可**与公用网络和私有网络上的开放入口端点一起使用，也可用于私有网络上经过身份验证的入口端点。 `OPTIONAL`不适用于 mTLS 入口端点，也不适用于公共网络上经过身份验证的入口端点。

**更改 TLS 策略的规则**  
在现有入口端点上更新 TLS 策略时，以下规则适用：
+ `FIPS`创建后无法更改。
+ 对于私有网络上的开放入口端点和经过身份验证的入口端点，您可以在和之间`REQUIRED`切换。`OPTIONAL`
+ 对于公共网络上的 mTLS 入口端点和经过身份验证的入口端点，TLS 策略在创建后无法更改。

## 入口端点的双向 TLS (mTLS) 身份验证
<a name="eb-ingress-mtls"></a>

双向 TLS (mTLS) 身份验证要求连接 SMTP 客户端在入口端点的信任存储区中出示由其中一个证书颁发机构 (CAs) 签署的 TLS 客户端证书。只有拥有可信证书的客户端才能向您的终端节点发送电子邮件。

**重要**  
mTLS 身份验证仅适用于公共入口端点。亚马逊 VPC 终端节点不支持 mTLS 身份验证。

要创建 mTLS 入口端点，请选择`MTLS`作为入口端点类型，并在 API 的`IngressPointConfiguration`参数`TrustStore`中提供`TlsAuthConfiguration`包含 a。`CreateIngressPoint`

**信任存储配置**  
信任存储库定义您的入口端点接受哪些客户端证书。它包含以下字段：
+ **CAContent**（必填）— PEM 格式的证书颁发机构 (CA) 证书包。此捆绑包包含用于验证客户端证书的 CA 证书。您可以在单个捆绑包中包含多个 CA 证书，最大为 500 KB。
+ **CrlContent**（可选）— PEM 格式的证书吊销列表 (CRL)。如果提供，CRL 上显示的客户端证书将被拒绝，即使它们是由受信任的 CA 签名的。最大 500 KB。
+ **KmsKeyArn**（可选）— 用于加密信任存储数据的 AWS KMS 客户托管密钥 (CMK) 的 ARN。如果未指定，则使用 AWS 托管密钥。使用 CMK 时，密钥策略必须允许 SES 使用密钥。请参阅[适用于 mTLS 信任存储库的 KMS 客户托管密钥 (CMK) 密钥策略](eb-policies.md#eb-policies-ingress-mtls-cmk)。

过期的证书被视为无效，并且在连接中不被接受。SES 还会从您的信任存储中筛选出过期的 CA 证书和过期的证书吊销列表 (CRLs)。如果 CRL 过期，则与该 CRL 关联的 CA 证书也将从信任库中删除，这意味着在您提供更新的 CRL 之前，由该 CA 签名的客户端将无法再进行连接。

**在规则条件中使用客户证书属性**  
当客户端使用有效证书连接到 mTLS 入口端点时，证书属性（例如公用名、序列号和主题备用名称字段）可用作字符串表达式在规则条件中。这允许您根据连接客户端的身份对电子邮件进行路由、筛选或操作。有关可用属性的完整列表，请参阅[规则条件](eb-rules.md#rule-conditions)参考。

## 在 SES 控制台中创建入口端点
<a name="eb-ingress-create-console"></a>

以下过程演示了如何使用 SES 控制台中的**入口端点**页面，创建入口端点以及管理已创建的入口端点。

**使用控制台创建和管理入口端点**

1. 登录 AWS 管理控制台 并打开 Amazon SES 控制台，网址为[https://console.aws.amazon.com/ses/](https://console.aws.amazon.com/ses/)。

1. 在左侧导航面板中，选择 **Mail Manager** 下的**入口端点**。

1. 在**入口端点**页面上，选择**创建入口端点**。

1. 在**创建新入口端点**页面上，为您的入口端点输入一个唯一的名称。

1. 选择它是**开放**端点、**已认证**端点还是 **mTLS** 端点。
   + 如果您选择**已验证**，请选择 **SMTP 密码**并输入密码（与授权发件人共享），或者选择**密钥**，然后从**密钥 ARN** 中选择一个密钥。*如果您选择之前创建的密钥，则该密钥必须包含以下创建新密钥步骤中指示的策略。*
   + 如果您选择 **mTLS**，则必须提供包含您的 CA 证书包的信任存储配置。或者，您还可以提供证书吊销列表和 AWS KMS 密钥。请参阅[入口端点的双向 TLS (mTLS) 身份验证](#eb-ingress-mtls)。
   + 你可以通过选择 Create new 来**创建新**密钥—— AWS Secrets Manager 控制台将打开，你可以继续创建新密钥：

   1. 在**密钥类型**中，选择**其他密钥类型**。

   1. 在**密钥/值对**中，输入 `password` 作为密钥，并输入实际密码作为值。
**注意**  
对于**密钥**，您只需输入 `password`（其他任何内容都会导致身份验证失败）。

   1. 选择**添加新密钥**以在**加密**密钥中创建 KMS 客户托管密钥 (CMK) — AWS KMS 控制台将打开。

   1. 在**客户自主管理型密钥**页面上，选择**创建密钥**。

   1. 保留**配置密钥**页面上的默认值，然后选择**下一步**。

   1. 在**别名**中输入密钥的名称（您可以选择添加描述和标签），然后单击**下一步**。

   1. 在**密钥管理员**中，选择您想要允许管理密钥的任何用户（您自己除外）或角色，然后选择**下一步**。

   1. 在**密钥用户**中，选择想要允许使用密钥的任何用户（您自己除外）或角色，然后选择**下一步**。

   1. 将 [KMS CMK 策略](eb-policies.md#eb-policies-ingress-cmk) 复制并粘贴到 `"statement"` 级别的**密钥策略** JSON 文本编辑器中，将其作为额外声明添加进去，并用逗号进行分隔。将区域和账户替换为您自己的信息。

   1. 选择**结束**。

   1. 选择浏览器选项卡，在其中打开 “ AWS Secrets Manager **存储新密钥**” 页面，然后选择 “**加密密钥**” 字段旁边的*刷新图标*（圆形箭头），然后在该字段内单击并选择您新创建的密钥。

   1. 在**配置密钥**页面上的**密钥名称**字段中输入名称。

   1. 在**资源权限**中，选择**编辑权限**。

   1. 将 [密钥资源策略](eb-policies.md#eb-policies-ingress-secrets) 复制并粘贴到**资源权限** JSON 文本编辑器中，然后将区域和账户替换为您自己的信息。（请务必删除编辑器中的所有示例代码。） 

   1. 选择**保存**，然后选择**下一步**。

   1. （可选）配置轮换，然后选择**下一步**。

   1. 查看您的新密钥并选择**存储**。

   1. 选择浏览器中已打开 SES **创建新入口端点**页面的选项卡，然后选择**刷新列表**，接着在**密钥 ARN** 中选择新建的密钥。

1. 选择一个规则集，其中包含您要对允许传入的电子邮件执行的规则操作。

1. 选择流量策略以确定要阻止或允许的电子邮件。

1. 选择它将是**公共**还是**私有**网络。
   + 对于公共网络，请选择 “**IPv4**仅限” 或 **Dualstack**（IPv4 和 IPv6）寻址。
   + 对于私有网络，选择或输入您已与同一账户中的授权发送者（例如 IAM 用户或角色）共享的 VPC 端点。您可以通过选择**创建 VPC 端点**来打开 Amazon VPC 控制台以创建新的 VPC 端点。

1. 为您的入口端点选择 TLS 策略。默认值取决于您所在的地区，有关可用值和限制[TLS 策略](#eb-ingress-tls-policy)的详细信息，请参阅。

1. 选择 **Create ingress endpoint**（创建入口端点）。

1. 在**常规详细信息**中，将在创建入口端点时显示 “配置”，请刷新页面，直到显示 “Active” 并且该**ARecord**字段包含一个值。复制“A”记录值并将其粘贴到您的 DNS 配置或 SMTP 客户端中，如[公共端点配置](#eb-ingress-a-record)中所述。

1. 在控制台的**一般详细信息**容器正上方，有一个以“inp”为前缀的未标记的大数字（在页面顶部的面包屑导航中也同样存在），例如 **inp-1abc2de3fghi4jkl5mnop6qr**。这称为*入口端点 ID*，其值用作登录入口服务器的*用户名*。（您需要与授权发件人共享此信息才能连接到您的端点。）

1. 您可以从**入口端点**页面查看和管理已经创建的入口端点。如果要删除某个入口端点，请选择其单选按钮，然后选择**删除**。

1. 要编辑某个入口端点，请选择其名称以打开相应的摘要页面：
   + 您可以更改终端节点的活动状态或 TLS 策略（对于支持的配置），方法是选择 **“**常规详细信息**” 中的 “编辑”**，然后选择 “**保存更改**”。
   + 您可以通过在**规则集**或**流量策略**中选择**编辑**，然后选择**保存更改**来选择不同的规则集或流量策略。