數位簽章可用於確保資料完整性和真實性。本文說明如何使用 gdcloud CLI,透過金鑰管理系統 (KMS) 管理的非對稱金鑰簽署資料及驗證簽章。
本頁面適用於應用程式操作員群組中的對象 (例如 DevOps 團隊),說明如何在 Google Distributed Cloud (GDC) 實體隔離環境中執行金鑰管理作業。詳情請參閱「GDC 實體隔離方案說明文件的目標對象」。
事前準備
如要使用金鑰簽署及驗證資料,請要求必要權限、準備環境,並建立簽署金鑰 (如果尚未建立)。
要求 IAM 角色
請與 IAM 機構組織管理員聯絡,要求對方在專案命名空間中授予您下列角色:
- KMS 開發人員 (
kms-developer):查看金鑰,並在專案中執行加密編譯作業,例如加密、解密、簽署及驗證資料。
準備環境
如果尚未安裝並初始化 gdcloud CLI,請先完成這些步驟。
使用 gdcloud CLI 向 GDC 驗證。這項程序需要貴機構控制台的憑證授權單位 (CA) 憑證:
下載 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)
使用下載的 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。