配置 VPC 端点服务连接 - AWS Key Management Service

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

配置 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.comexample.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 必须具有以下属性:

  • 必须与您的外部密钥存储位于相同 AWS 账户 和受支持的区域中。

  • 需要至少两个私有子网,每个子网均位于不同的可用区内。

  • Amazon VPC 的私有 IP 地址范围不得与托管外部密钥管理器的数据中心的私有 IP 地址范围重叠。

  • 所有组件都必须使用 IPv4。

您可以通过多种方式将 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 端点服务。如果需要接受,则创建外部密钥存储的尝试会失败,并出现 XksProxyInvalidConfigurationException 异常。

启用私有 DNS 名称 将私有 DNS 名称与服务关联
私有 DNS 名称 输入在其 AWS 区域 中唯一的私有 DNS 名称。

私有 DNS 名称必须是更高级别的公有域的子域。例如,如果私有 DNS 名称为 myproxy-private.xks.example.com,则其必须是公有域(例如 xks.example.comexample.com)的子域。

此私有 DNS 名称必须与在外部密钥存储代理上配置的 TLS 证书中的主题公用名(CN)相匹配。例如,若私有 DNS 名称为 myproxy-private.xks.example.com,则 TLS 证书上的 CN 必须为 myproxy-private.xks.example.com*.xks.example.com

如果证书和私有 DNS 名称不匹配,则将外部密钥存储连接到其外部密钥存储代理的尝试会失败,连接错误代码为 XKS_PROXY_INVALID_TLS_CONFIGURATION。有关详细信息,请参阅常规配置错误

支持的 IP 地址类型 IPv4

步骤 5:验证私有 DNS 名称域

创建 VPC 端点服务时,其域验证状态为 pendingVerification。使用 VPC 端点服务创建外部密钥存储之前,此状态必须为 verified。若要验证您是否拥有与私有 DNS 名称关联的域,您必须在公有 DNS 服务器中创建 TXT 记录。

例如,如果 VPC 端点服务的私有 DNS 名称为 myproxy-private.xks.example.com,则必须在公有域中创建 TXT 记录,例如 xks.example.comexample.com,以公有域为准。AWS PrivateLink 先在 xks.example.com 上查找 TXT 记录,然后再在 example.com 上查找。

提示

添加 TXT 记录后,Domain verification status(域验证状态)值可能需要几分钟才能从 pendingVerification 变为 verify

首先,使用以下任一方法找到域的验证状态。有效值包括 verifiedpendingVerificationfailed

  • 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.<region>.amazonaws.com

例如,cks.kms.us-east-1.amazonaws.com

下一步创建外部密钥存储