簽署及驗證資料

數位簽章可確保資料的完整性和真實性。本文說明如何使用 gdcloud CLI,透過 Key Management System (KMS) 管理的非對稱金鑰簽署資料及驗證簽章。

本頁內容適用於應用程式運算子群組中的對象,例如 DevOps 團隊,在 Google Distributed Cloud (GDC) 氣隙環境中執行金鑰管理作業時,可參考本頁內容。詳情請參閱 GDC 氣隙環境適用的目標對象說明文件

事前準備

如要使用金鑰簽署及驗證資料,請要求必要權限、準備環境,並建立簽署金鑰 (如果沒有的話)。

要求 IAM 角色

請與機構 IAM 管理員聯絡,在專案命名空間中授予您下列角色:

  • KMS 開發人員 (kms-developer):查看金鑰,並在專案中執行加密、解密、簽署及驗證資料等密碼編譯作業。

準備環境

  1. 如果尚未安裝並初始化 gcloud CLI,請先執行此步驟。

  2. 使用 gdcloud CLI 向 GDC 進行驗證。這項程序需要貴機構控制台的憑證授權單位 (CA) 憑證:

    1. 下載 CA 憑證:

      echo -n | openssl s_client -showcerts -connect CONSOLE_URL:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > CA_CERT_PATH
      

      更改下列內容:

      • CONSOLE_URL:貴機構的控制台網址 (例如 console.org-1.zone1.google.gdch.test)
      • CA_CERT_PATH:您要儲存 CA 憑證檔案的完整路徑 (例如 /tmp/my-org-ca.crt)
    2. 使用下載的 CA 憑證登入:

      gdcloud auth login --login-config-cert=CA_CERT_PATH
      

確認簽署金鑰存在

如要簽署及驗證資料,必須使用簽署金鑰。如連結頁面所述,建立及驗證金鑰需要不同的 IAM 權限。

簽署資料

如要簽署資料,請使用 gdcloud kms keys asymmetric-sign 指令。這個指令會使用簽署金鑰建立輸入檔案的數位簽章,並儲存 base64 編碼的簽章:

  gdcloud kms keys asymmetric-sign \
  namespaces/NAMESPACE/signingKeys/KEY_NAME \
  --input-file=INPUT_PATH \
  --signature-file=SIGNATURE_FILE

更改下列內容:

  • NAMESPACE:專案命名空間,例如: kms-test1
  • KEY_NAME:用於簽署的金鑰名稱,例如:key-1
  • INPUT_PATH:要簽署的輸入檔案路徑
  • SIGNATURE_FILE:儲存 Base64 編碼簽章的輸出檔案路徑

執行指令後,您會在 --signature-file 旗標中指定的輸出檔案中,看到 Base64 編碼的簽章。

驗證資料

簽署資料後,請使用 gdcloud kms keys asymmetric-verify 指令驗證 base64 數位簽章。這項指令會驗證您在執行 gdcloud kms keys asymmetric-sign 指令後收到的 Base64 編碼數位簽章是否有效:

gdcloud kms keys asymmetric-verify \
namespaces/NAMESPACE/signingKeys/KEY_NAME \
  --input-file=INPUT_PATH \
  --signature-file=SIGNATURE_FILE

更改下列內容:

  • NAMESPACE:專案命名空間,例如: kms-test1
  • KEY_NAME:用於簽署的金鑰名稱,例如:key-1
  • INPUT_PATH:已簽署的原始輸入檔案路徑
  • SIGNATURE_FILE:包含要驗證的 Base64 編碼簽章的檔案路徑

執行指令後,如果成功,您會看到 Verification OK 輸出內容。如果不成功,您會看到失敗輸出內容 Verification Failure