建立簽名

本頁面說明如何使用 Google Cloud signBlob 方法,從待簽署字串或政策文件建立簽章。簽章在某些要求中會做為憑證使用,例如經簽署的網址。本指南使用 RSA 金鑰建立簽章。

事前準備

  1. 啟用 Service Account Credentials API (如果尚未啟用)。

    啟用 API 時所需的角色

    如要啟用 API,您必須具備 serviceusage.services.enable 權限。如果您建立了專案,可能已透過擁有者角色 (roles/owner) 取得這項權限。否則,您可以透過服務使用情形管理員角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。

    啟用 API

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

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

建立簽名

  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 是要用於建立簽章的服務帳戶電子郵件地址。例如:example-service-account@my-pet-project.iam.gserviceaccount.com。

    如果成功,系統會在回應的 signedBlob 欄位中傳回訊息摘要,並以 Base64 編碼。

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

後續步驟