Como proteger projetos usando garantias

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.

Antes de começar

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

Funções exigidas

Para receber as permissões necessárias para modificar as garantias, peça ao administrador para conceder a você o papel do IAM de Modificador de garantia de projeto (roles/resourcemanager.lienModifier) nos projetos. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esse papel predefinido contém as permissões necessárias para modificar ônus. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para modificar as garantias:

  • resourcemanager.projects.updateLiens
  • Listar garantias em um projeto: resourcemanager.projects.get

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Como aplicar uma garantia em um projeto

Para colocar uma garantia em um projeto, use o comando alpha resource-manager liens create.

gcloud alpha resource-manager liens create \
  --project=[PROJECT_ID] \
  --restrictions=[PERMISSION_RESTRICTION] \
  --reason=[LIEN_REASON] \
  --origin=[LIEN_ORIGIN]

Substitua:

  • [PROJECT_ID]: ID do projeto a que a garantia se aplica.
  • [PERMISSION_RESTRICTION]: lista separada por vírgulas de permissões do IAM a serem bloqueadas. A única restrição válida para um projeto é resourcemanager.projects.delete.
  • [LIEN_REASON]: descrição legível que explica o motivo da garantia. Coloque essa descrição entre aspas duplas. Exemplo: "This project is protected by a lien".
  • [LIEN_ORIGIN]: string que denota o usuário ou sistema que originou a garantia. É um campo obrigatório, mas é preenchido automaticamente com o endereço de e-mail do usuário se omitido.

Como listar as garantias de um projeto

Para listar todas as garantias reais aplicadas a um projeto, use o comando alpha resource-manager liens list.

gcloud alpha resource-manager liens list

O resultado será assim:

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, use o comando alpha resource-manager liens delete.

gcloud alpha resource-manager liens delete [LIEN_NAME]

Substitua [LIEN_NAME] pelo nome da garantia a ser excluída, como p1061081023732-l3d8032b3-ea2c-4683-ad48-5ca23ddd00e7.

Referências

Referência da API: Recurso REST: garantias