このページでは、Google Cloud signBlob
メソッドを使用して、署名する文字列またはポリシー ドキュメントから署名を作成する方法について説明します。署名は、署名付き URL などの特定のリクエストで認証情報として使用されます。このガイドでは、署名の作成に RSA 鍵を使用します。
始める前に
このガイドで使用するサービス アカウントに対する
iam.serviceAccounts.signBlob
権限が必要です。iam.serviceAccounts.signBlob
権限は、roles/iam.serviceAccountTokenCreator
のロールに含まれています。このガイドで使用するサービス アカウントには、署名内にエンコードされたリクエストを実行する権限が必要です。たとえば、バケットからオブジェクト データを読み取るために署名を使用する場合、サービス アカウントにはオブジェクト データを読み取る権限が必要です。
署名の作成
Authorization
ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。OAuth 2.0 Playground を使用してアクセス トークンを作成し、
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.iam.gserviceaccount.com
成功すると、レスポンスの signedBlob
フィールドに署名が返されます。
次のステップ
- Google Cloud CLI を使用して blob に署名する方法については、リファレンス ページをご覧ください。
- 作成した署名を使用して署名付き URL を手動で作成する。
- Google Cloud のツールを使用して署名付き URL を作成する。
- 署名の詳細を確認する。