Control de acceso para proyectos con IAM

Google Cloud ofrece la función de administración de identidades y accesos (IAM), que te permite brindar acceso más detallado a recursos específicos de Google Cloud y evita el acceso no deseado a otros recursos. IAM te permite adoptar el principio de seguridad de menor privilegio, de manera que solo otorgues el acceso necesario a tus recursos.

IAM te permite configurar políticas de IAM específicas que contengan ciertos permisos para controlar quién (usuarios) tiene qué acceso (funciones) a qué recursos.

En esta página, se explican los permisos y funciones de IAM que puedes usar para administrar el acceso a los proyectos. Para ver una descripción detallada de IAM, lee la documentación de IAM. En particular, consulta la sección sobre cómo otorgar, cambiar y revocar el acceso a los recursos.

Permisos y roles

Para controlar el acceso a los recursos, Google Cloud requiere que las cuentas que realizan solicitudes a la API tengan las funciones de IAM adecuadas. Las funciones de IAM incluyen permisos que permiten a los usuarios realizar acciones específicas en los recursos de Google Cloud. Por ejemplo, el permiso resourcemanager.organizations.list permite que un usuario enumere los recursos de su organización, mientras que resourcemanager.projects.delete le permite borrar un proyecto.

No se les otorgan permisos a los usuarios directamente, sino funciones, que incluyen uno o más permisos. Otorgas estas funciones en un recurso en particular, pero también se aplican a todos los descendientes de ese recurso en la jerarquía de recursos.

Permisos

Para administrar proyectos, el emisor debe tener una función que incluya los siguientes permisos. La función se otorga en la carpeta o el recurso de la organización que contiene los proyectos:

Método Permisos necesarios
resourcemanager.projects.create resourcemanager.projects.create
resourcemanager.projects.delete resourcemanager.projects.delete
resourcemanager.projects.get resourcemanager.projects.get
Si otorgas este permiso, también se otorgará acceso para obtener el nombre de la cuenta de facturación asociada con el proyecto mediante el método de API de Billingbilling.projects.getBillingInfo
resourcemanager.projects.getIamPolicy resourcemanager.projects.getIamPolicy
resourcemanager.projects.list resourcemanager.projects.list
resourcemanager.projects.search resourcemanager.projects.get
resourcemanager.projects.setIamPolicy resourcemanager.projects.setIamPolicy
resourcemanager.projects.testIamPermissions No requiere ningún permiso.
resourcemanager.projects.undelete resourcemanager.projects.undelete
resourcemanager.projects.patch Se requiere el permiso resourcemanager.projects.update a fin de actualizar los metadatos de un proyecto. Para actualizar el elemento superior de un proyecto y moverlo a un recurso de organización, se requiere el permiso resourcemanager.projects.create sobre ese recurso.
projects.move projects.move

Usa funciones predefinidas

Las funciones predefinidas de IAM te permiten administrar con cuidado el conjunto de permisos a los que tienen acceso tus usuarios. Para obtener una lista completa de las funciones que se pueden otorgar a nivel de proyecto, consulta Información sobre funciones.

En la siguiente tabla, se enumeran las funciones predefinidas que puedes usar para otorgar acceso a un proyecto. Cada función incluye una descripción de lo que hace y los permisos que incluye.

Rol Permisos

(roles/resourcemanager.projectCreator)

Proporciona acceso para crear proyectos nuevos. Una vez que un usuario crea un proyecto, se le otorga de forma automática la función de propietario para ese proyecto.

resourcemanager.organizations.get

resourcemanager.projects.create

(roles/resourcemanager.projectDeleter)

Proporciona acceso para borrar proyectos de Google Cloud.

resourcemanager.projects.delete

(roles/resourcemanager.projectMover)

Proporciona acceso para actualizar y mover proyectos.

resourcemanager.projects.get

resourcemanager.projects.move

resourcemanager.projects.update

(roles/resourcemanager.projectIamAdmin)

Proporciona permisos para administrar las políticas de permisos en los proyectos.

resourcemanager.projects.get

resourcemanager.projects.getIamPolicy

resourcemanager.projects.setIamPolicy

(roles/browser)

Acceso de lectura para navegar en la jerarquía de un proyecto, incluida la carpeta, la organización y la política de permisos. Este rol no incluye el permiso para ver los recursos del proyecto.

resourcemanager.folders.get

resourcemanager.folders.list

resourcemanager.organizations.get

resourcemanager.projects.get

resourcemanager.projects.getIamPolicy

resourcemanager.projects.list

Funciones básicas

Evita usar funciones básicas, excepto cuando sea absolutamente necesario. Estas funciones son muy potentes y cuentan con una gran cantidad de permisos en todos los servicios de Google Cloud. Para obtener más detalles sobre cuándo debes usar funciones básicas, consulta las Preguntas frecuentes sobre la administración de identidades y accesos.

Rol Descripción Permisos
roles/owner Acceso completo a todos los recursos. Todos los permisos para todos los recursos.
roles/editor Tiene acceso de edición a la mayoría de los recursos. Puede crear y actualizar el acceso de la mayoría de los recursos.
roles/viewer Tiene acceso de lectura a la mayoría de los recursos. Obtén acceso de lista para la mayoría de los recursos.

Crea funciones personalizadas

Además de las funciones predefinidas que se describen en este tema, también puedes crear funciones personalizadas que son colecciones de permisos que adaptas a tus necesidades. Cuando crees una función personalizada para usar con Resource Manager, ten en cuenta los siguientes puntos:
  • Los permisos list y get, como resourcemanager.projects.get/list, siempre se deben otorgar como un par.
  • Cuando tu función personalizada incluye los permisos folders.list y folders.get, también debe incluir projects.list y projects.get.
  • Ten en cuenta que el permiso setIamPolicy para la organización, la carpeta y los recursos del proyecto permite al usuario otorgar todos los demás permisos, por lo que debe asignarse con cuidado.

Control de acceso a nivel de proyecto

Puedes otorgar funciones a los usuarios a nivel de proyecto con Google Cloud Console, la API de Resource Manager y Google Cloud CLI. Para obtener instrucciones, consulta Cómo otorgar, cambiar y revocar el acceso a los recursos.

Funciones predeterminadas

Cuando creas un proyecto, se te otorga la función funciones/propietario para que el proyecto te proporcione control absoluto como creador. Esta función predeterminada se puede cambiar con normalidad en una política de IAM.

Controles del servicio de VPC

Los Controles del servicio de VPC pueden proporcionar seguridad adicional cuando se usa la API de Resource Manager. Para obtener más información sobre los Controles del servicio de VPC, consulta la Descripción general de los Controles del servicio de VPC.

Para obtener información sobre las limitaciones actuales del uso de Resource Manager con los Controles del servicio de VPC, consulta la página sobre los productos admitidos y las limitaciones.