本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
配置 VPC 端点服务连接
请遵循本节中提供的指导创建和配置使用 VPC 端点服务连接的外部密钥存储所需的 AWS 资源和相关组件。此连接选项列出的资源是对所有外部密钥存储所需资源的补充。创建和配置所需资源后,您可以创建外部密钥存储。
您可以在 Amazon VPC 中找到外部密钥存储代理,也可以在 AWS 外部找到代理,并使用 VPC 端点服务进行通信。
在开始之前,请确认您需要外部密钥存储。大多数客户可以使用由 AWS KMS 密钥材料支持的 KMS 密钥。
注意
VPC 端点服务连接所需的某些元素可能包含在您的外部密钥管理器中。此外,您的软件可能有其他配置要求。在创建和配置本节中的 AWS 资源之前,请参阅您的代理和密钥管理器文档。
主题
VPC 端点服务连接的要求
如果您为外部密钥存储选择 VPC 端点服务连接,则需要以下资源。
为了最大限度地减少网络延迟,请在离外部密钥管理器最近的受支持的 AWS 区域 中创建 AWS 组件。如果可行,请选择网络往返时间(RTT)不超过 35 毫秒的区域。
-
连接到外部密钥管理器的 Amazon VPC。它必须在两个不同的可用区中至少拥有两个私有子网。
您可以将现有 Amazon VPC 用于外部密钥存储,前提是此 VPC 符合与外部密钥存储一起使用的要求。多个外部密钥存储可以共享一个 Amazon VPC,但每个外部密钥存储必须有自己的 VPC 端点服务和私有 DNS 名称。
-
由 AWS PrivateLink 提供支持的 Amazon VPC 端点服务具有网络负载均衡器和目标组。
端点服务不能要求接受。此外,您必须将 AWS KMS 添加为允许的主体。这允许 AWS KMS 创建接口端点,以便其可以与您的外部密钥存储代理进行通信。
-
VPC 端点服务在其 AWS 区域 中的唯一私有 DNS 名称。
私有 DNS 名称必须是更高级别的公有域的子域。例如,如果私有 DNS 名称为
myproxy-private.xks.example.com
,则其必须是公有域(例如xks.example.com
或example.com
)的子域。您必须针对私有 DNS 名称的 DNS 域验证所有权。
-
由受支持的公有证书颁发机构
为您的外部密钥存储代理颁发的 TLS 证书。 TLS 证书上的主题通用名称(CN)必须与私有 DNS 名称相匹配。例如,若私有 DNS 名称为
myproxy-private.xks.example.com
,则 TLS 证书上的 CN 必须为myproxy-private.xks.example.com
或*.xks.example.com
。
有关外部密钥存储的所有要求,请参阅 Assemble the prerequisites(汇编先决条件)。
步骤 1:创建 Amazon VPC 和子网
VPC 端点服务连接需要连接到外部密钥管理器的 Amazon VPC,该管理器至少拥有两个私有子网。您可以创建 Amazon VPC 或使用满足外部密钥存储要求的现有 Amazon VPC。有关创建新 VPC 的帮助,请参阅《Amazon Virtual Private Cloud 用户指南》中的创建 VPC。
Amazon VPC 的要求
若要使用 VPC 端点服务连接外部密钥存储,Amazon VPC 必须具有以下属性:
您可以通过多种方式将 Amazon VPC 连接到外部密钥存储代理。选择能满足性能和安全需求的选项。有关列表,请参阅将 VPC 连接到其他网络和 Network-to-Amazon VPC connectivity options(网络到 Amazon VPC 连接选项)。有关详细信息,请参阅 AWS Direct Connect 和《AWS Site-to-Site VPN 用户指南》https://docs.aws.amazon.com/vpn/latest/s2svpn/。
为外部密钥存储创建 Amazon VPC
使用下面的说明为外部密钥存储创建 Amazon VPC。仅当您选择 VPC 端点服务连接选项时,才需要 Amazon VPC。您可以使用满足外部密钥存储要求的现有 Amazon VPC。
按照创建 VPC、子网和其他 VPC 资源主题中的说明使用以下必需值。对于其他字段,请接受默认值并按要求提供名称。
Field | Value |
---|---|
IPv4 CIDR 块 | 输入 VPC 的 IP 地址。Amazon VPC 的私有 IP 地址范围不得与托管外部密钥管理器的数据中心的私有 IP 地址范围重叠。 |
可用区(AZ)的数量 | 2 或更多 |
公有子网的数量 |
不需要任何内容(0) |
私有子网的数量 | 每个 AZ 一个 |
NAT 网关 | 不需要任何内容。 |
VPC 端点 | 不需要任何内容。 |
启用 DNS 主机名 | 是 |
启用 DNS 解析 | 是 |
请务必测试您的 VPC 通信。例如,如果您的外部密钥存储代理不在 Amazon VPC 中,请在 Amazon VPC 中创建 Amazon EC2 实例,验证 Amazon VPC 是否可以与外部密钥存储代理通信。
将 VPC 连接到外部密钥管理器
使用 Amazon VPC 支持的任何网络连接选项将 VPC 连接到托管外部密钥管理器的数据中心。确保 VPC(或外部密钥存储代理,如果在 VPC 中)中的 Amazon EC2 实例可以与数据中心和外部密钥管理器通信。
步骤 2:创建目标组
在创建所需的 VPC 端点服务之前,创建其必需的组件、网络负载均衡器(NLB)和目标组。网络负载均衡器(NLB)在多个运行状况良好的目标之间分配请求,其中任何一个目标都可以为请求提供服务。在此步骤中,您将为外部密钥存储代理创建至少具有两台主机的目标组,并将您的 IP 地址注册到目标组。
使用以下必填值,按照配置目标组主题中的说明使用以下必需值。对于其他字段,请接受默认值并按要求提供名称。
Field | Value |
---|---|
Target type | IP 地址 |
协议 | TCP |
端口 |
443 |
IP 地址类型 | IPv4 |
VPC | 选择 VPC,您将在其中为外部密钥存储创建 VPC 端点服务。 |
运行状况检查协议和路径 | 运行状况检查协议和路径将与外部密钥存储代理配置不同。请参阅外部密钥管理器或外部密钥存储代理的文档。 若要为您的目标组配置运行状况检查,请参阅《网络负载均衡器的弹性负载均衡用户指南》中的目标组的运行状况检查。 |
网络 | 其他私有 IP 地址 |
IPv4 地址 | 外部密钥存储代理的私有地址 |
端口 | 443 |
步骤 3:创建网络负载均衡器
网络负载均衡器将网络流量(包括从 AWS KMS 到外部密钥存储代理的请求)分配到配置的目标。
按照配置负载均衡器和侦听器主题中的说明配置和添加侦听器,并使用以下必需值创建负载均衡器。对于其他字段,请接受默认值并按要求提供名称。
Field | Value |
---|---|
Scheme | Internal |
IP 地址类型 | IPv4 |
网络映射 |
选择 VPC,您将在其中为外部密钥存储创建 VPC 端点服务。 |
Mapping | 选择您为 VPC 子网配置的两个可用区(至少两个)。验证子网名称和私有 IP 地址。 |
协议 | TCP |
端口 | 443 |
默认操作:转发至 | 选择网络负载均衡器的目标组。 |
步骤 4:创建 VPC 端点服务
通常,您创建到服务的端点。但是,创建 VPC 端点服务时,您就是提供商,AWS KMS 会创建指向您服务的端点。对于外部密钥存储,使用您在上一个步骤中创建的网络负载均衡器创建 VPC 端点服务。该 VPC 端点服务必须与外部密钥存储位于相同的 AWS 账户 和受支持的区域中。
多个外部密钥存储可以共享一个 Amazon VPC,但每个外部密钥存储必须有自己的 VPC 端点服务和私有 DNS 名称。
按照创建端点服务主题中的说明创建具有以下必需值的 VPC 端点服务。对于其他字段,请接受默认值并按要求提供名称。
Field | Value |
---|---|
负载均衡器类型 | 网络 |
可用的负载均衡器 | 选择您在之前的步骤中创建的网络负载均衡器。 如果新的负载均衡器未出现在列表中,请验证其状态是否为活动。负载均衡器状态可能需要几分钟才能从预置中变为活动。 |
需要接受 | False。取消选中复选框。 不需要接受。未经手动接受,AWS KMS 无法连接到 VPC 端点服务。如果需要接受,则创建外部密钥存储的尝试会失败,并出现 |
启用私有 DNS 名称 | 将私有 DNS 名称与服务关联 |
私有 DNS 名称 | 输入在其 AWS 区域 中唯一的私有 DNS 名称。 私有 DNS 名称必须是更高级别的公有域的子域。例如,如果私有 DNS 名称为 此私有 DNS 名称必须与在外部密钥存储代理上配置的 TLS 证书中的主题公用名(CN)相匹配。例如,若私有 DNS 名称为 如果证书和私有 DNS 名称不匹配,则将外部密钥存储连接到其外部密钥存储代理的尝试会失败,连接错误代码为 |
支持的 IP 地址类型 | IPv4 |
步骤 5:验证私有 DNS 名称域
创建 VPC 端点服务时,其域验证状态为 pendingVerification
。使用 VPC 端点服务创建外部密钥存储之前,此状态必须为 verified
。若要验证您是否拥有与私有 DNS 名称关联的域,您必须在公有 DNS 服务器中创建 TXT 记录。
例如,如果 VPC 端点服务的私有 DNS 名称为 myproxy-private.xks.example.com
,则必须在公有域中创建 TXT 记录,例如 xks.example.com
或 example.com
,以公有域为准。AWS PrivateLink 先在 xks.example.com
上查找 TXT 记录,然后再在 example.com
上查找。
提示
添加 TXT 记录后,Domain verification status(域验证状态)值可能需要几分钟才能从 pendingVerification
变为 verify
。
首先,使用以下任一方法找到域的验证状态。有效值包括 verified
、pendingVerification
和 failed
。
-
在 Amazon VPC 控制台
中,选择 Endpoint services(端点服务),然后选择您的端点服务。在详细信息窗格中,查看 Domain verification status(域验证状态)。 -
使用 DescribeVpcEndpointServiceConfigurations 操作。
State
值在ServiceConfigurations.PrivateDnsNameConfiguration.State
字段中。
如果验证状态不是 verified
,请按照 Domain ownership verification(域所有权验证)主题中的说明将 TXT 记录添加到域的 DNS 服务器并验证 TXT 记录是否已发布。然后再次检查您的验证状态。
您无需为私有 DNS 域名创建 A 记录。当 AWS KMS 创建指向 VPC 端点服务的接口端点时,AWS PrivateLink 会自动创建托管区,其中包含 AWS KMS VPC 中私有域名所需的 A 记录。对于具有 VPC 端点服务连接的外部密钥存储,将外部密钥存储连接到其外部密钥存储代理时,就会发生这种情况。
步骤 6:授权 AWS KMS 连接到 VPC 端点服务
您必须将 AWS KMS 添加到 VPC 端点服务的 Allow principals(允许主体)列表中。这允许 AWS KMS 创建指向 VPC 端点服务的接口端点。如果 AWS KMS 不是允许的主体,则创建外部密钥存储的尝试将失败,并出现 XksProxyVpcEndpointServiceNotFoundException
异常。
按照《AWS PrivateLink 指南》中管理权限主题中的说明进行操作。使用以下必需值。
Field | Value |
---|---|
ARN | cks.kms. 例如, |
下一步:创建外部密钥存储