Como usar garantias para evitar a exclusão acidental de projetos

Este documento destina-se a Proprietários de projetos e Administradores de organizações que queiram adicionar mecanismos de proteção contra a exclusão de projetos.

Adicione uma garantia a um projeto para bloquear a exclusão dele. Ele só poderá ser excluído após a remoção da garantia. Isso é útil para proteger projetos muito importantes.

As garantias também podem ser colocadas em um projeto automaticamente. Por exemplo, se você permitir que as contas de serviço do Identity and Access Management (IAM) de um projeto sejam anexados a recursos em outros projetos, uma garantia será aplicada ao projeto. onde as contas de serviço estão localizadas.

A ferramenta de linha de comando gcloud é a maneira mais fácil de interagir com as garantias do projeto. Se você não tiver essa ferramenta instalada, use o Google Cloud Shell.

Como aplicar uma garantia em um projeto

Para colocar uma garantia em um projeto, um usuário deve ter a permissão resourcemanager.projects.updateLiens concedida pelos papéis roles/owner e roles/resourcemanager.lienModifier.

gcloud alpha resource-manager liens create \
  --restrictions=resourcemanager.projects.delete \
  --reason="Super important production system"

Os parâmetros disponíveis para liens create são:

  • --project - o projeto a que a garantia se aplica.
  • --restrictions - uma lista separada por vírgulas com permissões do IAM para bloquear.
  • --reason - uma descrição legível que explica o porquê da garantia.
  • --origin - uma string curta indicando o usuário/sistema que originou a garantia. Ela é obrigatória, mas a ferramenta gcloud a preenche automaticamente com o endereço de e-mail do usuário se não for preenchida.

No momento, a única restrição válida para projetos é resourcemanager.projects.delete.

Como listar as garantias de um projeto

Para listar garantias aplicadas a um projeto, um usuário deve ter a permissão resourcemanager.projects.get. Use o comando gcloud liens list.

gcloud alpha resource-manager liens list

Veja um exemplo de saída desse comando:

gcloud alpha resource-manager liens list
NAME                                                  ORIGIN            REASON
p1061081023732-l3d8032b3-ea2c-4683-ad48-5ca23ddd00e7  user@example.com  testing

Como remover garantias de um projeto

Para remover uma garantia de um projeto, um usuário deve ter a permissão resourcemanager.projects.updateLiens concedida por roles/owner e roles/resourcemanager.lienModifier.

gcloud alpha resource-manager liens delete [LIEN_NAME]

onde:

  • [LIEN_NAME] é o nome da garantia a ser excluída.

Referências

Referência da API: Recurso REST: garantias