

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

# 使用 AWS CloudHSM KMU 匯入私有金鑰
<a name="key_mgmt_util-importPrivateKey"></a>

使用 AWS CloudHSM key\_mgmt\_util 中的 **importPrivateKey**命令，將非對稱私有金鑰從檔案匯入硬體安全模組 (HSM)。HSM 不允許以純文字形式直接匯入金鑰。此命令會使用您指定的 AES 包裝金鑰來加密私有金鑰，並在 HSM 內將該金錀取消包裝。如果您嘗試將 AWS CloudHSM 金鑰與憑證建立關聯，請參閱[本主題](ksp-library-associate-key-certificate.md)。

**注意**  
您無法使用對稱或私有金鑰匯入受密碼保護的 PEM 金鑰。

您須指定具有 `OBJ_ATTR_UNWRAP` 和 `OBJ_ATTR_ENCRYPT` 屬性值 `1` 的 AES 包裝金錀。若要尋找金鑰的屬性，請使用 [**getAttribute**](key_mgmt_util-getAttribute.md) 命令。

**注意**  
 此命令不提供將匯入金鑰標記為不可匯出的選項。

執行任何 key\_mgmt\_util 命令之前，您必須先[啟動 key\_mgmt\_util](key_mgmt_util-setup.md#key_mgmt_util-start) 並以加密使用者 (CU) 的身分[登入](key_mgmt_util-log-in.md) HSM。

## 語法
<a name="importPrivateKey-syntax"></a>

```
importPrivateKey -h

importPrivateKey -l {{<label>}}
                 -f {{<key-file>}}
                 -w {{<wrapping-key-handle>}}
                 [-sess]
                 [-id {{<key-id>}}]
                 [-m_value {{<0...8>}}]
                 [min_srv {{<minimum-number-of-servers>}}]
                 [-timeout {{<number-of-seconds>}}]
                 [-u {{<user-ids>}}]
                 [-wk {{<wrapping-key-file>}}]
                 [-attest]
```

## 範例
<a name="importPrivateKey-examples"></a>

此範例顯示如何使用 **importPrivateKey** 將私有金鑰匯入 HSM。

**Example ：匯入私有金鑰**  
此命令會從名為 `rsa2048.key` 且包含標籤 `rsa2048-imported` 的檔案，以及包含控制代碼 `524299` 的包裝金鑰，匯入私有金鑰。命令成功時，**importPrivateKey** 會傳回已匯入金鑰的金鑰控制代碼和成功訊息。  

```
Command: importPrivateKey -f rsa2048.key -l rsa2048-imported -w 524299

BER encoded key length is 1216

Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS

Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS

Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS

Private Key Unwrapped.  Key Handle: 524301

Cluster Error Status
Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
```

## Parameters
<a name="importPrivateKey-parameters"></a>

此命令會使用下列參數。

**`-h`**  
顯示命令的命令列說明。  
必要：是

**`-l`**  
指定使用者定義的私有金鑰標籤。  
必要：是

**`-f`**  
指定要匯入之金鑰的檔案名稱。  
必要：是

**`-w`**  
指定包裝金鑰的金鑰控制代碼。此為必要參數。若要找出金鑰控制代碼，請使用 [**findKey**](key_mgmt_util-findKey.md) 命令。  
若要判斷金鑰是否可以做為包裝金鑰使用，請使用 [**getAttribute**](key_mgmt_util-getAttribute.md) 取得 `OBJ_ATTR_WRAP` 屬性 (262) 的值。若要建立包裝金鑰，請使用 [**genSymKey**](key_mgmt_util-genSymKey.md) 建立 AES 金鑰 (類型 31)。  
如果您使用 `-wk` 參數來指定外部的取消包裝金鑰，則在匯入期間會使用 `-w` 包裝金鑰來進行包裝，但不會用來取消包裝。  
必要：是

**`-sess`**  
將已匯入金鑰指定為工作階段金鑰。  
預設：匯入的金鑰在叢集中保留為持久性 (符記) 金鑰。  
必要：否

**`-id`**  
指定要匯入之金鑰的 ID。  
預設：無 ID 值。  
必要：否

**`-m_value`**  
指定必須核准使用匯入金鑰之密碼編譯操作的使用者數量。輸入從 **0** 到 **8** 的值。  
只有當命令中的 `-u` 參數與足夠的使用者共享金鑰以符合 `m_value` 要求，此參數才有效。  
預設：0  
必要：否

**`-min_srv`**  
指定在 `-timeout` 參數值過期之前同步匯入金鑰所需的 HSM 數量下限。如果未在規定時間內同步至指定數量的伺服器，金鑰就不會建立。  
AWS CloudHSM 會自動將每個金鑰同步到叢集中的每個 HSM。要加速流程，請將 `min_srv` 值設定為少於叢集中之 HSM 的數量，並設定低逾時值。然而，請注意有些請求可能不會產生金鑰。  
預設：1  
必要：否

**`-timeout`**  
指定當加入 `min-serv` 參數時要等待金鑰在 HSM 之間同步的秒數。如果未指定秒數，將持續輪詢下去。  
預設：無限制  
必要：否

**`-u`**  
指定要分享匯入之私有金鑰的使用者清單。此參數授與其他 HSM 密碼使用者 (CU) 在密碼編譯操作中使用匯入金鑰的許可。  
輸入 HSM 使用者 ID 清單並以逗號分隔，例如 `-u 5,6`。請勿包含現行使用者的 HSM 使用者 ID。若要找出 HSM 上 CU 的 HSM 使用者 ID，請使用 [listUsers](key_mgmt_util-listUsers.md)。  
預設：只有現行使用者能夠使用匯入的金鑰。  
必要：否

**`-wk`**  
指定用於將匯入之金鑰包裝的金鑰。輸入包含純文字 AES 金鑰的檔案路徑和名稱。  
當您加入此參數時，**importPrivateKey** 會使用 `-wk` 檔案中的金鑰來包裝匯入的金鑰。它也會使用 `-w` 參數指定的金鑰。  
預設：使用在 `-w` 參數中指定的包裝金鑰來進行包裝和取消包裝。  
必要：否

**`-attest`**  
請對韌體回應進行證明檢查，以確保上面有叢集執行的韌體並未遭到盜用。  
必要：否

## 相關主題
<a name="importPrivateKey-seealso"></a>
+ [wrapKey](key_mgmt_util-wrapKey.md)
+ [unWrapKey](key_mgmt_util-unwrapKey.md)
+ [genSymKey](key_mgmt_util-genSymKey.md)
+ [exportPrivateKey](key_mgmt_util-exportPrivateKey.md)