Nesta página, mostramos como usar o método do Google Cloud signBlob
para criar uma assinatura de um documento de política ou string a ser assinado. As assinaturas
são usadas como credenciais em determinadas solicitações, como URLs assinados. Este guia usa chaves RSA para criar assinaturas.
Antes de começar
Enable the Service Account Credentials API.
Você precisa ter a permissão
iam.serviceAccounts.signBlob
para a conta de serviço usada neste guia. Essa permissãoiam.serviceAccounts.signBlob
está incluída no papelroles/iam.serviceAccountTokenCreator
.A conta de serviço usada neste guia precisa ter permissão para executar a solicitação codificada na assinatura. Por exemplo, se a assinatura for usada para ler dados de objetos de um bucket, a conta de serviço precisará ter permissão para ler esses dados.
Criar uma assinatura
Ter a CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho
Authorization
.Crie um arquivo JSON com as informações a seguir:
{ "payload": "REQUEST_INFORMATION" }
Em que:
REQUEST_INFORMATION
é uma string a ser assinada ou um documento de política. Para os dois, o conteúdo precisa ser codificado em base64.
Use
cURL
para chamar a API IAM com uma solicitaçãosignBlob
: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"
Em que:
JSON_FILE_NAME
é o nome do arquivo criado na etapa 2.SERVICE_ACCOUNT_EMAIL
é o endereço de e-mail da conta de serviço que você quer usar para criar a assinatura. Por exemplo,service-7550275089395@my-pet-project.iam.gserviceaccount.com
.
Se for bem-sucedida, a assinatura será retornada no campo signedBlob
na resposta.
A seguir
- Consulte a página de referência para assinar blobs com a CLI do Google Cloud.
- Crie um URL assinado manualmente usando a assinatura criada.
- Crie um URL assinado com as ferramentas do Google Cloud.
- Saiba mais sobre Assinaturas.