Esta página mostra como criar, desativar e excluir chaves de código de autenticação de mensagem baseadas em hash (HMAC) associadas a contas de serviço em seu projeto.
Antes de começar
Antes de usar esse recurso no Cloud Storage, você precisa atender aos seguintes requisitos:
Ter permissão suficiente para trabalhar com chaves HMAC no projeto selecionado:
Se você for o proprietário do projeto, provavelmente terá as permissões necessárias.
É preciso ter as permissões do IAM com o prefixo
storage.hmacKeys
para o projeto. Consulte Como usar permissões do IAM para instruções sobre como conseguir um papel (como, por exemplo, Administrador de chaves HMAC do armazenamento) com essas permissões.
Tenha uma conta de serviço no seu projeto para a qual você pretende criar chaves HMAC. Consulte Como criar uma conta de serviço se você não tiver uma.
Ter a restrição
restrictAuthTypes
desativada para a autenticação de chave HMAC. Consulte Como criar e gerenciar políticas da organização para instruções sobre como verificar e desativar a restrição.
Criar uma chave HMAC
A fim de criar uma chave HMAC para uma conta de serviço:
Console
- No Console do Google Cloud, acesse a página Configurações do Cloud Storage.
Selecione a guia Interoperabilidade.
Clique em add_box Criar uma chave para uma conta de serviço.
Selecione a conta de serviço à qual você quer que a chave HMAC seja associada.
Clique em Criar chave.
Para saber como acessar informações detalhadas de erro sobre operações do Cloud Storage com falha no console do Google Cloud, consulte Solução de problemas.
Linha de comando
Use o comando hmac create
:
gcloud storage hmac create SERVICE_ACCOUNT_EMAIL
Em que SERVICE_ACCOUNT_EMAIL
é o endereço
de e-mail associado à conta de serviço. Por exemplo, service-7550275089395@my-pet-project.iam.gserviceaccount.com
.
Se for bem-sucedida, a resposta conterá um recurso de chave HMAC,
incluindo valores para accessId
e secret
.
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.
Terraform
É possível usar um recurso Terraform para criar uma chave HMAC. Essa amostra também inclui um recurso para criar uma conta de serviço.
APIs REST
API JSON
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.Use
cURL
(em inglês) para chamar a API JSON com uma solicitaçãoPOST
hmacKeys:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/projects/PROJECT_IDENTIFIER/hmacKeys?serviceAccountEmail=SERVICE_ACCOUNT_EMAIL"
Em que:
PROJECT_IDENTIFIER
é o ID ou o número do projeto associado à chave que você quer criar; Por exemplo,my-pet-project
.SERVICE_ACCOUNT_EMAIL
é o endereço de e-mail associado à conta de serviço. Por exemplo,service-7550275089395@my-pet-project.iam.gserviceaccount.com
.
API XML
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.Use
cURL
(em inglês) para chamar a API XML com uma solicitação de chave HMACPOST
:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/?Action=CreateAccessKey&UserName=SERVICE_ACCOUNT_EMAIL"
Em que
SERVICE_ACCOUNT_EMAIL
é o endereço de e-mail associado à conta de serviço. Por exemplo,service-7550275089395@my-pet-project.iam.gserviceaccount.com
.
Receber informações de chave HMAC
Para listar as chaves HMAC de um projeto e acessar informações sobre elas:
Console
- No Console do Google Cloud, acesse a página Configurações do Cloud Storage.
Selecione a guia Interoperabilidade.
As contas de serviço que têm chaves HMAC associadas aparecem na subseção Chaves de acesso para contas de serviço da seção HMAC da conta de serviço.
Clique no nome de uma conta de serviço específica para conferir as chaves HMAC associadas a ela e o status delas.
Linha de comando
Use o comando
hmac list
para listar chaves hmac em seu projeto:gcloud storage hmac list
Se bem-sucedido, o comando retornará uma lista de códigos de acesso da chave do hmac com o estado de cada chave e a conta de serviço associada a cada chave.
Use o comando
hmac describe
para recuperar metadados de uma chave específica:gcloud storage hmac describe KEY_ACCESS_ID
em que
KEY_ACCESS_ID
é o ID de acesso da chave pretendida.
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.
A amostra a seguir recupera uma lista de chaves HMAC associadas a um projeto:
A amostra a seguir recupera informações de uma chave HMAC específica:
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.
A amostra a seguir recupera uma lista de chaves HMAC associadas a um projeto:
A amostra a seguir recupera informações de uma chave HMAC específica:
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.
A amostra a seguir recupera uma lista de chaves HMAC associadas a um projeto:
A amostra a seguir recupera informações de uma chave HMAC específica:
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.
A amostra a seguir recupera uma lista de chaves HMAC associadas a um projeto:
A amostra a seguir recupera informações de uma chave HMAC específica:
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.
A amostra a seguir recupera uma lista de chaves HMAC associadas a um projeto:
A amostra a seguir recupera informações de uma chave HMAC específica:
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.
A amostra a seguir recupera uma lista de chaves HMAC associadas a um projeto:
A amostra a seguir recupera informações de uma chave HMAC específica:
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.
A amostra a seguir recupera uma lista de chaves HMAC associadas a um projeto:
A amostra a seguir recupera informações de uma chave HMAC específica:
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 amostra a seguir recupera uma lista de chaves HMAC associadas a um projeto:
A amostra a seguir recupera informações de uma chave HMAC específica:
APIs REST
API JSON
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.Use
cURL
(em inglês) para chamar a API JSON com uma solicitaçãoLIST
hmacKeys:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/projects/PROJECT_IDENTIFIER/hmacKeys"
PROJECT_IDENTIFIER
é o ID ou o número do projeto associado às chaves que você quer listar. Por exemplo,my-pet-project
.
API XML
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.Use
cURL
(em inglês) para chamar a API XML com uma solicitação de chave HMACGET
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/?Action=ListAccessKeys&UserName=SERVICE_ACCOUNT_EMAIL"
Em que
SERVICE_ACCOUNT_EMAIL
é o endereço de e-mail associado à conta de serviço. Por exemplo,service-7550275089395@my-pet-project.iam.gserviceaccount.com
.
Atualizar o estado de uma chave HMAC
Para alternar entre uma chave HMAC ativa e inativa:
Console
- No Console do Google Cloud, acesse a página Configurações do Cloud Storage.
Selecione a guia Interoperabilidade.
Na subseção Chaves de acesso para contas de serviço, clique no nome da conta de serviço associada à chave HMAC com o status que você quer atualizar.
Clique no status da chave que você quer atualizar.
Para alterar o estado da chave de "Inativo" para "Ativo", clique em Desativar na janela exibida.
Para alterar o estado da chave de "Ativo" para "Inativo", nenhuma outra etapa é necessária.
Linha de comando
Use o comando hmac update
:
gcloud storage hmac update ACCESS_KEY_ID STATE
Em que:
ACCESS_KEY_ID
é o ID de acesso associado à chave que você está atualizando.STATE
é--activate
ou--deactivate
.
Se for bem-sucedido, o comando retornará os metadados atualizados da chave HMAC.
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.
A amostra a seguir desativa uma chave HMAC:
A amostra a seguir ativa uma chave HMAC:
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.
A amostra a seguir desativa uma chave HMAC:
A amostra a seguir ativa uma chave HMAC:
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.
A amostra a seguir desativa uma chave HMAC:
A amostra a seguir ativa uma chave HMAC:
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.
A amostra a seguir desativa uma chave HMAC:
A amostra a seguir ativa uma chave HMAC:
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.
A amostra a seguir desativa uma chave HMAC:
A amostra a seguir ativa uma chave HMAC:
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.
A amostra a seguir desativa uma chave HMAC:
A amostra a seguir ativa uma chave HMAC:
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.
A amostra a seguir desativa uma chave HMAC:
A amostra a seguir ativa uma chave HMAC:
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 amostra a seguir desativa uma chave HMAC:
A amostra a seguir ativa uma chave HMAC:
APIs REST
API JSON
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.Crie um arquivo JSON com as informações a seguir:
{"state": "STATE"}
Em que
STATE
é o estado pretendido para a chave. Por exemplo,INACTIVE
.Use
cURL
(em inglês) para chamar a API JSON com uma solicitaçãoPUT
hmacKeys:curl -X PUT --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/projects/PROJECT_IDENTIFIER/hmacKeys/ACCESS_KEY_ID"
Em que:
JSON_FILE_NAME
é o caminho para o arquivo criado na Etapa 2.PROJECT_IDENTIFIER
é o ID ou o número do projeto associado à chave que você quer atualizar. Por exemplo,my-pet-project
.ACCESS_KEY_ID
é o ID de acesso associado à chave que você está atualizando.
API XML
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.Use
cURL
(em inglês) para chamar a API XML com uma solicitação de chave HMACPOST
:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/?Action=UpdateAccessKey&AccessKeyId=ACCESS_KEY_ID&Status=STATUS"
Em que:
ACCESS_KEY_ID
é o ID de acesso associado à chave que você está atualizando.STATUS
é o status pretendido para a chave. Por exemplo,Inactive
.
Ao alterar o estado de uma chave HMAC, a alteração de estado leva até três minutos para ser propagada pelo sistema do Cloud Storage. Por este motivo, é preciso aguardar pelo menos três minutos entre desativar uma chave HMAC e excluir a chave.
Excluir uma chave HMAC
Uma chave HMAC precisa estar inativa para poder ser excluída. Para excluir uma chave HMAC inativa:
Console
- No Console do Google Cloud, acesse a página Configurações do Cloud Storage.
Selecione a guia Interoperabilidade.
Na subseção Chaves de acesso para contas de serviço, clique no nome da conta de serviço associada à chave HMAC que você quer excluir.
Clique no ícone da lixeira associado à chave que você quer excluir.
Na caixa de diálogo exibida, insira os 10 primeiros caracteres do ID da chave de acesso, conforme informados na janela.
Clique em Excluir.
Linha de comando
Use o comando hmac delete
:
gcloud storage hmac delete ACCESS_KEY_ID
Em que ACCESS_KEY_ID
é o ID de acesso associado
à chave que você está excluindo.
Se for bem-sucedido, o comando não retornará uma resposta.
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.
APIs REST
API JSON
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.Use
cURL
(em inglês) para chamar a API JSON com uma solicitaçãoDELETE
hmacKeys:curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/projects/PROJECT_IDENTIFIER/hmacKeys/ACCESS_KEY_ID"
Em que:
PROJECT_IDENTIFIER
é o ID ou o número do projeto associado à chave que você quer excluir. Por exemplo,my-pet-project
.ACCESS_KEY_ID
é o ID de acesso associado à chave que você está excluindo.
API XML
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.Use
cURL
(em inglês) para chamar a API XML com uma solicitação de chave HMACPOST
:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/?Action=DeleteAccessKey&AccessKeyId=ACCESS_KEY_ID"
Em que
ACCESS_KEY_ID
é o ID de acesso associado à chave que você está excluindo.
A seguir
- Siga as diretrizes de migração das chaves HMAC da conta de usuário para as chaves HMAC da conta de serviço.
- Use uma chave HMAC em uma solicitação autenticada.