Control de acceso a carpetas con gestión de identidades y accesos

Google Cloud ofrece Gestión de Identidades y Accesos (IAM), que te permite dar un acceso más granular a recursos Google Cloud específicos y evitar el acceso no deseado a otros recursos. IAM te permite adoptar el principio de seguridad de mínimos accesos, de forma que solo concedas el acceso necesario a tus recursos.

La gestión de identidades y accesos te permite controlar quién (usuarios) tiene qué acceso (roles) a qué recursos configurando políticas de permiso. Las políticas de permitir conceden roles específicos a un usuario, lo que le otorga determinados permisos.

En esta página se explican los roles de gestión de identidades y accesos (IAM) disponibles a nivel de carpeta y cómo crear y gestionar políticas de permisos para carpetas mediante la API Cloud Resource Manager. Para obtener más información, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

.

Descripción general de los roles de gestión de identidades y accesos para carpetas

Para ayudarte a configurar tus roles de gestión de identidades y accesos, en la siguiente tabla se indican:

  • El tipo de acciones que quieras habilitar
  • Los roles necesarios para realizar esas acciones
  • El nivel de recurso en el que debes aplicar esos roles
Tipos de acciones Roles necesarios Nivel de recurso
Administrar carpetas en el recurso de organización Administrador de carpetas Recurso de organización
Administrar una carpeta y todos los proyectos y carpetas que contiene Administrador de carpetas Carpeta específica
Acceder y administrar las políticas de permiso de una carpeta Administrador de gestión de identidades y accesos de carpetas Carpeta específica
Crear carpetas Creador de la carpeta Recurso principal de la ubicación de las nuevas carpetas
Mover carpetas y proyectos Trasladador de carpetas Recurso principal de la ubicación de la carpeta original y de la nueva ubicación de la carpeta.
Mover un proyecto a una carpeta nueva Editor del proyecto o propietario del proyecto Recurso superior de la ubicación del proyecto original y de la nueva ubicación del proyecto
Eliminar una carpeta Editor de carpetas o Administrador de carpetas Carpeta específica

Prácticas recomendadas para usar roles y permisos de gestión de identidades y accesos con carpetas

Cuando asignes roles y permisos de gestión de identidades y accesos para usar con carpetas, ten en cuenta lo siguiente:

  • Usa grupos siempre que sea posible para gestionar las entidades.
  • Minimiza el uso de roles básicos, como propietario, editor y lector. En su lugar, intenta usar los roles predefinidos para aplicar el principio de privilegio mínimo.
  • Para gestionar los permisos de toda una carpeta, asígnalos a nivel de carpeta y haz que los proyectos los hereden automáticamente. Por ejemplo, puedes asignar el rol Administrador de carpetas a un grupo de administradores de departamento en la carpeta. Los administradores de red que necesiten tener permisos en todo el departamento pueden tener el rol Administrador de red en la carpeta.
  • Piensa detenidamente qué permisos pueden cambiar antes de sacar un recurso de una carpeta. De lo contrario, podrías correr el riesgo de que las aplicaciones o los flujos de trabajo que requieran esos permisos en ese recurso dejen de funcionar.
  • Planifica y prueba cuidadosamente tu jerarquía de recursos antes de mover proyectos de producción a carpetas. Una forma de hacerlo es crear una carpeta de prueba en el recurso de tu organización y crear un prototipo de la jerarquía que quieres usar.
  • Si asignas un rol a un usuario a nivel de carpeta, el usuario tendrá ese rol en todos los recursos de esa carpeta. Por ejemplo, si asignas el rol Administrador de Compute (roles/compute.admin) a un usuario en una carpeta, ese usuario tendrá control total sobre todos los recursos de Compute Engine de todos los proyectos de esa carpeta.

Información sobre los roles y permisos de las carpetas

Roles predeterminados

Cuando creas una carpeta, se te asignan los roles Administrador de la carpeta y Editor de la carpeta para que tengas control total como creador. A continuación, se indican los permisos que proporcionan estos roles. Estos roles predeterminados se pueden cambiar de forma habitual en una política de permiso.

Usar roles predefinidos

Rol Permisos

(roles/resourcemanager.folderAdmin)

