Control de acceso para carpetas con la IAM

Puedes usar roles de Identity and Access Management (IAM) a nivel de la carpeta para administrar el acceso en grupos de proyectos y recursos. Los roles a nivel de carpeta te ayudan a aplicar el principio de privilegio mínimo en toda tu jerarquía de recursos cuando vinculas roles a principales en políticas de permiso.

Usa la API de Cloud Resource Manager para crear y administrar políticas de permisos, o aplica políticas de denegación para bloquear de forma explícita permisos específicos. Para configurar un entorno nuevo y otorgar acceso inicial, sigue la lista de tareas de configuración deCloud de Confiance by S3NS . Para administrar el acceso continuo, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Descripción general de las funciones de IAM para las carpetas

Para ayudarte a configurar las funciones de IAM, se enumeran las siguientes tablas:

  • El tipo de acciones que quieres habilitar.
  • Los roles necesarios para realizar esas acciones.
  • El nivel de recurso en el que debes aplicar esos roles.
Tipo de acciones Funciones necesarias Nivel de recursos
Administra carpetas en todo 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 carpeta Carpeta específica
Accede a las políticas de permisos de una carpeta y las administra. Administrador de IAM de carpeta Carpeta específica
Crear carpetas nuevas Creador de la carpeta Recurso principal para la ubicación de las carpetas nuevas
Mover carpetas y proyectos Encargado de transferencia de la carpeta Recurso principal para la ubicación de la carpeta original y la ubicación de la carpeta nueva
Mover un proyecto a una carpeta nueva Editor del proyecto o Propietario del proyecto Recurso principal para la ubicación del proyecto original y la ubicación del proyecto nuevo
Borrar una carpeta Editor de carpetas o Administrador de carpetas Carpeta específica

Prácticas recomendadas para usar funciones y permisos de IAM con carpetas

Cuando asignas funciones y permisos de IAM para usar con carpetas, ten en cuenta lo siguiente:

  • Siempre que sea posible, usa grupos para administrar principales.
  • Minimiza el uso de funciones básicas, como el propietario, el editor y el visualizador. En su lugar, intenta usar los roles predefinidos para el principio de privilegio mínimo.
  • Para la administración de toda la carpeta, asigna permisos a nivel de carpeta y haz que los proyectos los hereden de forma automática. Por ejemplo, puedes asignar la función Administrador de carpetas en la carpeta a un grupo de administradores de departamentos. Los administradores de red que necesitan tener permisos en todo el departamento pueden tener la función Administrador de red para la carpeta.
  • Considera con cuidado qué permisos pueden cambiar antes de mover un recurso fuera de una carpeta. De lo contrario, puedes correr el riesgo de romper las apps o los flujos de trabajo existentes que requieran esos permisos en ese recurso.
  • Planifica y prueba tu jerarquía de recursos con cuidado antes de mover los proyectos de producción a carpetas. Una forma de hacerlo es crear una carpeta de prueba en el recurso de tu organización y un prototipo de la jerarquía que deseas con anticipación.
  • Otorgar una función a un usuario en el nivel de carpeta también otorgará al usuario esa función para cada recurso en esa carpeta. Por ejemplo, si otorgas a un usuario la función Administrador de Compute (roles/compute.admin) en una carpeta, ese usuario tendrá el control total de todos los recursos de Compute Engine en cada proyecto en esa carpeta.

Comprende los roles y permisos de las carpetas

Las carpetas actúan como límites administrativos dentro de tu organización, lo que te permite agrupar proyectos y aplicar políticas a gran escala. El acceso a estas carpetas se administra a través de una combinación de permisos heredados de la organización y roles otorgados directamente a nivel de la carpeta.

Funciones predeterminadas

Cuando creas una carpeta, se te otorgan los roles de Administrador de carpetas y Editor de carpetas, que proporcionan control total. Consulta la siguiente tabla para conocer los permisos que proporcionan estos roles. Puedes cambiar estos roles predeterminados en una política de permisos.

Usa 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 otorgar esta función:

  • 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 permisos en las carpetas.

Recursos de nivel más bajo en los que puedes otorgar 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 navegar por la jerarquía y crear carpetas.

Recursos de nivel más bajo en los que puedes otorgar esta función:

  • 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 y ver la política de permisos de una carpeta.

