このページでは、Trusted Cloud signBlob
メソッドを使用して、署名する文字列またはポリシー ドキュメントから署名を作成する方法について説明します。署名は、署名付き URL などの特定のリクエストで認証情報として使用されます。このガイドでは、署名の作成に 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.s3ns.iam.gserviceaccount.com
成功すると、レスポンスの
signedBlob
フィールドに base64 エンコードされたメッセージ ダイジェストが返されます。署名を完成させるには、メッセージ ダイジェストが base64 デコードされていることを確認してから、メッセージ ダイジェストを 16 進エンコードします。
次のステップ
- Google Cloud CLI を使用して blob に署名する方法については、リファレンス ページをご覧ください。
- 作成した署名を使用して署名付き URL を手動で作成する。
- Trusted Cloud ツールを使用して署名付き URL を作成する。
- 署名の詳細を確認する。