加密及解密資料

本文說明如何使用 gdcloud CLI,透過 Key Management System (KMS) 金鑰加密及解密資料。

本文適用於應用程式運算子群組中的目標對象,他們需要在 GDC 專案中執行加密編譯作業。詳情請參閱 GDC 氣隙環境適用的目標對象說明文件

事前準備

加密或解密資料之前,您必須具備必要權限,並準備好環境。

要求 IAM 角色

如要加密及解密資料,請與機構的 IAM 管理員聯絡,要求在專案命名空間中取得 KMS 開發人員 (kms-developer) 角色。

準備環境

所需權限

如要取得所需權限,請要求組織 IAM 管理員在專案中授予您 KMS 開發人員 (kms-developer) 角色。

加密資料

如要加密資料,請使用 gdcloud kms keys encrypt 指令。這個指令會使用 AEAD 金鑰加密指定的明文檔案,並將加密結果寫入具名的密文檔案。

  • 如要加密資料,請傳遞金鑰名稱和下列項目:

    gdcloud kms keys encrypt namespaces/NAMESPACE/aeadKeys/KEY_NAME \
      --plaintext-file=PLAINTEXT_PATH \
      --additional-authenticated-data-file=ADDITIONAL_AUTHENTICATED_DATA_FILE \
      --ciphertext-file=CIPHERTEXT_PATH
    

    請替換下列變數:

    • NAMESPACE:專案命名空間,例如:kms-test1
    • KEY_NAME:用於加密明文的金鑰名稱,例如:key-1
    • PLAINTEXT_PATH:包含要加密明文的檔案路徑。
    • ADDITIONAL_AUTHENTICATED_DATA_FILE:選用檔案,內含額外的已驗證資料 (AAD)。AAD 可用於完整性檢查,並保護資料免遭混淆代理攻擊。AAD 和純文字的大小上限皆為 64 KB。
    • CIPHERTEXT_PATH:包含加密明文的檔案路徑。

    執行指令後,您會看到 --ciphertext-file 旗標中指定的檔案,其中包含純文字檔案的加密內容。

解密資料

如要解密資料,請使用 gdcloud kms keys decrypt 指令。這個指令會使用 AEAD 金鑰解密指定的密文檔案,並將解密內容寫入指定的純文字檔案。

  • 如要解密密文,請傳遞金鑰名稱和下列項目:

    gdcloud kms keys decrypt namespaces/NAMESPACE/aeadKeys/KEY_NAME \
     --ciphertext-file=CIPHERTEXT_PATH \
     --additional-authenticated-data-file=ADDITIONAL_AUTHENTICATED_DATA_FILE \
     --plaintext-file=PLAINTEXT_PATH
    

    請替換下列變數:

    • NAMESPACE:專案命名空間。
    • KEY_NAME:用於加密明文的金鑰名稱。
    • CIPHERTEXT_PATH:要解密檔案的路徑。
    • ADDITIONAL_AUTHENTICATED_DATA_FILE:選用檔案,內含額外的已驗證資料 (AAD)。AAD 可用於完整性檢查,並保護資料免遭混淆代理攻擊。AAD 和純文字的大小上限皆為 64 KB。
    • PLAINTEXT_PATH:包含解密明文的檔案路徑。

    執行指令後,您會看到 --plaintext-file 標記中指定的檔案,其中包含解密資料。