Recursos de nivel más bajo en los que puedes otorgar 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 permisos para mover proyectos y carpetas dentro de una organización o carpeta superior y fuera de ellas.

Recursos de nivel más bajo en los que puedes otorgar esta función:

  • Carpeta

resourcemanager.folders.move

resourcemanager.projects.move

(roles/resourcemanager.folderViewer)

Proporciona permiso para obtener una carpeta y enumerar proyectos y carpetas de un recurso.

Recursos de nivel más bajo en los que puedes otorgar esta función:

  • 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

Crea funciones personalizadas

Además de los roles predefinidos que se describen en este tema, también puedes crear roles personalizados, que son colecciones de permisos que adaptas a tus necesidades. Cuando crees un rol personalizado para usarlo 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 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 que el usuario otorgue todos los demás permisos, por lo que se debe asignar con cuidado.

Otorga roles para habilitar la exploración de carpetas

Los permisos list permiten la exploración de carpetas. Los dos tipos de permisos de lista que suelen otorgarse son resourcemanager.folders.list, que permite a los usuarios enumerar carpetas en un recurso, y resourcemanager.projects.list, que permite a los usuarios explorar proyectos en un recurso o una carpeta de organización. El administrador de la organización se inicializa con ambos permisos. Los usuarios a los que no se les asignó la función Administrador de la organización, pueden hacer lo siguiente:

  • resourcemanager.folders.list se puede otorgar con los roles de visualizador de carpetas y editor de carpetas.
  • resourcemanager.projects.list se puede otorgar con los roles de visualizador o navegador.

Para que los principales de recursos de la organización exploren toda la jerarquía de recursos de la organización, se deben otorgar permisos de lista a nivel de recurso de la organización.

Otorga roles para habilitar la creación de carpetas

A los usuarios que necesitan crear carpetas se les debe asignar la función Creador de carpetas en un recurso de la jerarquía por encima del nivel en el que se creará la carpeta. Puede ser útil otorgar permisos de navegación junto con permisos de creación de carpetas para que los usuarios puedan navegar efectivamente hacia el lugar de la jerarquía en el que se creará la carpeta. Consulta la sección anterior para obtener más información sobre los permisos de navegación.

El Creador de carpetas no otorga permisos a un usuario para borrar una carpeta. Sin embargo, cuando una persona crea una carpeta, a esa persona se le otorga automáticamente la función Editor de carpetas. La función Editor de carpetas permite que se eliminen carpetas.

Otorga roles para habilitar el movimiento de carpetas

A fin de mover una carpeta de un recurso principal a otro, los usuarios deben tener la función Encargado de la transferencia de la carpeta en los recursos principales antiguos y nuevos, o en un antecesor común.

Otorga roles para habilitar el movimiento de proyectos

A fin de mover un proyecto a una carpeta, los usuarios deben tener las funciones Editor del proyecto o Propietario del proyecto en el proyecto y el Encargado de la transferencia del proyecto en los recursos principales fuente y de destino.

Esto es un poco diferente de los requisitos para mover un proyecto que no pertenece a la organización al recurso de la organización, en el que los usuarios deben tener el rol de Editor del proyecto o de Propietario del proyecto en el proyecto y el rol de Creador del proyecto en el recurso de la organización.

Otorga roles específicos de la carpeta para habilitar la creación de proyectos

Para crear proyectos, los usuarios deben tener la función Creador del proyecto. Sin embargo, en lugar de otorgar permisos de creación de proyectos a nivel de toda la organización, puede ser útil restringir a los usuarios a visualizar y crear proyectos solo dentro de una carpeta determinada.

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

  1. Otorga al usuario el rol de Visualizador de la organización a nivel del recurso de la organización (por ejemplo, domain.com). En la consola de Cloud de Confiance , selecciona el recurso de tu organización en el selector de proyectos y organizaciones que se encuentra en la parte superior de la página o haz clic en tu dominio en la columna Herencia de la página IAM.
  2. Crea una carpeta nueva.
  3. Agrega al usuario a IAM a nivel de la carpeta y otórgale los roles de Visualizador de carpetas y Creador de proyectos.

Esto permite que el usuario cree proyectos en su carpeta sin otorgarle visibilidad de todos los proyectos en el recurso de organización más grande.