

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

# 編輯外部金鑰存放區屬性
<a name="update-xks-keystore"></a>

您可以編輯現有外部金鑰存放區的所選屬性。

您可以在連接或中斷連接外部金鑰存放區時編輯某些屬性。對於其他屬性，您必須先[中斷外部金鑰存放區](xks-connect-disconnect.md)與其外部金鑰存放區代理的連接。外部金鑰存放區的[連接狀態](xks-connect-disconnect.md#xks-connection-state)必須是 `DISCONNECTED`。當外部金鑰存放區中斷連接時，您可以管理金鑰存放區和其 KMS 金鑰，但無法在外部金鑰存放區中建立或使用 KMS 金鑰。若要尋找外部金鑰存放區的[連接狀態](xks-connect-disconnect.md#xks-connection-state)，請使用 [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 操作，或參閱外部金鑰存放區詳細資訊頁面上的 **General configuration** (一般組態) 區段。

更新外部金鑰存放區屬性之前， AWS KMS 會使用新值將 [GetHealthStatus](keystore-external.md#concept-proxy-apis) 請求傳送至外部金鑰存放區代理。如果請求成功，表示您可以使用更新後的屬性值連接至外部金鑰存放區代理並進行身分驗證。如果請求失敗，編輯操作將失敗，並顯示識別錯誤的例外狀況。

編輯操作完成時，外部金鑰存放區的更新屬性值會顯示在 AWS KMS 主控台和`DescribeCustomKeyStores`回應中。但是，變更需要 5 分鐘才能完全生效。

如果您在 AWS KMS 主控台中編輯外部金鑰存放區，您可以選擇上傳 JSON 型[代理組態檔案](create-xks-keystore.md#proxy-configuration-file)，以指定[代理 URI 路徑](create-xks-keystore.md#require-path)和[代理身分驗證憑證](keystore-external.md#concept-xks-credential)。某些外部金鑰存放區代理會為您產生此檔案。如需詳細資訊，請參閱外部金鑰存放區代理或外部金鑰管理器的文件。

**警告**  
更新的屬性值必須將外部金鑰存放區連接至與先前值相同的外部金鑰管理器的代理，或使用相同密碼編譯金鑰之外部金鑰管理器的備份或快照。如果您的外部金鑰存放區永久無法存取與其 KMS 金鑰相關聯的外部金鑰，則使用這些外部金鑰加密的密文將無法復原。特別是，變更外部金鑰存放區的代理連線可能會 AWS KMS 阻止 存取您的外部金鑰。

**提示**  
有些外部金鑰管理器會提供更簡單的方法來編輯外部金鑰存放區屬性。如需詳細資訊，請參閱外部金鑰管理器文件。

您可以變更外部金鑰存放區的下列屬性。


| 可編輯的外部金鑰存放區屬性 | 任何連接狀態 | 需要已中斷連接狀態 | 
| --- | --- | --- | 
| 自訂金鑰存放區名稱 自訂金鑰存放區的必要易記名稱。 請勿在此欄位包含機密或敏感資訊。此欄位可能在 CloudTrail 日誌與其他輸出中以純文字顯示。  | ![](http://docs.aws.amazon.com/zh_tw/kms/latest/developerguide/images/icon-successful.png) |  | 
| [代理身分驗證憑證](keystore-external.md#concept-xks-credential) (XksProxyAuthenticationCredential)(您必須同時指定存取金鑰 ID 和私密存取金鑰，即使您只變更一個元素。) | ![](http://docs.aws.amazon.com/zh_tw/kms/latest/developerguide/images/icon-successful.png) |  | 
| [代理 URI 路徑](create-xks-keystore.md#require-path) (XksProxyUriPath) | ![](http://docs.aws.amazon.com/zh_tw/kms/latest/developerguide/images/icon-successful.png) |  | 
| [代理連接](keystore-external.md#concept-xks-connectivity) (XksProxyConnectivity)(您也必須更新代理 URI 端點。如果您要變更為 VPC 端點服務連接，則必須指定代理 VPC 端點服務名稱。) |  | ![](http://docs.aws.amazon.com/zh_tw/kms/latest/developerguide/images/icon-successful.png) | 
| [代理 URI 端點](create-xks-keystore.md#require-endpoint) (XksProxyUriEndpoint)如果變更代理端點 URI，則您可能也需要變更相關的 TLS 憑證。 |  | ![](http://docs.aws.amazon.com/zh_tw/kms/latest/developerguide/images/icon-successful.png) | 
| [代理 VPC 端點服務名稱](create-xks-keystore.md#require-vpc-service-name) (XksProxyVpcEndpointServiceName)(VPC 端點服務連接需要此欄位) |  | ![](http://docs.aws.amazon.com/zh_tw/kms/latest/developerguide/images/icon-successful.png) | 
| [VPC 端點服務擁有者 ](create-xks-keystore.md#require-vpc-service-name) (XksProxyVpcEndpointServiceOwner)(VPC 端點服務連接需要此欄位) |  | ![](http://docs.aws.amazon.com/zh_tw/kms/latest/developerguide/images/icon-successful.png) | 

## 編輯外部金鑰存放區的屬性
<a name="edit-xks-keystore"></a>

您可以在 AWS KMS 主控台或使用 [UpdateCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateCustomKeyStore.html) 操作來編輯外部金鑰存放區的屬性。

### 使用 AWS KMS 主控台
<a name="update-keystore-console"></a>

編輯金鑰存放區時，您可以變更任何可編輯的值。某些變更需要將外部金鑰存放區與其外部金鑰存放區代理中斷連接。

如果您正在編輯代理 URI 路徑或代理身分驗證憑證，則可以輸入新值或上傳包含新值的外部金鑰存放區[代理組態檔案](create-xks-keystore.md#proxy-configuration-file)。

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) 的 AWS Key Management Service (AWS KMS) 主控台。

1. 若要變更 AWS 區域，請使用頁面右上角的區域選擇器。

1. 在導覽窗格中，依次選擇 **Custom key stores** (自訂金鑰存放區)、**External key stores** (外部金鑰存放區)。

1. 選擇您要編輯的金鑰存放區。

   1. 如果需要，將外部金鑰存放區與其外部金鑰存放區代理中斷連接。從 **Key store actions** (金鑰存放區動作) 選單中，選擇 **Disconnect** (中斷連接)。

1. 從 **Key store actions** (金鑰存放區動作) 選單中，選擇 **Edit** (編輯)。

1. 變更一個或多個可編輯的外部金鑰存放區屬性。您也可以上傳外部金鑰存放區[代理組態檔案](create-xks-keystore.md#proxy-configuration-file)，其中包含代理 URI 路徑和代理身分驗證憑證的值。即使檔案中指定的某些值尚未變更，您仍可使用代理組態檔案。

1. 選擇 **Update external key store** (更新外部金鑰存放區)。

1. 檢閱警告，如果您決定繼續，請確認警告，然後選擇 **Update external key store** (更新外部金鑰存放區)。

   當程序成功時，會出現訊息描述您編輯的屬性。當操作失敗時，會出現錯誤訊息，其中描述問題並提供如何修正的協助。

1. 如有必要，請重新連接外部金鑰存放區。從 **Key store actions** (金鑰存放區動作) 選單中，選擇 **Connect** (連接)。

   您可以將外部金鑰存放區保持中斷連接。中斷連接時，您無法在外部金鑰存放區中建立 KMS 金鑰，並且無法在[密碼編譯操作](manage-cmk-keystore.md#use-cmk-keystore)中使用外部金鑰存放區中的 KMS 金鑰。

### 使用 AWS KMS API
<a name="update-keystore-api"></a>

若要變更外部金鑰存放區的屬性，請使用 [UpdateCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateCustomKeyStore.html) 操作。您可以在相同操作中變更外部金鑰存放區的多個屬性。如果操作成功， 會 AWS KMS 傳回 HTTP 200 回應和沒有屬性的 JSON 物件。

使用 `CustomKeyStoreId` 參數可識別外部金鑰存放區。使用其他參數來變更屬性。您無法將[代理組態檔案](create-xks-keystore.md#proxy-configuration-file)用於 `UpdateCustomKeyStore` 操作。代理組態檔案僅主控台支援 AWS KMS 。不過，您可以使用代理組態檔案來協助您判斷外部金鑰存放區代理的正確參數值。

本節中的範例使用 [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/)，但您可以使用任何支援的程式設計語言。

在開始之前，[如果需要](#update-xks-keystore)，將[外部金鑰存放區](xks-connect-disconnect.md)與其外部金鑰存放區代理中斷連接。更新之後，如果需要，您可以將[外部金鑰存放區重新連接](xks-connect-disconnect.md)至其外部金鑰存放區代理。您可以將外部金鑰存放區保持在中斷連接狀態，但必須先重新將其連接，才能在金鑰存放區中建立新的 KMS 金鑰或使用金鑰存放區中的現有 KMS 金鑰進行密碼編譯操作。

**注意**  
如果您使用 1.0 AWS CLI 版，請在指定具有 HTTP 或 HTTPS 值的參數之前執行下列命令，例如 `XksProxyUriEndpoint` 參數。  

```
aws configure set cli_follow_urlparam false
```
否則， AWS CLI 版本 1.0 會將參數值取代為在該 URI 地址找到的內容，造成下列錯誤：  

```
Error parsing parameter '--xks-proxy-uri-endpoint': Unable to retrieve 
https:// : received non 200 status code of 404
```

#### 變更外部金鑰存放區的名稱
<a name="xks-edit-name"></a>

第一個範例使用 [UpdateCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateCustomKeyStore.html) 操作，將外部金鑰存放區的易記名稱變更為 `XksKeyStore`。此命令使用 `CustomKeyStoreId` 參數來識別自訂金鑰存放區和 `CustomKeyStoreName` 來指定自訂金鑰存放區的新名稱。將所有範例值取代為外部金鑰存放區的實際值。

```
$ aws kms update-custom-key-store --custom-key-store-id {{cks-1234567890abcdef0}} --new-custom-key-store-name {{XksKeyStore}}
```

#### 變更代理身分驗證憑證
<a name="xks-edit-credential"></a>

下列範例會更新 AWS KMS 用來驗證外部金鑰存放區代理的代理身分驗證憑證。如果在代理上輪換憑證，則可以使用類似這樣的命令來更新憑證。

請先更新外部金鑰存放區代理上的憑證。然後使用此功能將變更報告給 AWS KMS。（您的代理會短暫支援舊憑證和新憑證，讓您可以有時間在其中更新憑證 AWS KMS。)

您必須在憑證中同時指定存取金鑰 ID 和私密存取金鑰，即使只變更一個值。

前兩個命令設定變數來保留憑證值。`UpdateCustomKeyStore` 操作使用 `CustomKeyStoreId` 參數識別外部金鑰存放區。其會使用 `XksProxyAuthenticationCredential` 參數及其 `AccessKeyId` 和 `RawSecretAccessKey` 欄位來指定新的憑證。將所有範例值取代為外部金鑰存放區的實際值。

```
$ accessKeyID={{access key id}}
$ secretAccessKey={{secret access key}}

$ aws kms update-custom-key-store --custom-key-store-id {{cks-1234567890abcdef0}} \
        --xks-proxy-authentication-credential \ 
            AccessKeyId={{$accessKeyId}},RawSecretAccessKey={{$secretAccessKey}}
```

#### 變更代理 URI 路徑
<a name="xks-edit-path"></a>

下列範例會更新代理 URI 路徑 (`XksProxyUriPath`)。代理 URI 端點和代理 URI 路徑的組合在 AWS 帳戶 和 區域中必須是唯一的。將所有範例值取代為外部金鑰存放區的實際值。

```
$ aws kms update-custom-key-store --custom-key-store-id {{cks-1234567890abcdef0}} \
            --xks-proxy-uri-path {{/kms/xks/v1}}
```

#### 變更為 VPC 端點服務連接
<a name="xks-edit-connectivity-vpc"></a>

下列範例使用 [UpdateCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateCustomKeyStore.html) 操作，將外部金鑰存放區代理連接類型變更為 `VPC_ENDPOINT_SERVICE`。若要進行此變更，您必須指定 VPC 端點服務連接的必要值，包括 VPC 端點服務名稱 (`XksProxyVpcEndpointServiceName`) 和包含 VPC 端點服務之私有 DNS 名稱的代理 URI 端點 (`XksProxyUriEndpoint`) 值。將所有範例值取代為外部金鑰存放區的實際值。

```
$ aws kms update-custom-key-store --custom-key-store-id {{cks-1234567890abcdef0}} \
            --xks-proxy-connectivity "VPC_ENDPOINT_SERVICE" \
            --xks-proxy-uri-endpoint {{https://myproxy-private.xks.example.com}} \
            --xks-proxy-vpc-endpoint-service-name {{com.amazonaws.vpce.us-east-1.vpce-svc-example}}
```

#### 變更為公有端點連接
<a name="xks-edit-connectivity-public"></a>

下列範例會將外部金鑰存放區代理連接類型變更為 `PUBLIC_ENDPOINT`。當您進行此變更時，必須更新代理 URI 端點 (`XksProxyUriEndpoint`) 值。將所有範例值取代為外部金鑰存放區的實際值。

**注意**  
與公有端點連接相比，VPC 端點連接可提供更高的安全性。在變更為公有端點連接之前，請考慮其他選項，包括在內部部署中尋找外部金鑰存放區代理，以及僅將 VPC 用於通訊。

```
$ aws kms update-custom-key-store --custom-key-store-id {{cks-1234567890abcdef0}} \
            --xks-proxy-connectivity "PUBLIC_ENDPOINT" \
            --xks-proxy-uri-endpoint https://myproxy.xks.example.com
```