Proteger projetos com garantias

Este documento é destinado a proprietários de projetos e administradores de organizações que querem proteger projetos contra exclusão.

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 garantias, peça ao administrador para conceder a você o papel do IAM de Modificador de garantias do 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 garantias. Para acessar as permissões exatas que são necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As permissões a seguir são necessárias para modificar 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.

Colocar 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 para bloquear. 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 indica 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 for omitido.

Listar garantias em um projeto

Para listar todas as garantias 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

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