Todo lo que creas en Google Cloud se ubica en un árbol llamado jerarquía de recursos (resource hierarchy). En la parte superior está el nodo de organización, que representa a tu empresa y está vinculado a un dominio de Cloud Identity o Google Workspace, como example.com. Debajo puedes crear carpetas (folders), las carpetas pueden contener otras carpetas y, en la parte inferior, están los proyectos. Cada recurso, ya sea una VM, un bucket o una instancia de Cloud SQL, pertenece exactamente a un proyecto. La jerarquía importa porque es la forma de aplicar accesos y reglas a muchos recursos a la vez, en lugar de uno por uno.
Los proyectos son la unidad básica de organización. Cada uno tiene su propio conjunto de APIs habilitadas, sus propias cuotas y su propio vínculo de facturación, y actúa como límite para la mayoría de los recursos. Las carpetas suelen reflejar cómo funciona la empresa: por departamento (Finanzas, Ingeniería), por entorno (Prod, Non-prod) o por equipo. Se crea una nueva organización automáticamente cuando un cliente de Cloud Identity o Workspace crea su primer proyecto, y luego los administradores deciden quién puede crear carpetas y proyectos.
Las políticas de permiso (allow policies) de Identity and Access Management (IAM) se pueden adjuntar a la organización, a carpetas, a proyectos y a muchos recursos individuales. Una política la hereda todo lo que está debajo de ella, y el acceso efectivo es la unión de todas las políticas desde el recurso hasta la organización. Eso hace que IAM sea aditivo: si un usuario es Viewer en una carpeta y Editor en un proyecto dentro de ella, es Editor en ese proyecto. Un hijo no puede eliminar un permiso que hereda de su padre. Cuando realmente necesitas bloquear un permiso sin importar los permisos otorgados, Google Cloud ofrece las políticas de denegación de IAM (IAM deny policies), que se evalúan antes que las políticas de permiso.
Las políticas de la organización (organization policies) son un mecanismo aparte. En lugar de decir quién puede hacer algo, restringen qué se puede configurar, por ejemplo en qué regiones se pueden crear recursos o si las VMs pueden tener direcciones IP externas. Las políticas de la organización también se establecen en la organización, en una carpeta o en un proyecto, y se heredan hacia abajo. Según la restricción, un nivel inferior puede heredar la política del padre, combinarse con ella o reemplazarla, si los administradores lo permiten.
Un diseño práctico es colocar los controles amplios y estables en lo alto del árbol (por ejemplo, auditores de seguridad como visualizadores en la organización, o una restricción de ubicación en una carpeta de la UE) y otorgar roles específicos y acotados lo más abajo posible, idealmente en el proyecto o en el propio recurso. Así se mantiene el principio de mínimo privilegio y es fácil responder quién tiene acceso a qué.
Términos clave
- Organization node (nodo de organización)
- La raíz de la jerarquía, vinculada a un dominio de Cloud Identity o Google Workspace.
- Folder (carpeta)
- Una agrupación de proyectos y otras carpetas que te permite aplicar IAM y políticas de la organización a todos ellos.
- Project (proyecto)
- El contenedor al que pertenece cada recurso, con sus propias APIs, cuotas, política de IAM y vínculo de facturación.
- Policy inheritance (herencia de políticas)
- Las políticas de IAM y de la organización establecidas en un nodo se aplican a cada carpeta, proyecto y recurso que está debajo.
Una empresa minorista crea carpetas llamadas Prod y Non-prod bajo su organización. Al equipo de seguridad se le otorga Security Reviewer en la organización, el equipo de plataforma es Editor solo en la carpeta Non-prod, y una política de la organización en Prod bloquea las direcciones IP externas en las VMs. Los proyectos nuevos creados en cualquiera de las dos carpetas reciben automáticamente el acceso y las restricciones correctos.
Comprueba lo que sabes
Un usuario es Viewer en la organización y no tiene permisos a nivel de proyecto. ¿Puede ver los recursos de todos los proyectos?
Sí. El permiso Viewer en la organización lo heredan todas las carpetas y proyectos que están debajo.
¿Cuál es la diferencia entre una política de permiso de IAM y una política de la organización?
Una política de IAM dice qué principales tienen qué roles. Una política de la organización restringe cómo se pueden configurar los recursos, sin importar los roles que tenga la persona.