Control de acceso para proyectos con la IAM

Google Cloud Platform ofrece IAM (administración de identidades y accesos), que te permite brindar un acceso más detallado a los recursos específicos de Google Cloud Platform 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 para controlar quién (usuarios) tiene qué acceso (funciones) a qué recursos. Las políticas de IAM asignan funciones específicas a un usuario, lo que le otorga ciertos permisos.

En esta página, se explican las funciones de administración de identidades y accesos (IAM) que están disponibles a nivel de proyecto. Para obtener una descripción detallada de Cloud IAM, consulta la documentación de IAM. En particular, consulta Cómo otorgar, cambiar y revocar el acceso.

Permisos y funciones

Con Cloud IAM, todos los métodos de Google Cloud Platform requieren que la cuenta que realiza la solicitud a la API tenga los permisos apropiados para acceder al recurso. Los permisos se usan para permitir a los usuarios realizar acciones específicas en los recursos de Cloud. Por ejemplo, el permiso resourcemanager.projects.list permite que un usuario enumere los proyectos que posee, mientras que resourcemanager.projects.delete le permite borrar un proyecto.

En la tabla siguiente, se enumeran los permisos que debe tener el emisor para llamar a una API de proyectos:

Método Permisos necesarios
resourcemanager.projects.create() resourcemanager.projects.create
resourcemanager.projects.delete() resourcemanager.projects.delete
resourcemanager.projects.get() resourcemanager.projects.get
resourcemanager.projects.getIamPolicy() resourcemanager.projects.getIamPolicy
resourcemanager.projects.list() No requiere ningún permiso. El método muestra una lista de proyectos para los que el emisor que tiene el permiso resourcemanager.projects.get. Si proporcionas un filtro cuando llamas a list(), por ejemplo, byParent, el método muestra una lista de los proyectos para los que tienes el permiso resourcemanager.projects.get y que cumplen la condición del filtro.
resourcemanager.projects.setIamPolicy() resourcemanager.projects.setIamPolicy
resourcemanager.projects.testIamPermissions() Does not require any permission.
resourcemanager.projects.undelete() resourcemanager.projects.undelete
resourcemanager.projects.update() Se requiere el permiso resourcemanager.projects.update a fin de actualizar los metadatos de un proyecto. Se requiere el permiso resourcemanager.projects.create en la organización para actualizar el elemento superior de un proyecto y trasladar el proyecto a una organización.

No se otorgan permisos a los usuarios directamente, sino funciones, que incluyen uno o más permisos.

Se pueden otorgar uno o más funciones en el mismo proyecto. Cuando se usa el método resourcemanager.projects.getIamPolicy() para permisos de lectura, solo aparecerán los permisos que se asignaron al proyecto, no los permisos heredados.

Usa funciones predefinidas

En la siguiente tabla, se enumeran las funciones que puedes otorgar para acceder a un proyecto, la descripción de lo que realizan y los permisos agrupados dentro de esas funciones.

Función Descripción Permisos
roles/owner Acceso completo a todos los recursos. Todos los permisos para todos los recursos.
roles/editor Edita el acceso a todos los recursos. Acceso para crear y actualizar todos los recursos.
roles/viewer Acceso de lectura a todos los recursos. Obtén y crea una lista de los accesos para todos los recursos.
roles/browserBetaAcceso para buscar recursos en el proyecto.
  • resourcemanager.organizations.get
  • resourcemanager.projects.get
  • resourcemanager.projects.getIamPolicy
  • resourcemanager.projects.list
  • resourcemanager.projectInvites.get

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 se adaptan a tus necesidades. Cuando se crea una función personalizada para usar con Resource Manager, presta atención a los puntos siguientes:
  • 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 organizaciones, carpetas y proyectos permite al usuario otorgar todos los demás permisos, por lo que debe asignarse con cuidado.

Control de acceso a nivel de proyecto

Se pueden otorgar funciones a los usuarios a nivel de proyecto con Google Cloud Console, la API de Resource Manager y la herramienta de línea de comandos de gcloud. Para obtener instrucciones, consulta cómo otorgar, cambiar y revocar el acceso a los miembros del proyecto.

Funciones predeterminadas

Cuando creas un proyecto, se te otorga la función funciones/propietario para que el proyecto te proporcione control absoluto como creador. Consulta las secciones anteriores para obtener los permisos que proporciona esta función. Esta función predeterminada se puede cambiar a normal en una política de Cloud 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.

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación de Resource Manager