This page shows you how to use the Google Cloud signBlob
method
to create a signature from a string-to-sign or policy document. Signatures
are used as credentials in certains requests, such as signed URLs. This
guide uses RSA keys for creating signatures.
Before you begin
You must have the
iam.serviceAccounts.signBlob
permission for the service account that you use in this guide. Theiam.serviceAccounts.signBlob
permission is included in theroles/iam.serviceAccountTokenCreator
role.The service account that you use in this guide must have permission to perform the request encoded within the signature. For example, if the signature will be used to read object data from a bucket, the service account must have permission to read the object data.
Create a signature
- Get an authorization access token from the OAuth 2.0 Playground. Configure the playground to use your own OAuth credentials. For instructions, see API authentication.
Create a JSON file that contains the following information:
{ "payload": "REQUEST_INFORMATION" }
Where:
REQUEST_INFORMATION
is a string-to-sign or a policy document. For both, content must be base64-encoded.
Use
cURL
to call the IAM API with asignBlob
request:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/SERVICE_ACCOUNT_EMAIL:signBlob"
Where:
JSON_FILE_NAME
is the name of the file you created in Step 2.OAUTH2_TOKEN
is the access token you created in Step 1.SERVICE_ACCOUNT_EMAIL
is the email address of the service account you want to use to create the signature. For example,service-7550275089395@my-pet-project.iam.gserviceaccount.com
.
If successful, the signature is returned in the signedBlob
field in the
response.
What's next
- See the reference page for signing blobs with the Google Cloud CLI.
- Create a signed URL manually, using the signature you created.
- Create a signed URL with Google Cloud tools.
- Learn more about signatures.