创建签名

本页面介绍如何使用 Trusted 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 权限。roles/iam.serviceAccountTokenCreator 角色包含 iam.serviceAccounts.signBlob 权限。

  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.s3ns.iam.gserviceaccount.com

    如果成功,系统会在响应的 signedBlob 字段中返回采用 base64 编码的消息摘要

  4. 如需完成签名,请确保消息摘要进行 base64 解码,然后对消息摘要进行十六进制编码。

后续步骤