Rotação de chave da conta de serviço

Chaves de conta de serviço são chaves privadas que permitem a autenticação como uma conta de serviço. A rotação de chaves é o processo de substituir as chaves existentes por novas e, em seguida, invalidar as chaves substituídas. Recomendamos que você faça a rotação de todas as chaves que gerencia, incluindo as chaves da conta de serviço.

A rotação de chaves da conta de serviço pode ajudar a reduzir o risco representado por chaves vazadas ou roubadas. Se uma chave vazar, pode levar usuários ou pessoas mal-intencionadas a descobrir a chave. Se você alterna regularmente as chaves da sua conta de serviço, há uma chance maior de que as chaves com vazamento sejam inválidas no momento em que um usuário de má-fé as receber.

Ter um processo estabelecido para alternar as chaves da conta de serviço também ajuda a agir rapidamente caso você suspeite que uma chave da conta de serviço foi comprometida.

Com que frequência fazer a rotação de chaves

Recomendamos a rotação das chaves pelo menos a cada 90 dias para reduzir o risco gerado por elas.

Se você acredita que uma chave de conta de serviço foi comprometida, recomendamos que ela seja alternada imediatamente.

Processo de rotação de chaves

Para alternar as chaves da conta de serviço, faça o seguinte:

  1. Identifique as chaves da conta de serviço que precisam ser rotacionadas.
  2. Crie novas chaves para as mesmas contas de serviço.
  3. Substitua as chaves existentes pelas novas em todos os aplicativos.
  4. Desative as chaves substituídas e monitore os aplicativos para confirmar se eles funcionam como esperado.
  5. Exclua as chaves da conta de serviço que foram substituídas.

É possível concluir essas etapas usando um serviço centralizado de gerenciamento de secrets ou um sistema de notificação personalizado.

Serviço de gerenciamento de segredo centralizado

Muitos serviços de gerenciamento de secrets centralizados, como o HashiCorp Vault, oferecem rotação automática de secrets. É possível usar esses serviços para armazenar e alternar as chaves da conta de serviço.

Não recomendamos o uso do Secret Manager do Google Cloud para armazenar e alternar chaves de conta de serviço. Isso ocorre porque, para acessar os secrets do Secret Manager, seu aplicativo precisa de uma identidade que o Google Cloud possa reconhecer. Se o aplicativo já tiver uma identidade que o Google Cloud possa reconhecer, ele poderá usar essa identidade para se autenticar no Google Cloud em vez de usar uma chave de conta de serviço.

O mesmo conceito se aplica a outros serviços de gerenciamento de chaves secretas baseados em nuvem, como o Azure KeyVault e o Secret Manager da AWS. Se um aplicativo já tiver uma identidade que esses provedores de nuvem possam reconhecer, será possível usá-la para autenticar no Google Cloud em vez de usar uma chave de conta de serviço.

Sistema de notificação personalizado

Outra abordagem para a rotação de chaves da conta de serviço é criar um sistema que envia notificações quando as chaves precisam ser giradas. Por exemplo, é possível criar um sistema que envia alertas quando detecta chaves que foram criadas há mais de 90 dias.

Primeiro, você precisa identificar as chaves que precisam ser giradas. Para identificar essas chaves, recomendamos usar o Cloud Asset Inventory para pesquisar todas as chaves da conta de serviço que foram criadas antes de um certo tempo.

Por exemplo, o comando a seguir lista todas as chaves de conta de serviço que foram criadas antes de 2023-03-10 00:00:00 UTC na organização com o ID 123456789012:

gcloud asset search-all-resources \
    --scope="organizations/123456789012" \
    --query="createTime < 2023-03-10" \
    --asset-types="iam.googleapis.com/ServiceAccountKey" \
    --order-by="createTime"

Para saber mais sobre como pesquisar recursos no Cloud Asset Inventory, consulte Como pesquisar recursos. Depois de identificar as chaves que precisam ser giradas, envie notificações para as equipes apropriadas.

Quando alguém é notificado para fazer a rotação de uma chave, essa pessoa deve:

  1. Crie uma nova chave para a mesma conta de serviço.
  2. Substitua a chave existente pela nova em todos os aplicativos.
  3. Desative a chave que ela substituiu e monitore os aplicativos para confirmar se eles funcionam conforme o esperado.
  4. Depois que eles confirmarem que os aplicativos estão funcionando conforme o esperado, exclua a chave substituída.

Chaves da conta de serviço prestes a expirar

Não recomendamos o uso de chaves de contas de serviço expiradas para a rotação de chaves. Isso ocorre porque as chaves expiradas podem causar interrupções se não forem alternadas corretamente. Para mais informações sobre os casos de uso de chaves de conta de serviço expiradas, consulte prazo de validade para chaves gerenciadas pelo usuário.

A seguir