如何將金鑰匯入 AWS Key Management Service?

2 分的閱讀內容
0

我想將金鑰資料匯入 AWS Key Management Service (KMS),以便可以將 256 位元對稱金鑰與 AWS 服務搭配使用。

解決方法

AWS KMS 可讓您將金鑰資料匯入 AWS KMS 金鑰。然後,您可以將此金鑰與 AWS KMS 支援的 AWS 服務搭配使用。
請依照下列步驟將金鑰資料匯入 AWS KMS。
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本

  1. 建立不含金鑰資料的 AWS KMS 金鑰,並記下 AWS KMS 金鑰的 ID。
    注意:對於定義金鑰管理許可定義金鑰使用許可,最佳實務是分隔金鑰管理員和金鑰角色。這限制了任一憑證公開時的影響。

  2. 在已安裝 OpenSSL 的本機電腦或 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上開啟終端。

  3. 若要產生 256 位元對稱金鑰,請執行下列命令:

    openssl rand -out PlaintextKeyMaterial.bin 32
  4. 若要描述金鑰並取得匯入的參數,請執行下列 AWS CLI 命令:
    **注意:**這些命令會儲存公有金鑰並將字符參數匯入變數。

    export KEY=`aws kms --region eu-west-2 get-parameters-for-import --key-id example1-2345-67ab-9123-456789abcdef --wrapping-algorithm RSAES_OAEP_SHA_256 --wrapping-key-spec RSA_2048 --query '{Key:PublicKey,Token:ImportToken}' --output text`
  5. 若要將公有金鑰放入並將字符匯入單獨的 base64 編碼的檔案中,請執行下列命令:

    echo $KEY | awk '{print $1}' > PublicKey.b64echo $KEY | awk '{print $2}' > ImportToken.b64
  6. 若要將 base64 編碼的檔案轉換為要匯入的二進位檔案,請執行下列命令:

    openssl enc -d -base64 -A -in PublicKey.b64 -out PublicKey.binopenssl enc -d -base64 -A -in ImportToken.b64 -out ImportToken.bin
  7. 若要使用轉換為二進位檔案的公有金鑰加密金鑰資料,請執行下列命令:

    openssl pkeyutl -in PlaintextKeyMaterial.bin -out EncryptedKeyMaterial.bin -inkey PublicKey.bin -keyform DER -pubin -encrypt -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256
  8. 若要將加密金鑰資料匯入 AWS KMS,請執行下列命令:
    **注意:**此範例指定金鑰資料不會過期,但您可以為金鑰資料設定過期日期。如需詳細資訊,請參閱 ExpirationModel

    aws kms --region eu-west-2 import-key-material --key-id example1-2345-67ab-9123-456789abcdef --encrypted-key-material fileb://EncryptedKeyMaterial.bin --import-token fileb://ImportToken.bin --expiration-model KEY_MATERIAL_DOES_NOT_EXPIRE
  9. 確認匯入的金鑰狀態設定為已啟用。若要執行此操作,請在 AWS KMS 主控台中檢閱金鑰,或執行 DescribeKey API 動作。

如果您無法匯入金鑰,請針對您的使用案例執行下列步驟:

  • 您等待的時間超過 24 小時,匯入字符已過期。若要解決此問題,請下載包裝金鑰,然後再次匯入字符以重新加密金鑰資料。
  • 您的金鑰資料不是 256 位元對稱金鑰。若要解決此問題,請確認加密金鑰資料的檔案大小為 32 位元組。若要檢查檔案大小,請執行下列其中一個命令:

Linux

wc -c <filename>.bin

Windows

如需詳細資訊,請參閱匯入 AWS KMS 金鑰的金鑰資料

dir <filename>.bin

相關資訊

我正在使用 OpenSSL 將金鑰匯入 AWS KMS,但出現 "InvalidCiphertext" 錯誤。如何修正此問題?

AWS 官方
AWS 官方已更新 6 個月前