Proporciona todos los permisos disponibles para trabajar con carpetas.

Recursos de nivel más bajo en los que puedes asignar este rol:

  • Carpeta

essentialcontacts.*

  • essentialcontacts.contacts.create
  • essentialcontacts.contacts.delete
  • essentialcontacts.contacts.get
  • essentialcontacts.contacts.list
  • essentialcontacts.contacts.send
  • essentialcontacts.contacts.update

iam.policybindings.*

  • iam.policybindings.get
  • iam.policybindings.list

orgpolicy.constraints.list

orgpolicy.policies.list

orgpolicy.policy.get

resourcemanager.capabilities.*

  • resourcemanager.capabilities.get
  • resourcemanager.capabilities.update

resourcemanager.folders.*

  • resourcemanager.folders.create
  • resourcemanager.folders.createPolicyBinding
  • resourcemanager.folders.delete
  • resourcemanager.folders.deletePolicyBinding
  • resourcemanager.folders.get
  • resourcemanager.folders.getIamPolicy
  • resourcemanager.folders.list
  • resourcemanager.folders.move
  • resourcemanager.folders.searchPolicyBindings
  • resourcemanager.folders.setIamPolicy
  • resourcemanager.folders.undelete
  • resourcemanager.folders.update
  • resourcemanager.folders.updatePolicyBinding

resourcemanager.hierarchyNodes.*

  • resourcemanager.hierarchyNodes.createTagBinding
  • resourcemanager.hierarchyNodes.deleteTagBinding
  • resourcemanager.hierarchyNodes.listEffectiveTags
  • resourcemanager.hierarchyNodes.listTagBindings

resourcemanager.projects.createPolicyBinding

resourcemanager.projects.deletePolicyBinding

resourcemanager.projects.get

resourcemanager.projects.getIamPolicy

resourcemanager.projects.list

resourcemanager.projects.move

resourcemanager.projects.searchPolicyBindings

resourcemanager.projects.setIamPolicy

resourcemanager.projects.updatePolicyBinding

(roles/resourcemanager.folderIamAdmin)

Proporciona permisos para administrar las políticas de permiso en carpetas.

Recursos de nivel más bajo en los que puedes asignar este rol:

  • Carpeta

iam.policybindings.*

  • iam.policybindings.get
  • iam.policybindings.list

resourcemanager.folders.createPolicyBinding

resourcemanager.folders.deletePolicyBinding

resourcemanager.folders.get

resourcemanager.folders.getIamPolicy

resourcemanager.folders.searchPolicyBindings

resourcemanager.folders.setIamPolicy

resourcemanager.folders.updatePolicyBinding

(roles/resourcemanager.folderCreator)

Proporciona los permisos necesarios para explorar la jerarquía y crear carpetas.

Recursos de nivel más bajo en los que puedes asignar este rol:

  • Carpeta

essentialcontacts.contacts.get

essentialcontacts.contacts.list

orgpolicy.constraints.list

orgpolicy.policies.list

orgpolicy.policy.get

resourcemanager.capabilities.get

resourcemanager.folders.create

resourcemanager.folders.get

resourcemanager.folders.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/resourcemanager.folderEditor)

Proporciona permiso para modificar carpetas, así como para ver la política de permisos de una carpeta.

Recursos de nivel más bajo en los que puedes asignar este rol:

  • Carpeta

essentialcontacts.contacts.get

essentialcontacts.contacts.list

orgpolicy.constraints.list

orgpolicy.policies.list

orgpolicy.policy.get

resourcemanager.capabilities.*

  • resourcemanager.capabilities.get
  • resourcemanager.capabilities.update

resourcemanager.folders.delete

resourcemanager.folders.get

resourcemanager.folders.getIamPolicy

resourcemanager.folders.list

resourcemanager.folders.searchPolicyBindings

resourcemanager.folders.undelete

resourcemanager.folders.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/resourcemanager.folderMover)

Proporciona permiso para mover proyectos y carpetas a una organización o carpeta principal, y viceversa.

Recursos de nivel más bajo en los que puedes asignar este rol:

  • Carpeta

resourcemanager.folders.move

resourcemanager.projects.move

(roles/resourcemanager.folderViewer)

