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.

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