本頁說明如何使用 Google Cloud signBlob 方法,從待簽署字串或政策文件建立簽章。簽名會做為特定要求 (例如已簽署網址) 的憑證。本指南會使用 RSA 金鑰建立簽名。
事前準備
啟用 Service Account Credentials API。
啟用 API 時所需的角色
如要啟用 API,您需要服務使用情形管理員 IAM 角色 (
roles/serviceusage.serviceUsageAdmin),其中包含serviceusage.services.enable權限。瞭解如何授予角色。您必須擁有本指南所用服務帳戶的
iam.serviceAccounts.signBlob權限。iam.serviceAccounts.signBlob權限包含在roles/iam.serviceAccountTokenCreator角色中。本指南中使用的服務帳戶必須具備權限,才能執行簽章中編碼的要求。舉例來說,如果簽章用於從值區讀取物件資料,服務帳戶必須具備讀取物件資料的權限。
建立簽名
建立包含下列資訊的 JSON 檔案:
{ "payload": "REQUEST_INFORMATION" }
其中:
REQUEST_INFORMATION是 待簽署的字串或政策文件。兩者內容都必須採用 Base64 編碼。
使用
cURL透過signBlob要求呼叫 IAM API:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/SERVICE_ACCOUNT_EMAIL:signBlob"
其中:
JSON_FILE_NAME是您在步驟 2 建立的檔案名稱。SERVICE_ACCOUNT_EMAIL是您要用來建立簽章的服務帳戶電子郵件地址。例如:example-service-account@my-pet-project.iam.gserviceaccount.com。
如果成功,回應的
signedBlob欄位會傳回以 Base64 編碼的訊息摘要。如要完成簽章,請確保訊息摘要已解碼為 base64,然後將訊息摘要編碼為十六進位。
後續步驟
- 如要瞭解如何使用 Google Cloud CLI 簽署 Blob,請參閱參考頁面。
- 手動建立已簽署的網址,並使用您建立的簽章。
- 使用工具建立已簽署網址 Google Cloud 。
- 進一步瞭解簽名。