署名を作成する

このページでは、Trusted Cloud signBlob メソッドを使用して、署名する文字列またはポリシー ドキュメントから署名を作成する方法について説明します。署名は、署名付き URL などの特定のリクエストで認証情報として使用されます。このガイドでは、署名の作成に 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.s3ns.iam.gserviceaccount.com

    成功すると、レスポンスの signedBlob フィールドに base64 エンコードされたメッセージ ダイジェストが返されます。

  4. 署名を完成させるには、メッセージ ダイジェストが base64 デコードされていることを確認してから、メッセージ ダイジェストを 16 進エンコードします。

次のステップ