Proporciona permiso para obtener una carpeta y enumerar las carpetas y los proyectos que hay debajo de un recurso.

Recursos de nivel más bajo en los que puedes asignar este rol:

  • Carpeta

essentialcontacts.contacts.get

essentialcontacts.contacts.list

orgpolicy.constraints.list

orgpolicy.policies.list

orgpolicy.policy.get

resourcemanager.capabilities.get

resourcemanager.folders.get

resourcemanager.folders.list

resourcemanager.projects.get

resourcemanager.projects.list

Crear roles personalizados

Además de los roles predefinidos que se describen en este tema, también puedes crear roles personalizados, que son conjuntos de permisos que puedes adaptar a tus necesidades. Cuando crees un rol personalizado para usarlo con Resource Manager, ten en cuenta lo siguiente:
  • Los permisos de lista y de obtención, como resourcemanager.projects.get/list, siempre deben concederse como un par.
  • Si tu rol personalizado 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 los recursos de organización, carpeta y proyecto permite al usuario conceder todos los demás permisos, por lo que debe asignarse con cuidado.

Conceder roles para habilitar la exploración de carpetas

Los permisos de lista permiten explorar carpetas. Los dos tipos de permisos de lista que se suelen conceder son resourcemanager.folders.list, que permite a los usuarios mostrar las carpetas de un recurso, y resourcemanager.projects.list, que permite a los usuarios buscar proyectos en un recurso de organización o en una carpeta. El administrador de la organización se inicializa con ambos permisos. En el caso de los usuarios a los que no se les ha asignado el rol Administrador de la organización:

  • resourcemanager.folders.list se puede conceder mediante los roles Lector de carpetas y Editor de carpetas.
  • resourcemanager.projects.list se puede conceder a través de los roles Lector o Navegador.

Para que las principales de recursos de la organización puedan consultar toda la jerarquía de recursos de la organización, se deben conceder permisos de lista a nivel de recurso de la organización.

Conceder roles para habilitar la creación de carpetas

Los usuarios que necesiten crear carpetas deben tener el rol Creador de carpetas en un recurso de la jerarquía superior al nivel en el que se creará la carpeta. Puede ser útil conceder permisos de navegación junto con los permisos de creación de carpetas para que los usuarios puedan desplazarse de forma eficaz a la ubicación de la jerarquía en la que se creará la carpeta. Consulta la sección anterior para obtener más información sobre los permisos de navegación.

El rol Creador de carpetas no concede permiso a un usuario para eliminar una carpeta. Sin embargo, cuando una persona crea una carpeta, se le asigna automáticamente el rol Editor de carpeta. El rol Editor de carpetas permite eliminar carpetas.

Conceder roles para habilitar el movimiento de carpetas

Para mover una carpeta de un recurso superior a otro, los usuarios deben tener el rol Mover carpetas en ambos recursos superiores (el antiguo y el nuevo) o en un ancestro común.

Conceder roles para habilitar el movimiento de proyectos

Para mover un proyecto a una carpeta, los usuarios deben tener los roles Editor de proyectos o Propietario del proyecto en el proyecto y el rol Trasladador de proyectos en los recursos principales de origen y de destino.

Estos requisitos son ligeramente diferentes de los necesarios para mover un proyecto que no es propiedad de una organización al recurso de organización, en el que los usuarios deben tener el rol Editor de proyectos o Propietario de proyectos en el proyecto y el rol Creador de proyectos en el recurso de organización.

Conceder roles específicos de carpetas para habilitar la creación de proyectos

Para crear proyectos, los usuarios deben tener el rol Creador del proyecto. Sin embargo, en lugar de conceder permiso para crear proyectos en toda la organización, puede ser útil restringir a los usuarios para que solo puedan ver y crear proyectos en una carpeta determinada.

Para conceder permisos específicos de una carpeta, sigue estos pasos:

  1. Asigna al usuario el rol Lector de la organización a nivel del nodo de organización (por ejemplo, dominio.com).
  2. Crea una carpeta.
  3. Añade el usuario a IAM a nivel de carpeta y concédele los roles Lector de carpetas y Creador de proyectos.

De esta forma, el usuario puede crear proyectos en su carpeta sin tener visibilidad de todos los proyectos del recurso de organización.