A assinatura V4 é um processo que pode ser usado para gerar assinaturas para autenticação em solicitações de API XML do Cloud Storage. Nesta página, você verá como usar o gsutil e as bibliotecas de cliente do Cloud Storage para criar URLs assinados. Os URLs assinados fornecem acesso de leitura ou gravação por tempo limitado a um recurso específico do Cloud Storage. Se quiser criar seu próprio programa para criar URLs assinados, leia Assinatura V4 com seu próprio programa.
Criar um URL assinado para fazer o download de um objeto
Para criar um URL assinado que consiga um objeto de um bucket, conclua as etapas a seguir:
gsutil
Gere uma nova chave privada ou use uma atual de uma conta de serviço. A chave pode estar no formato JSON ou PKCS12.
Para mais informações sobre chaves privadas e contas de serviço, consulte Contas de serviço.
Use o comando
gsutil signurl
, passando o caminho para a chave privada da etapa anterior, bem como o nome do bucket e do objeto.Por exemplo, usando uma chave armazenada na pasta
Desktop
, o comando a seguir gera um URL assinado para que os usuários visualizem o objetocat.jpeg
por 10 minutos.gsutil signurl -d 10m Desktop/private-key.json gs://example-bucket/cat.jpeg
Se bem-sucedida, a resposta será assim:
URL HTTP Method Expiration Signed URL gs://example-bucket/cat.jpeg GET 2018-10-26 15:19:52 https://storage.googleapis. com/example-bucket/cat.jpeg?x-goog-signature=2d2a6f5055eb004b8690b9479883292ae74 50cdc15f17d7f99bc49b916f9e7429106ed7e5858ae6b4ab0bbbdb1a8ccc364dad3a0da2caebd308 87a70c5b2569d089ceb8afbde3eed4dff5116f0db5483998c175980991fe899fbd2cd8cb813b0016 5e8d56e0a8aa7b3d7a12ee1baa8400611040f05b50a1a8eab5ba223fe5375747748de950ec7a4dc5 0f8382a6ffd49941c42498d7daa703d9a414d4475154d0e7edaa92d4f2507d92c1f7e811a7cab64d f68b5df4857589259d8d0bdb5dc752bdf07bd162d98ff2924f2e4a26fa6b3cede73ad5333c47d146 a21c2ab2d97115986a12c28ff37346d6c2ca83e5618ec8ad95632710b489b75c35697d781c38e& x-goog-algorithm=GOOG4-RSA-SHA256&x-goog-credential=example%40example-project. iam.gserviceaccount.com%2F20181026%2Fus%2Fstorage%2Fgoog4_request&x-goog-date= 20201026T211942Z&x-goog-expires=3600&x-goog-signedheaders=host
O URL assinado é a string que começa com
https://storage.googleapis.com
e provavelmente se estenderá por várias linhas. Este URL pode ser usado por qualquer pessoa para acessar o recurso associado (neste caso,cat.jpeg
) no período designado (neste caso, 10 minutos).
Bibliotecas de cliente
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage C++.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage C#.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage Go.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage Java.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage Node.js.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage PHP.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage Python.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage Ruby.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Criar um URL assinado para fazer upload de um objeto
Para criar um URL assinado que possa fazer upload de um objeto para um bucket, conclua as etapas a seguir:
gsutil
Gere uma nova chave privada ou use uma atual de uma conta de serviço. A chave pode estar no formato JSON ou PKCS12.
Para mais informações sobre chaves privadas e contas de serviço, consulte Contas de serviço.
Use
gcloud auth activate-service-account
para autenticar com a conta de serviço:gcloud auth activate-service-account --key-file KEY_FILE_LOCATION/KEY_FILE_NAME
Em que:
KEY_FILE_LOCATION
é o caminho local do arquivo que contém o arquivo com as credenciais da conta de serviço. Por exemplo,Desktop
.KEY_FILE_NAME
é o nome do arquivo que contém as credenciais da conta de serviço. Por exemplo,key.txt
.
Use o comando
gsutil signurl
com a opção-u
para fazer referência às credenciais da conta de serviço.Por exemplo, o comando a seguir cria um URL assinado que permite aos usuários fazer upload de um arquivo de imagem:
gsutil signurl -m PUT -d 1h -c CONTENT_TYPE -u gs://BUCKET_NAME/OBJECT_NAME
Em que:
CONTENT_TYPE
é o tipo de conteúdo do objeto. Por exemplo,image/png
.BUCKET_NAME
é o nome do bucket em que o objeto está sendo enviado. Por exemplo,example-bucket
.OBJECT_NAME
é o nome a ser atribuído ao objeto enviado. Por exemplo,cat.png
.
Se bem-sucedida, a resposta será assim:
URL HTTP Method Expiration Signed URL gs://example-bucket/cat.png PUT 2021-01-09 00:28:11 https://storage.googleapis. com/example-bucket/cat.png?x-goog-signature=2d2a6f5055eb004b8690b9479883292ae74 50cdc15f17d7f99bc49b916f9e7429106ed7e5858ae6b4ab0bbbdb1a8ccc364dad3a0da2caebd308 87a70c5b2569d089ceb8afbde3eed4dff5086f0db5483998c175980991fe899fbd2cd8cb813b0016 5e8d56e0a8aa7b3d7215ee1baa8400611040f05b50a1a8eab5ba223fe1375747748de950ec7i6dc5 0f8382a6ffd4994ac42498d7daa703d9a414d4475154d0e7edaa92d4f2507d92c1f7e8efa7cab64d f68b5df48575b9259d8d0bdb5dc752bdf07bd162d98ff2924f2p4a26fa6b3cede73ad5333c47d146 a21c2ab2d97b15986a12c68ff3734696c2ca83e56b8ec8ad95632710b488b75c35697d781c38e& x-goog-algorithm=GOOG4-RSA-SHA256&x-goog-credential=example%40example-project. iam.gserviceaccount.com%2F20181026%2Fus%2Fstorage%2Fgoog4_request&x-goog-date= 20201026T211942Z&x-goog-expires=3600&x-goog-signedheaders=host
O URL assinado é a string que começa com
https://storage.googleapis.com
e provavelmente se estenderá por várias linhas. Este URL pode ser usado por qualquer pessoa para fazer upload de um recurso (neste caso,cat.png
) ao bucket do Cloud Storage especificado para o período designado (neste caso, 1 hora).
Bibliotecas de cliente
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage C++.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage C#.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage Go.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage Java.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage Node.js.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage PHP.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage Python.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage Ruby.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
A seguir
- Saiba como assinar URLs com seu próprio programa.
- Veja as opções disponíveis para URLs assinados.
- Saiba mais sobre URLs assinado .
- Saiba mais sobre como fazer o upload de um objeto com a API XML.
- Saiba mais sobre o upload de objetos.