簽署及驗證資料

AO 會透過 gRPC 用戶端,透過 Google Distributed Cloud (GDC) 氣隙式 KMS 執行簽署和驗證作業。

事前準備

執行 KMS 作業前,請先設定 kubectl,以便存取 Management API 伺服器並取得必要權限。

設定 Management API 伺服器存取權

設定 kubectl 以存取 Management API 伺服器:

  1. 如果還沒這麼做,請使用 gdcloud CLI 介面,為 Management API 伺服器取得 kubeconfig 檔案
  2. 設定 MANAGEMENT_API_SERVER 環境變數:

    export MANAGEMENT_API_SERVER=PATH_TO_KUBECONFIG
    

    PATH_TO_KUBECONFIG 替換為產生的 kubeconfig 檔案路徑。

  3. 如果尚未完成,請下載、安裝及設定 gdcloud CLI。如要這麼做,請參閱 gcloud CLI 總覽

所需權限

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

簽署資料

如要簽署資料,請使用 gdcloud kms keys asymmetric-sign 指令。這項指令會使用 Signing 金鑰建立輸入檔案的數位簽章,並儲存 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
    

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