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

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

Funciones obligatorias

A fin de obtener los permisos que necesitas para modificar las retenciones, pídele a tu administrador que te otorgue el rol de IAM Modificador de retención del proyecto (roles/resourcemanager.lienModifier) en los proyectos. Para obtener más información sobre cómo otorgar roles, consulta Administrar el acceso.

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

Permisos necesarios

Se requieren los siguientes permisos para modificar las retenciones:

  • resourcemanager.projects.updateLiens
  • Enumerar las retenciones de un proyecto: resourcemanager.projects.get

Es posible que también puedas obtener estos permisos con funciones personalizadas o con otras funciones predefinidas.

Coloca una retención en un proyecto

Para colocar una retención en un proyecto, usa el comando alpha resource-manager liens create.

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

Reemplaza lo siguiente:

  • [PROJECT_NAME]: Es el nombre del proyecto al que se aplica la retención.
  • [PERMISSION_RESTRICTION]: Es una lista separada por comas de los permisos de IAM que se deben bloquear. La única restricción válida para un proyecto es resourcemanager.projects.delete.
  • [LIEN_REASON]: Es una descripción legible de la razón por la que existe esta retención.
  • [LIEN_ORIGIN]: Es una cadena corta que denota el usuario o el sistema que originó la retención. Es obligatorio, pero este campo se propaga automáticamente con 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 al siguiente:

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 el 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 se borrará, como liens/p1061081023732-l3d8032b3-ea2c-4683-ad48-5ca23ddd00e7.

Referencias

Referencia de la API: Recurso REST: retenciones