AO 會透過 gRPC 用戶端,透過 Google Distributed Cloud (GDC) 氣隙式 KMS 執行簽署和驗證作業。
事前準備
執行 KMS 作業前,請先設定 kubectl,以便存取 Management API 伺服器並取得必要權限。
設定 Management API 伺服器存取權
設定 kubectl 以存取 Management API 伺服器:
- 如果還沒這麼做,請使用 gdcloud CLI 介面,為 Management API 伺服器取得 kubeconfig 檔案。
設定
MANAGEMENT_API_SERVER環境變數:export MANAGEMENT_API_SERVER=PATH_TO_KUBECONFIG將
PATH_TO_KUBECONFIG替換為產生的 kubeconfig 檔案路徑。如果尚未完成,請下載、安裝及設定 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 編碼的簽章。- NAMESPACE:專案命名空間,例如:
驗證資料
簽署資料後,請使用 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。