本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
步驟 2:下載包裝公有金鑰及匯入字符
建立 AWS KMS key 不含金鑰資料的 後,請使用 AWS KMS 主控台或 GetParametersForImport API,下載該 KMS 金鑰的包裝公有金鑰和匯入字符。包裝公有金鑰與匯入字符是不可分割的集合,必須一起使用。
您將利用包裝公有金鑰來加密您的金鑰資料,以便進行傳輸。在下載 RSA 包裝金鑰對之前,您可以選取 RSA 包裝金鑰對的長度 (金鑰規格),以及用於在步驟 3 中加密匯入金鑰材料以進行傳輸的包裝演算法。 AWS KMS 也支援 SM2 包裝金鑰規格 (僅限中國區域)。
每個包裝公有金鑰與匯入字符集合的有效期為 24 小時。如您未在下載後 24 小時內利用它們來匯入金鑰資料,則必須下載新的集合。您可隨時下載新的包裝公有金鑰與匯入字符集合。這可讓您更改 RSA 包裝金鑰長度 (「金鑰規格」) 或替取代遺失的集合。
您也可下載包裝公有金鑰與匯入字符集合,以便重新匯入相同金鑰資料至 KMS 金鑰。這樣做可設定或變更金鑰資料的過期時間,或者還原已過期或已刪除的金鑰資料。每次匯入金鑰材料時,都必須下載並重新加密。 AWS KMS
- 運用包裝公有金鑰
-
下載包含專屬於您的公有金鑰 AWS 帳戶,也稱為包裝公有金鑰。
匯入金鑰材料之前,您可以使用公有包裝金鑰加密金鑰材料,然後將加密的金鑰材料上傳到其中 AWS KMS。當 AWS KMS 收到您的加密金鑰材料時,它會使用對應的私有金鑰解密金鑰材料,然後在 AES 對稱金鑰下重新加密金鑰材料,全部都在 AWS KMS 硬體安全模組 (HSM) 內。
- 使用匯入符記
-
該下載包括匯入字符,字符所帶的中繼資料可確保金鑰材料正確匯入。當您上傳加密的金鑰資料到 時 AWS KMS,您必須上傳您在此步驟中下載的相同匯入字符。
選取包裝公有金鑰規格
為了在匯入期間保護您的金鑰材料,您可以使用您下載的包裝公有金鑰 AWS KMS和支援的包裝演算法來加密它。在下載包裝公有金鑰與匯入字符之前,請先選取金鑰規格。所有包裝金鑰對都會在 AWS KMS 硬體安全模組 (HSMs中產生。您的私有金鑰永遠不會以純文字形式離開 HSM。
- RSA 包裝金鑰規格
-
包裝公有金鑰的金鑰規格決定 RSA 金鑰對的金鑰長度,該金鑰對在傳輸至 AWS KMS的過程會保護您的金鑰資料。一般情況而言,建議採用符合實用的最長公有金鑰。我們提供數種包裝公有金鑰規格,以便支援各種 HSM 與金鑰管理器。
AWS KMS 支援用於匯入所有類型金鑰材料的 RSA 包裝金鑰的下列金鑰規格,除非另有說明。
-
RSA_4096 (首選)
-
RSA_3072
-
RSA_2048
注意
不支援下列組合:ECC_NIST_P521 金鑰資料、RSA_2048 公有包裝金鑰規格以及 RSAES_OAE_SHA_* 包裝演算法。
您無法使用 RSA_2048 公有包裝金鑰直接包裝 ECC_NIST_P521 金鑰材質。使用較大的包裝金鑰或 RSA_AES_KEY_WRAP_SHA_* 包裝演算法。
-
- SM2 包裝金鑰規格 (僅限中國區域)
-
AWS KMS 支援用於匯入非對稱金鑰材料的 SM2 包裝金鑰的下列金鑰規格。
-
SM2
-
選取包裝演算法
為在匯入期間保護金鑰資料,請利用下載的包裝公有金鑰及支援的包裝演算法來加密金鑰資料。
AWS KMS 支援數個標準 RSA 包裝演算法和兩個步驟的混合包裝演算法。一般而言,建議採用相容匯入金鑰資料及包裝金鑰規格的最安全包裝演算法。您通常是選擇硬體安全模組 (HSM) 或保護金鑰資料的金鑰管理系統所支援的演算法。
下表顯示每種金鑰資料與 KMS 金鑰類型所支援的包裝演算法。演算法以偏好順序列出。
金鑰資料 | 支援的包裝演算法與規格 |
---|---|
對稱加密金鑰 256 位元 AES 金鑰
128 位元 SM4 金鑰 (僅限中國區域) |
|
非對稱 RSA 私有金鑰 |
|
非對稱橢圓曲線 (ECC) 私有金鑰
您不能搭配採用 RSAES_OAEP_SHA_* 包裝演算法與 RSA_2048 包裝金鑰規格來包裝 ECC_NIST_P521 金鑰資料。 |
|
非對稱 SM2 私有金鑰 (僅限中國區域) |
|
HMAC 金鑰 |
|
注意
中國區域不支援 RSA_AES_KEY_WRAP_SHA_256
和 RSA_AES_KEY_WRAP_SHA_1
包裝演算法。
-
RSA_AES_KEY_WRAP_SHA_256
- 此為兩步驟混合包裝演算法,結合加密金鑰資料以及您產生的 AES 對稱金鑰,然後利用下載的 RSA 公有包裝金鑰與 RSAES_OAEP_SHA_256 包裝演算法來加密 AES 對稱金鑰。除了您必須使用
RSA_AES_KEY_WRAP_SHA_*
包裝演算法的中國區域以外,包裝 RSA 私有金鑰材料需要SM2PKE
包裝演算法。 -
RSA_AES_KEY_WRAP_SHA_1
- 此為兩步驟混合包裝演算法,結合加密金鑰資料以及您產生的 AES 對稱金鑰,然後利用下載的 RSA 包裝公有金鑰與 RSAES_OAEP_SHA_1 包裝演算法來加密 AES 對稱金鑰。除了您必須使用
RSA_AES_KEY_WRAP_SHA_*
包裝演算法的中國區域以外,包裝 RSA 私有金鑰材料需要SM2PKE
包裝演算法。 -
RSAES_OAEP_SHA_256
– RSA 加密演算法搭配最佳非對稱加密填補 (OAEP) 以及 SHA-256 雜湊函數。 -
RSAES_OAEP_SHA_1
– RSA 加密演算法搭配最佳非對稱加密填補 (OAEP) 以及 SHA-1 雜湊函數。 -
RSAES_PKCS1_V1_5
(已棄用;截至 2023 年 10 月 10 日, AWS KMS 不支援 RSAES_PKCS1_V1_5 包裝演算法) – RSA 加密演算法搭配 PKCS #1 版本 1.5 中定義的填補格式。 -
SM2PKE
(僅限中國區域) – OSCCA 在 GM/T 0003.4-2012 中定義的橢圓曲線型加密演算法。
下載包裝公有金鑰與匯入字符 (主控台)
您可以使用 AWS KMS 主控台下載包裝公有金鑰和匯入字符。
-
如果您剛完成建立不含金鑰材料之 KMS 金鑰的步驟,且目前是在 Download wrapping key and import token (下載包裝金鑰和匯入字符) 頁面,請跳到 步驟 9。
-
登入 AWS Management Console 並開啟位於 https://https://console.aws.amazon.com/kms
的 AWS Key Management Service (AWS KMS) 主控台。 -
若要變更 AWS 區域,請使用頁面右上角的區域選擇器。
-
在導覽窗格中,選擇 Customer managed keys (客戶受管金鑰)。
提示
您僅能匯入金鑰資料至來源是外部 (匯入金鑰資料) 的 KMS 金鑰。這表示建立的 KMS 金鑰不含金鑰資料。如要將 Origin (來源) 資料行新增至您的資料表,請在頁面的右上角選擇設定圖示 (
)。開啟 Origin (來源),然後選擇 Confirm (確認)。
-
選擇待匯入的 KMS 金鑰的別名或金鑰 ID。
-
選擇 Cryptographic configuration (密碼編譯組態) 索引標籤並檢視其值。索引標籤位於 General Configuration (一般組態) 區段下。
您僅能匯入金鑰資料至來源是外部 (匯入金鑰資料) 的 KMS 金鑰。如需有關建立具有匯入金鑰材料之 KMS 金鑰的資訊,請參閱 匯入金鑰的 AWS KMS 金鑰材料。
-
選擇金鑰資料索引標籤,然後選擇匯入金鑰資料。
僅來源值為外部 (匯入金鑰資料) 的 KMS 金鑰,才會顯示金鑰資料索引標籤。
-
針對選取包裝金鑰規格,請選擇 KMS 金鑰的組態。在建立此金鑰後,您便無法變更金鑰規格。
-
對於 Select wrapping algorithm (選取包裝演算法),請選擇您將用來加密金鑰材料的選項。如需選項的詳細資訊,請參閱選取包裝演算法。
-
選擇下載包裝公有金鑰與匯入字符,然後儲存檔案。
如果您有 Next (下一步) 選項,現在請繼續程序,選擇 Next (下一步)。若要稍後再繼續,請選擇 Cancel (取消)。
-
解壓縮您在上一個步驟中儲存的
.zip
檔案 (Import_Parameters_
)。<key_id>
_<timestamp>
資料夾內含下列檔案:
-
在名為 的檔案中包裝公有金鑰
WrappingPublicKey.bin
。 -
匯入字符位於名為
ImportToken.bin
的檔案。 -
名為 README.txt 的文本檔案。此檔案包含包裝公有金鑰的相關資訊、用來加密金鑰資料的包裝演算法,以及包裝公有金鑰與匯入字符過期的日期及時間。
-
-
若要繼續程序,請參閱加密金鑰材料。
下載包裝公有金鑰和匯入字符 (AWS KMS API)
若要下載公有金鑰和匯入字符,請使用 GetParametersForImport API。指定將與匯入金鑰材料相關聯的 KMS 金鑰。此 KMS 金鑰的 Origin (來源) 值必須為 EXTERNAL
。
注意
您無法匯入 ML-DSA KMS 金鑰的金鑰材料。
此範例指定 RSA_AES_KEY_WRAP_SHA_256
包裝演算法、RSA_3072 包裝公有金鑰規格,以及金鑰 ID 範例。將這些範例值取代為下載的有效值。對於金鑰 ID,您可採用金鑰 ID 或金鑰 ARN,但您不能在此操作採用別名名稱或別名 ARN。
$
aws kms get-parameters-for-import \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --wrapping-algorithmRSA_AES_KEY_WRAP_SHA_256
\ --wrapping-key-specRSA_3072
如果命令成功執行,您會看到類似如下的輸出:
{ "ParametersValidTo": 1568290320.0, "PublicKey": "
public key (base64 encoded)
", "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "ImportToken": "import token (base64 encoded)
" }
為了準備下一步要使用的資料,將對公有金鑰和匯入字符進行 base64 解碼,然後將解碼的值保存在檔案中。
若要對公有金鑰和匯入字符進行 base64 解碼:
-
複製 base64 編碼公有金鑰 (在範例輸出中表示為
公有金鑰 (base64 編碼)
),將其貼入新檔案,然後儲存檔案。以描述性名稱命名檔案,例如PublicKey.b64
。 -
使用 OpenSSL
來以 base64 解碼檔案的內容,並將解碼資料儲存到新的檔案。以下範例會解碼您在上一個步驟中所儲存檔案的資料 ( PublicKey.b64
),並將輸出儲存到新的檔案,檔名為WrappingPublicKey.bin
。$
openssl enc -d -base64 -A -in PublicKey.b64 -out WrappingPublicKey.bin
-
複製 base64 編碼匯入字符 (在範例輸出中表示為
匯入字符 (base64 編碼)
)、將其貼入新檔案,然後儲存檔案。提供檔案描述性的名稱,例如importtoken.b64
。 -
使用 OpenSSL
來以 base64 解碼檔案的內容,並將解碼資料儲存到新的檔案。以下範例會解碼您在上一個步驟中所儲存檔案的資料 ( ImportToken.b64
),並將輸出儲存到新的檔案,檔名為ImportToken.bin
。$
openssl enc -d -base64 -A -in importtoken.b64 -out ImportToken.bin
繼續執行「步驟 3:加密金鑰材料」。