

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 設定 VPC 端點服務連線
<a name="vpc-connectivity"></a>

使用本節中的指引來建立和設定使用 [VPC 端點服務連線](choose-xks-connectivity.md#xks-vpc-connectivity)的外部金鑰存放區所需的 AWS 資源和相關元件。針對此連接選項列出的資源是[所有外部金鑰存放區所需資源](create-xks-keystore.md#xks-requirements)的補充。建立並設定所需資源後，您可以[建立外部金鑰存放區](create-xks-keystore.md)。

您可以在 Amazon VPC 中找到外部金鑰存放區代理，或在 外部找到代理 AWS ，並使用 VPC 端點服務進行通訊。

開始之前，[請確認您需要外部金鑰存放區](keystore-external.md#do-i-need-xks)。大多數客戶都可以使用金鑰材料支援的 KMS AWS KMS 金鑰。

**注意**  
VPC 端點服務連接所需的一些元素可能包含在外部金鑰管理器中。此外，您的軟體可能還有其他組態要求。在建立和設定本節中的 AWS 資源之前，請參閱您的代理和金鑰管理器文件。

**Topics**
+ [VPC 端點服務連接的要求](#xks-vpce-service-requirements)
+ [步驟 1：建立 Amazon VPC 和子網路](#xks-create-vpc)
+ [步驟 2：建立目標群組](#xks-target-group)
+ [步驟 3：建立網路負載平衡器](#xks-nlb)
+ [步驟 4：建立 VPC 端點服務](#xks-vpc-svc)
+ [步驟 5：驗證您的私有 DNS 名稱網域](#xks-private-dns)
+ [步驟 6：授權 AWS KMS 連線至 VPC 端點服務](#xks-vpc-authorize-kms)

## VPC 端點服務連接的要求
<a name="xks-vpce-service-requirements"></a>

如果您為外部金鑰存放區選擇 VPC 端點服務連接，則需要下列資源。
+ 連接到外部金鑰管理器的 Amazon VPC。其在兩個不同可用區域中必須擁有至少兩個私有[子網路](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html)。

  您可以將現有的 Amazon VPC 用於外部金鑰存放區，前提是其[符合與外部金鑰存放區搭配使用的要求](#xks-vpc-requirements)。多個外部金鑰存放區可以共用 Amazon VPC，但是每個外部金鑰存放區都必須擁有自己的 VPC 端點服務和私有 DNS 名稱。
+ [由 AWS PrivateLink提供支援的 Amazon VPC 端點服務](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-share-your-services.html)，具有[網路負載平衡器](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html)和[目標群組](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html)。

  端點服務無法要求接受。此外，您必須新增 AWS KMS 作為允許的主體。這可讓 AWS KMS 建立介面端點，以便與您的外部金鑰存放區代理通訊。
+ VPC 端點服務的私有 DNS 名稱在其 AWS 區域中是唯一的。

  私有 DNS 名稱必須是較高層級公有網域的子網域。例如，如果私有 DNS 名稱為 `myproxy-private.xks.example.com`，則其必須是公有網域的子網域，例如 `xks.example.com` 或 `example.com`。

  您必須[驗證私有 DNS 名稱的 DNS 網域的擁有權](#xks-private-dns)。
+ [支援的公有憑證授權機構](https://github.com/aws/aws-kms-xksproxy-api-spec/blob/main/TrustedCertificateAuthorities)為您的外部金鑰存放區代理核發的 TLS 憑證。

  TLS 憑證上的主體通用名稱 (CN) 必須與私有 DNS 名稱相符。例如，如果私有 DNS 名稱為 `myproxy-private.xks.example.com`，則 TLS 憑證上的 CN 必須為 `myproxy-private.xks.example.com` 或 `*.xks.example.com`。
+ 若要將網路延遲降至最低，請在最接近[外部金鑰管理器](keystore-external.md#concept-ekm)的[支援 AWS 區域](keystore-external.md#xks-regions) 中建立 AWS 元件。如果可能，請選擇網路封包來回時間 (RTT) 為 35 毫秒或更短的區域。

如需外部金鑰存放區的所有要求，請參閱[備妥先決條件](create-xks-keystore.md#xks-requirements)。

## 步驟 1：建立 Amazon VPC 和子網路
<a name="xks-create-vpc"></a>

VPC 端點服務連接需要一個 Amazon VPC，其使用至少兩個私有子網路連接到外部金鑰管理器。您可以建立 Amazon VPC，或使用符合外部金鑰存放區要求的現有 Amazon VPC。如需有關建立新 Amazon VPC 的說明，請參閱《Amazon 虛擬私有雲端使用者指南》**中的[建立 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#Create-VPC)。

### Amazon VPC 的要求
<a name="xks-vpc-requirements"></a>

Amazon VPC 端點服務必須具有下列屬性，才能使用外部金鑰存放區。
+ 必須位於[支援的區域中](keystore-external.md#xks-regions)，做為外部金鑰存放區。
+ 需要至少兩個私有子網路，每個處於不同的可用區域。
+ Amazon VPC 的私有 IP 地址範圍不得與託管[外部金鑰管理器](keystore-external.md#concept-ekm)之資料中心的私有 IP 地址範圍重疊。
+ 所有元件都必須使用 IPv4。

您有許多選項可將 Amazon VPC 連接到外部金鑰存放區代理。選擇可滿足您的效能和安全需求的選項。如需清單，請參閱[將您的 VPC 連接到其他網路](https://docs.aws.amazon.com/vpc/latest/userguide/extend-intro.html)和[網路到 Amazon VPC 連接選項](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/network-to-amazon-vpc-connectivity-options.html)。如需詳細資訊，請參閱 [Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) 和 [AWS Site-to-Site VPN 使用者指南](https://docs.aws.amazon.com/vpn/latest/s2svpn/)。

### 為您的外部金鑰存放區建立 Amazon VPC
<a name="xks-vpc-create"></a>

遵循以下指示建立外部金鑰存放區的 Amazon VPC。只有在選擇 [VPC 端點服務連接](choose-xks-connectivity.md)選項時，才需要 Amazon VPC。您可以使用符合外部金鑰存放區要求的現有 Amazon VPC。

遵循[建立 VPC、子網路和其他 VPC 資源](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#create-vpc-and-other-resources)主題中的指示，使用以下所需值。對於其他欄位，請接受預設值，並按要求提供名稱。


| 欄位 | Value | 
| --- | --- | 
| IPv4 CIDR 區塊 | 輸入 VPC 的 IP 地址。Amazon VPC 的私有 IP 地址範圍不得與託管[外部金鑰管理器](keystore-external.md#concept-ekm)之資料中心的私有 IP 地址範圍重疊。 | 
| 可用區域 (AZ) 的數量 | 2 或以上 | 
| 公有子網路數量 |  需要空值 (0)  | 
| 私有子網路數量 | 每個 AZ 一個 | 
| NAT 閘道 | 需要空值。 | 
| VPC 端點 | 需要空值。 | 
| Enable DNS hostnames (啟用 DNS 主機名稱) | 是 | 
| 啟用 DNS 解析 | 是 | 

請務必測試 VPC 通訊。例如，如果您的外部金鑰存放區代理不在 Amazon VPC 中，則請在 Amazon VPC 中建立 Amazon EC2 執行個體，確認 Amazon VPC 可以與您的外部金鑰存放區代理通訊。

### 將 VPC 連接到外部金鑰管理器
<a name="xks-vpc-to-ekm"></a>

使用 Amazon VPC 支援的任何[網路連接選項](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/network-to-amazon-vpc-connectivity-options.html)，將 VPC 連接到託管外部金鑰管理器的資料中心。確保 VPC 中的 Amazon EC2 執行個體 (或外部金鑰存放區代理 (如果位於 VPC 中) 可以與資料中心和外部金鑰管理器通訊。

## 步驟 2：建立目標群組
<a name="xks-target-group"></a>

建立必要的 VPC 端點服務之前，請先建立其必要元件、網路負載平衡器 (NLB) 和目標群組。網路負載平衡器 (NLB) 會在多個狀態良好的目標之間分佈請求，其中任何一個都可以為請求提供服務。在此步驟中，您會為外部金鑰存放區代理建立至少具有兩個主機的目標群組，並向目標群組註冊 IP 地址。

遵循[設定目標群組](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html#configure-target-group)主題中的指示，使用以下所需值。對於其他欄位，請接受預設值，並按要求提供名稱。


| 欄位 | Value | 
| --- | --- | 
| Target type (目標類型) | IP 位址 | 
| 通訊協定 | TCP | 
| 站點 |  443  | 
| IP 地址類型 | IPv4 | 
| VPC | 選擇您要在其中為外部金鑰存放區建立 VPC 端點服務的 VPC。 | 
| 運作狀態檢查通訊協定和路徑 | 您的運作狀態檢查通訊協定和路徑會因外部金鑰存放區代理組態而有所不同。請參閱外部金鑰管理器或外部金鑰存放區代理的文件。如需有關針對目標群組設定運作狀態檢查的一般資訊，請參閱《Network Load Balancer 之 Elastic Load Balancing 使用者指南》中的[目標群組運作狀態檢查](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/target-group-health-checks.html)。 | 
| 網路 | 其他私有 IP 地址 | 
| IPv4 地址 | 外部金鑰存放區代理的私有地址 | 
| 連接埠 | 443 | 

## 步驟 3：建立網路負載平衡器
<a name="xks-nlb"></a>

網路負載平衡器會將網路流量 (包括從 AWS KMS 到外部金鑰存放區代理的請求) 分佈至設定的目標。

遵循[設定負載平衡器和接聽程式](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html#configure-load-balancer)主題中的指示，設定和新增接聽程式，並使用下列必要值建立負載平衡器。對於其他欄位，請接受預設值，並按要求提供名稱。


| 欄位 | Value | 
| --- | --- | 
| Scheme | 內部 (Internal) | 
| IP 地址類型 | IPv4 | 
| 網路映射 |  選擇您要在其中為外部金鑰存放區建立 VPC 端點服務的 VPC。  | 
| 映射 | 選擇您為 VPC 子網路設定的兩個可用區域 (至少兩個)。驗證子網路名稱和私有 IP 地址。 | 
| 通訊協定 | TCP | 
| 站點 | 443 | 
| 預設動作：轉送至 | 選擇網路負載平衡器的[目標群組](#xks-target-group)。 | 

## 步驟 4：建立 VPC 端點服務
<a name="xks-vpc-svc"></a>

通常，您會建立服務的端點。不過，當您建立 VPC 端點服務時，您是提供者，並為您的服務 AWS KMS 建立端點。對於外部金鑰存放區，請使用您在上一個步驟中建立的網路負載平衡器建立 VPC 端點服務。VPC 端點服務可以 AWS 帳戶 與您的外部金鑰存放區或不同的 位於相同的 中 AWS 帳戶。

多個外部金鑰存放區可以共用 Amazon VPC，但是每個外部金鑰存放區都必須擁有自己的 VPC 端點服務和私有 DNS 名稱。

遵循[建立端點服務](https://docs.aws.amazon.com/vpc/latest/privatelink/create-endpoint-service.html#create-endpoint-service-nlb)主題中的指示，使用下列必要值建立 VPC 端點服務。對於其他欄位，請接受預設值，並按要求提供名稱。


| 欄位 | Value | 
| --- | --- | 
| 負載平衡器類型 | 網路 | 
| 可用的負載平衡器 | 選擇您在上一步驟中建立的[網路負載平衡器](#xks-nlb)。如果您的新負載平衡器未出現在清單中，請確認它處於作用中狀態。負載平衡器狀態可能需要幾分鐘才能從佈建變更為作用中。 | 
| 需要接受 | False。取消勾選核取方塊。*不需要接受*。若未手動接受， AWS KMS 則無法連線至 VPC 端點服務。如果需要接受，嘗試[建立外部金鑰存放區](create-xks-keystore.md)會失敗，並出現 `XksProxyInvalidConfigurationException` 例外狀況。 | 
| 啟用私有 DNS 名稱 | 將私有 DNS 名稱與服務建立關聯 | 
| 私有 DNS 名稱 | 輸入在其 AWS 區域中唯一的私有 DNS 名稱。私有 DNS 名稱必須是較高層級公有網域的子網域。例如，如果私有 DNS 名稱為 `myproxy-private.xks.example.com`，則其必須是公有網域的子網域，例如 `xks.example.com` 或 `example.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` 的連接錯誤代碼。如需詳細資訊，請參閱[一般組態錯誤](xks-troubleshooting.md#fix-xks-gen-configuration)。 | 
| 支援的 IP 地址類型 | IPv4 | 

## 步驟 5：驗證您的私有 DNS 名稱網域
<a name="xks-private-dns"></a>

建立 VPC 端點服務時，其網域驗證狀態為 `pendingVerification`。在使用 VPC 端點服務建立外部金鑰存放區之前，此狀態必須為 `verified`。若要確認您擁有與私有 DNS 名稱相關聯的網域，您必須在公有 DNS 伺服器中建立 TXT 記錄。

例如，如果 VPC 端點服務的私有 DNS 名稱為 `myproxy-private.xks.example.com`，您必須在公有網域中建立 TXT 記錄，例如 `xks.example.com`或 `example.com`，以 public. AWS PrivateLink looks 為準，先在 上，`xks.example.com`再於 上建立 TXT 記錄`example.com`。

**提示**  
新增 TXT 記錄之後，**Domain verification status** (網域驗證狀態) 值可能需要幾分鐘才能從 `pendingVerification` 變更為 `verify`。

若要開始，請使用下列其中一種方法查找網域的驗證狀態。有效值為 `verified`、`pendingVerification` 和 `failed`。
+ 在 [Amazon VPC 主控台](https://console.aws.amazon.com/vpc)中，選擇 **Endpoint services** (端點服務)，然後選擇您的端點服務。在詳細資訊窗格中，請查看 **Domain verification status** (網域驗證狀態)。
+ 使用 [DescribeVpcEndpointServiceConfigurations](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVpcEndpointServiceConfigurations.html) 操作。`State` 值位於 `ServiceConfigurations.PrivateDnsNameConfiguration.State` 欄位中。

如果驗證狀態不是 `verified`，請遵循[網域擁有權驗證](https://docs.aws.amazon.com/vpc/latest/privatelink/manage-dns-names.html#verify-domain-ownership)主題中的指示，將 TXT 記錄新增至網域的 DNS 伺服器，並確認 TXT 記錄已發佈。然後再次檢查您的驗證狀態。

您不需要為私有 DNS 網域名稱建立 A 記錄。當 為您的 VPC 端點服務 AWS KMS 建立界面端點時， AWS PrivateLink 會自動建立託管區域，其中包含 AWS KMS VPC 中私有網域名稱所需的 A 記錄。對於具有 VPC 端點服務連接的外部金鑰存放區，當您[將外部金鑰存放區連接至](xks-connect-disconnect.md)其外部金鑰存放區代理時，會發生這種情況。

## 步驟 6：授權 AWS KMS 連線至 VPC 端點服務
<a name="xks-vpc-authorize-kms"></a>

請參閱下列管理 Amazon VPC 端點服務許可的程序。每個步驟取決於外部金鑰存放區、VPC 端點服務和 之間的連線和組態 AWS 帳戶。

------
#### [ Same AWS 帳戶 ]

當您的 VPC 端點服務擁有 AWS 帳戶 與外部金鑰存放區相同的 時，您必須將 AWS KMS 新增至 VPC 端點服務的**允許委託人**清單。這可讓 AWS KMS 建立 VPC 端點服務的介面端點。如果 AWS KMS 不是允許的委託人，則嘗試建立外部金鑰存放區將會失敗，但有`XksProxyVpcEndpointServiceNotFoundException`例外。

遵循《AWS PrivateLink 指南》**中的[管理許可](https://docs.aws.amazon.com/vpc/latest/privatelink/configure-endpoint-service.html#add-remove-permissions)主題。使用以下所需值。


| 欄位 | Value | 
| --- | --- | 
| AWS KMS ARN | cks.kms.<region>.amazonaws.com例如 `cks.kms.us-east-1.amazonaws.com` | 

------
#### [ Cross AWS 帳戶 ]

當您的 VPC 端點服務由其他人擁有時 AWS 帳戶 ，您必須同時將 AWS KMS 和您的帳戶新增至**允許委託人**清單。這可讓 AWS KMS 和您的外部金鑰存放區建立 VPC 端點服務的介面端點。如果 AWS KMS 不是允許的主體，嘗試建立外部金鑰存放區將會失敗，並出現 `XksProxyVpcEndpointServiceNotFoundException` 例外狀況。您需要提供外部金鑰存放區所在的 AWS 帳戶 ARN。

遵循《AWS PrivateLink 指南》**中的[管理許可](https://docs.aws.amazon.com/vpc/latest/privatelink/configure-endpoint-service.html#add-remove-permissions)主題。使用以下所需值。


| 欄位 | Value | 
| --- | --- | 
| AWS KMS ARN | cks.kms.<region>.amazonaws.com例如 `cks.kms.us-east-1.amazonaws.com` | 
| AWS 帳戶 ARN | arn:aws:iam::111122223333:role/role\$1name例如 `arn:aws:iam::123456789012:role/cks_role` | 

------

**下一頁:** [建立外部金鑰存放區](create-xks-keystore.md)