La organización jerárquica de recursos en GCP

Cuando trabajamos con la plataforma de Google Cloud, necesitamos organizar todos los recursos, usuarios, proyectos… Para ello debemos basarnos en la jerarquía de objetos que nos ofrece GPC, que es la que nos permitirá gestionar los permisos y accesos de la forma más adecuada.

La jerarquía completa de recursos de Google Cloud es semejante a la de un sistema de ficheros tradicional, en forma de árbol, en la que cada recurso tiene un solo padre y todos los elementos que la componen tiene una única raíz, la Organización.

La organización sólo está disponible para usuarios de G-Suite o de Cloud Identity, que realmente significa que solo está disponible para empresas y no para usuarios individuales.

Bajo la Organización pueden existir Carpetas, no es obligatorio e igualmente solo está disponible para usuarios de G Suite y de Cloud Identity, para el resto no existe este nivel en la jerarquía.

El siguiente nivel (el primero para los usuarios estándar, no empresas), según bajamos en la jerarquía, está compuesto por los Proyectos, que son los que, a su vez, contienen todos los Recursos (Compute Engine VM, App Engine Instance, Storage Bucket…).

En el siguiente diagrama se muestra un ejemplo de esta estrcutura jerárquica de objetos:

Esta jerarquía de objetos está intimamente relacionada con los permisos que se establecen en cada uno de los objetos, porque las políticas se heredan de los elementos padres. Mediante IAM definiremos quién (usuarios) tiene qué accesos (roles) a qué recursos, esto se hace mediante las políticas IAM que se pueden definir bajo la Organización, Carpeta, Proyecto y en algunos casos en los Recursos.

Lo más importante:

Puede que nos resulte más fácil comprender la jerarquía de recursos de GCP desde abajo hacia arriba.

Todos los recursos que usa, ya sean máquinas virtuales, Cloud Storage, los buckets, tablas en BigQuery o cualquier otra cosa en GCP, se organizan en proyectos. Opcionalmente, estos proyectos se pueden organizar en carpetas; las carpetas pueden contener otras carpetas.

Todas las carpetas y proyectos utilizados por su organización se pueden juntar bajo un nodo de organización. Proyectos, carpetas y nodos de organización son todos lugares donde se pueden definir las políticas.

Algunos recursos de GCP le permiten establecer políticas sobre recursos también, como buckets de Cloud Storage.

Las políticas se heredan hacia abajo en la jerarquía.

Los proyectos

Los proyectos tienen tres atributos de identificación:

  1. ID del proyecto: Único a nivel mundial. Elegido por el Cliente. Es inmutable.
  2. El nombre del proyecto: No es necesario que sea único. Elegido por el cliente. Es mutable.
  3. El número de proyecto: Globalmente único. Asignado por GCP. Es inmutable.

Cada proyecto de GCP tiene un nombre y un ID de proyecto que nosotros asignamos. El ID del proyecto es un identificador permanente e inmutable y debe ser único en GCP.

Usaremos el ID de proyecto en varios contextos para indicarle a GCP con qué proyecto desea trabajar.

Por otro lado, los nombres de los proyectos son para nuestra conveniencia y podemos cambiarlos.

GCP también asigna a cada uno de sus proyectos un número de proyecto único y veremos que se muestra en varios contextos, pero su uso está mayormente fuera del alcance de este curso.

En general, los ID de proyecto están hechos para ser cadenas legibles por humanos y los usaremos con frecuencia para referirnos a proyectos.

Las folders

Las carpetas, ”Folders”, ofrecen flexibilidad, uno de los pilares de Cloud Computing.

¿Qué podemos hacer con las Carpetas?

  • Las carpetas agrupan proyectos bajo una organización.
  • Las carpetas pueden contener proyectos, otros carpetas, o ambas.
  • Podemos usar carpetas para asignar políticas.

Las carpetas son susceptibles a ser “controladas”.

La función Carpetas de Cloud IAM te permite asignar políticas a los recursos en un nivel de granularidad que nosotros elijamos.

Los recursos de una carpeta heredan las políticas de IAM asignadas a la carpeta.

Una carpeta puede contener proyectos, otras carpetas o una combinación de ambos.

Por ejemplo: La organización donde trabajas puede contener varios departamentos, cada uno con su propio conjunto de recursos de GCP.

  • Las carpetas nos permiten agrupar estos recursos por departamento.
  • Las carpetas permiten que los equipos tengan la capacidad de delegar derechos administrativos, para que puedan trabajar independientemente.

El nodo organizacional

El nodo “Organización” permite organizar “Proyectos”. Es el nodo raíz para el despliegue de recursos (VM’s, Buckets, VPC, etc en Google Cloud).

Recomendaciones de los nodos organizacionales

Probablemente desees organizar todos los proyectos de tu empresa en una única estructura.

La mayoría de las empresas quieren tener la capacidad de postularse para tener una visibilidad centralizada de cómo se están utilizando recursos y también para aplicar políticas de forma centralizada.

Eso es lo que el nodo de organización hace, organiza. Es la cima de la jerarquía.