本頁說明如何使用 Google Cloud signBlob
方法,從待簽署字串或政策文件建立簽章。簽名會做為特定要求 (例如已簽署網址) 的憑證。本指南使用 RSA 金鑰建立簽名。
事前準備
Enable the Service Account Credentials API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.您必須具備本指南所用服務帳戶的
iam.serviceAccounts.signBlob
權限。iam.serviceAccounts.signBlob
權限包含在roles/iam.serviceAccountTokenCreator
角色中。本指南中使用的服務帳戶必須具備權限,才能執行簽章中編碼的要求。舉例來說,如果簽章用於從值區讀取物件資料,服務帳戶必須具備讀取物件資料的權限。
建立簽名
安裝並初始化 gcloud CLI,以便為
Authorization
標頭產生存取權杖。建立包含下列資訊的 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
是您要用來建立簽章的服務帳戶電子郵件地址。例如:service-7550275089395@my-pet-project.iam.gserviceaccount.com
。
如果成功,回應的
signedBlob
欄位會傳回以 Base64 編碼的訊息摘要。如要完成簽章,請確保訊息摘要已採用 base64 解碼,然後以十六進位編碼訊息摘要。
後續步驟
- 如要瞭解如何使用 Google Cloud CLI 簽署 Blob,請參閱參考頁面。
- 手動建立已簽署的網址,並使用您建立的簽章。
- 使用工具建立已簽署網址。 Google Cloud
- 進一步瞭解簽名。