Esta página aborda as chaves do código de autenticação de mensagens baseado em hash (HMAC), que pode usar para autenticar pedidos à API XML do Cloud Storage. As chaves HMAC são úteis quando quer mover dados entre outros fornecedores de armazenamento na nuvem e o Cloud Storage, porque as chaves HMAC permitem reutilizar o seu código existente para aceder ao Cloud Storage.
Vista geral
Uma chave HMAC é um tipo de credencial associada a uma conta, normalmente uma conta de serviço. Usa uma chave HMAC para criar assinaturas com o algoritmo de assinatura HMAC-SHA256. As assinaturas que criar são, em seguida, incluídas em pedidos à API XML do Cloud Storage. As assinaturas mostram que um determinado pedido é autorizado pela conta associada à chave HMAC.
As chaves HMAC têm duas partes principais: um ID de acesso e um segredo.
ID de acesso: uma string alfanumérica associada a uma conta específica.
Quando associada a uma conta de serviço, a string tem 61 carateres.
Quando associada a uma conta de utilizador, a string tem 24 carateres.
Segue-se um exemplo de um ID de acesso:
GOOGTS7C7FUP3AIRVJTE2BCDKINBTES3HC2GY5CBFJDCQ2SYHV6A6XXVTJFSASegredo: uma string codificada em Base64 de 40 carateres que está associada a um ID de acesso específico. Um segredo é uma chave pré-partilhada que apenas o utilizador e o Cloud Storage conhecem. Usa o seu segredo para criar assinaturas como parte do processo de autenticação. Segue-se um exemplo de um segredo:
bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ
O ID de acesso e o segredo identificam exclusivamente uma chave HMAC, mas o segredo é uma informação muito mais sensível, porque é usado para criar assinaturas.
Opcionalmente, pode ativar a restrição restrictAuthTypes num recurso, o que restringe o acesso a pedidos assinados por chaves HMAC.
Armazenar secrets
Quando cria uma chave HMAC para uma conta de serviço, recebe o segredo da chave uma vez. Tem de armazenar o segredo em segurança, juntamente com o ID de acesso associado. Se perder o segredo, não o pode recuperar nem Google Cloud, e tem de criar uma nova chave HMAC para a conta de serviço para continuar a autenticar pedidos.
Para criar uma chave HMAC para uma conta de utilizador, tem de ter sessão iniciada na
Google Cloud consola com a conta de utilizador e aceder ao separador Interoperabilidade
no menu Definições do Cloud Storage de um projeto para o qual
tem a permissão do resourcemanager.projects.get IAM. Depois de criada, pode ver o segredo da chave no separador Interoperabilidade de qualquer projeto para o qual tenha a autorização resourcemanager.projects.get.
Práticas recomendadas para armazenar segredos
Não partilhe o segredo da chave HMAC. Deve tratar os segredos da chave HMAC como trataria qualquer conjunto de credenciais de acesso.
Como prática recomendada de segurança, deve alterar regularmente as suas chaves como parte de uma rotação de chaves.
Se considerar que outra pessoa está a usar as suas chaves HMAC, deve eliminar imediatamente as chaves HMAC afetadas e criar novas.
Quando alterar as chaves HMAC, deve atualizar o seu código com as novas chaves HMAC antes de eliminar as chaves antigas. Quando elimina chaves HMAC, estas tornam-se imediatamente inválidas e não são recuperáveis.
Restrições
As chaves HMAC só podem ser usadas para fazer pedidos à API XML e não à API JSON.
Pode ter um máximo de 10 chaves HMAC por conta de serviço. As chaves eliminadas não são contabilizadas para este limite.
Após a criação, uma chave HMAC de conta de serviço pode demorar até 60 segundos a ficar utilizável. Após eliminar uma conta de serviço, as chaves HMAC que lhe pertencem podem continuar a funcionar durante um máximo de 5 minutos. Por outro lado, as chaves HMAC podem demorar até 5 minutos a ficar novamente utilizáveis depois de anular a eliminação da conta de serviço que as detém.
Se ativar a restrição
restrictAuthTypesnum recurso, deixa de poder criar ou ativar chaves HMAC para o tipo de conta especificado nesse recurso.
Migração das chaves HMAC da conta de utilizador
Geralmente, associar chaves HMAC a contas de serviço é uma melhor opção do que fazê-lo com contas de utilizador, particularmente para cargas de trabalho de produção:
As contas de serviço permitem uma melhor supervisão administrativa e eliminam as implicações de segurança e privacidade das contas detidas por utilizadores individuais.
As contas de serviço reduzem o risco de interrupções de serviço associadas à dependência de contas de utilizador, como quando uma conta de utilizador é desativada porque o utilizador sai do projeto ou da empresa.
Se usa atualmente chaves HMAC com contas de utilizador, mas quer migrar para contas de serviço, tenha em atenção o seguinte:
O seu projeto tem de ter uma conta de serviço e ter uma chave HMAC associada.
A conta de serviço tem de ter as autorizações necessárias para realizar ações no Cloud Storage.
A autorização abrangente para trabalhar com objetos está contida na função
Storage Object Admin, mas pode querer ter contas de serviço separadas para realizar diferentes ações. Por exemplo, pode querer uma conta de serviço para leitura, que teria a funçãoStorage Object Viewer, e uma segunda conta de serviço para escrita, que teria a funçãoStorage Object Creator.Deve testar para se certificar de que a conta de serviço funciona como esperado antes de implementar qualquer atualização na produção.
Depois de a sua produção passar a usar chaves HMAC de contas de serviço, deve verificar a seguinte métrica do Cloud Monitoring para confirmar que as chaves HMAC associadas à conta de utilizador já não estão a ser usadas:
Métrica Descrição storage.googleapis.com/authn/authentication_countO número de vezes que as chaves HMAC foram usadas para autenticar pedidos. Pode definir as seguintes etiquetas para acompanhar as chaves de contas de utilizador que ainda estão em utilização durante o progresso da migração:
access_id: identifica o ID de acesso que fez o pedido. Também pode usaraccess_iddurante uma rotação de chaves para ver o tráfego a mover-se de uma chave para outra.authentication_method: identifica se as chaves são chaves de conta de utilizador ou de conta de serviço.
Depois de verificar que as chaves HMAC da conta de utilizador já não são usadas, deve eliminá-las. Esta ação reduz o risco de acesso a dados inadequados.
Se a conta de utilizador já não for usada para aceder a recursos do Cloud Storage, revogue qualquer acesso ao Cloud Storage que tenha.
Opcionalmente, pode ativar a restrição
restrictAuthTypesnas chaves HMAC da conta de utilizador para uma camada de segurança adicional.