Nesta página, mostramos como usar o métodoGoogle 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
Ative a API Service Account Credentials.
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador de uso do serviço (
roles/serviceusage.serviceUsageAdmin), que contém a permissãoserviceusage.services.enable. Saiba como conceder papéis.Você precisa ter a permissão
iam.serviceAccounts.signBlobpara a conta de serviço usada neste guia. Essa permissãoiam.serviceAccounts.signBlobestá 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 da política. Para os dois, o conteúdo precisa ser codificado em base64.
Use
cURLpara 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,example-service-account@my-pet-project.iam.gserviceaccount.com.
Se a operação for bem-sucedida, um resumo da mensagem será retornado no campo
signedBlobda resposta, que é codificada em base64.Para concluir a assinatura, verifique se o resumo da mensagem foi decodificado em base64 e codifique-o em hexadecimal.
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 Google Cloud ferramentas.
- Saiba mais sobre Assinaturas.