Protege los proyectos con retenciones

Este documento est� destinado a propietarios del proyecto y a administradores de la organizaci�n que deseen agregar protecciones contra la eliminaci�n de proyectos.

Puedes colocar una retenci�n en un proyecto para bloquear su eliminaci�n hasta que quites la retenci�n. Esto puede ser �til a fin de proteger proyectos de gran importancia.

Las retenciones tambi�n se pueden implementar autom�ticamente en un proyecto. Por ejemplo, si permites que las cuentas de servicio de administraci�n de identidades y accesos (IAM) de un proyecto se vinculen a los recursos de otros proyectos, se implementar� una retenci�n en el proyecto donde se ubican las cuentas de servicio.

Antes de comenzar

La CLI de gcloud es la forma m�s f�cil de interactuar con las retenciones del proyecto. Si no lo tienes instalado, puedes usar Google Cloud�Shell

Roles obligatorios

A fin de obtener los permisos que necesitas para modificar las retenciones, haz lo siguiente: solicita a tu administrador que te otorgue el Rol de IAM del modificador de retenci�n de proyecto (roles/resourcemanager.lienModifier) en los proyectos. Para obtener m�s informaci�n sobre c�mo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene los permisos necesarios para modificar retenciones. Para ver los permisos exactos que son necesarios, expande la secci�n Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para modificar retenciones:

  • resourcemanager.projects.updateLiens
  • Enumera retenciones en un proyecto: resourcemanager.projects.get

Tambi�n puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Coloca una retenci�n en un proyecto

Para colocar una retenci�n en un proyecto, usa alpha resource-manager liens create. kubectl.

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

Reemplaza lo siguiente:

  • [PROJECT_ID]: Es el ID del proyecto al que se aplica la retenci�n.
  • [PERMISSION_RESTRICTION]: Lista de elementos separados por comas Permisos de IAM que se deben bloquear. La �nica restricci�n v�lida para un proyecto es resourcemanager.projects.delete.
  • [LIEN_REASON]: Una descripci�n legible por humanos de por qu� esta retenci�n existe. Coloca esta descripci�n entre comillas dobles. Ejemplo: "This project is protected by a lien".
  • [LIEN_ORIGIN]: Es una cadena que indica al usuario o sistema que origin� la retenci�n. Es un campo obligatorio, pero se completa autom�ticamente la direcci�n de correo electr�nico del usuario si se omite.

Crea una lista de retenciones de un proyecto

Para enumerar todas las retenciones que se aplicaron a un proyecto, usa el Comando alpha resource-manager liens list.

gcloud alpha resource-manager liens list

El resultado es similar a este:

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

Quita las retenciones de un proyecto

Para quitar una retenci�n de un proyecto, usa Comando alpha resource-manager liens delete.

gcloud alpha resource-manager liens delete [LIEN_NAME]

Reemplaza [LIEN_NAME] por el nombre de la retenci�n que deseas borrar. como liens/p1061081023732-l3d8032b3-ea2c-4683-ad48-5ca23ddd00e7.

Referencias

Referencia de la API: Recurso REST: retenciones