建立簽名

本頁說明如何使用 Google Cloud signBlob 方法,從待簽署字串或政策文件建立簽章。簽名會做為特定要求 (例如已簽署網址) 的憑證。本指南使用 RSA 金鑰建立簽名。

事前準備

  1. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  2. 您必須具備本指南所用服務帳戶的 iam.serviceAccounts.signBlob 權限。iam.serviceAccounts.signBlob 權限包含在 roles/iam.serviceAccountTokenCreator 角色中。

  3. 本指南中使用的服務帳戶必須具備權限,才能執行簽章中編碼的要求。舉例來說,如果簽章用於從值區讀取物件資料,服務帳戶必須具備讀取物件資料的權限。

建立簽名

  1. 安裝並初始化 gcloud CLI,以便為 Authorization 標頭產生存取權杖。

  2. 建立包含下列資訊的 JSON 檔案:

    {
      "payload": "REQUEST_INFORMATION"
    }

    其中:

  3. 使用 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 編碼的訊息摘要

  4. 如要完成簽章,請確保訊息摘要已採用 base64 解碼,然後以十六進位編碼訊息摘要。

後續步驟