Jerarquía de recursos

En esta página se describe la jerarquía de recursos de Google Cloud y los recursos que se pueden administrar con Resource Manager.

En el propósito de la jerarquía de recursos de Google Cloud, se incluyen los dos aspectos siguientes:

  • Proporciona una jerarquía de propiedad, con la que se vincula el ciclo de vida de un recurso a su superior inmediato en la jerarquía.
  • Proporciona puntos de conexión y herencia para el control de acceso y las políticas de la organización.

En términos metafóricos, la jerarquía de recursos de Google Cloud se asemeja al sistema de archivos que se encuentra en los sistemas operativos tradicionales como una forma de organizar y administrar las entidades jerárquicamente. Cada recurso tiene exactamente un elemento superior. Esta organización jerárquica de recursos te permite establecer políticas de control de acceso y opciones de configuración en un recurso superior, y en los recursos secundarios se heredan la configuración de las políticas y la administración de identidades y accesos (IAM).

Jerarquía de recursos de Google Cloud en detalle

En el nivel más bajo, los recursos son los componentes fundamentales que conforman todos los servicios de Google Cloud. Entre los ejemplos de recursos, se incluyen las máquinas virtuales (VM) de Compute Engine, temas de Pub/Sub, instancias de App Engine y depósitos de Cloud Storage. Todos estos recursos de nivel inferior solo pueden tener proyectos como nivel superior, que representan el primer mecanismo de agrupación de la jerarquía de recursos de Google Cloud.

Los clientes de Google Workspace y Cloud Identity tienen acceso a características adicionales de la jerarquía de recursos de Google Cloud que proporcionan beneficios como visibilidad y control centralizados y otros mecanismos de agrupación, como carpetas. Obtén más información en la descripción general de Cloud Identity.

Los recursos de Google Cloud están organizados jerárquicamente. En la parte inferior de la jerarquía, los proyectos son el primer nivel y contienen otros recursos. Todos los recursos, excepto las organizaciones, tienen exactamente un recurso superior. La organización es la parte superior de la jerarquía y no tiene un recurso superior.

El recurso de organización es el nodo raíz de la jerarquía de recursos de Google Cloud y todos los recursos que pertenecen a una organización se agrupan en el nodo de organización. Esto proporciona visibilidad central y control sobre cada recurso que pertenece a una organización.

Las carpetas son un mecanismo de agrupación adicional por sobre los proyectos. Debes tener un recurso de organización como requisito previo para usar carpetas. Todas las carpetas y proyectos se asignan bajo el recurso de organización.

La jerarquía de recursos de Google Cloud, en especial en su forma más completa que incluye carpetas y un recurso de organización, permite que las empresas asignen su organización en Google Cloud y proporciona puntos de conexión lógicos para las políticas de administración de acceso (IAM) y las de la organización. Las políticas de IAM y de la organización se heredan a través de la jerarquía. La política vigente en cada nodo de la jerarquía es el resultado de las políticas aplicadas directamente en el nodo y las políticas heredadas de los nodos principales.

En el siguiente diagrama, se presenta un ejemplo de jerarquía de recursos de Google Cloud en la forma completa:

Jerarquía de recursos

El recurso de organización

El recurso de organización representa una organización (por ejemplo, una empresa) y es el nodo raíz en la jerarquía de recursos de Google Cloud. El recurso de organización es el recurso principal de las carpetas y los recursos de proyectos. Las políticas de control de acceso de IAM aplicadas en el recurso de organización se aplican en la jerarquía de todos los recursos de la organización.

Los usuarios de Google Cloud no están obligados a tener un recurso de organización, pero algunas características de Resource Manager no se podrán utilizar sin uno. El recurso de organización está estrechamente asociado con una cuenta de Google Workspace o Cloud Identity. Cuando un usuario con una cuenta de Google Workspace o Cloud Identity crea un proyecto de Google Cloud, se le aprovisiona automáticamente un recurso de organización.

Una cuenta de Google Workspace o Cloud Identity puede tener exactamente una organización aprovisionada. Una vez que se crea un recurso de organización para un dominio, todos los proyectos de Google Cloud creados por los miembros del dominio de la cuenta pertenecerán al recurso de organización de forma predeterminada. Cuando un usuario administrado crea un proyecto, el requisito es que esté en alguna organización. Si un usuario especifica una organización y tiene los permisos adecuados, el proyecto se asigna a esa organización. De lo contrario, se usará de forma predeterminada la organización con la que está asociado el usuario. Es imposible crear un proyecto que no esté asociado con una organización.

Por simplicidad, con Google Workspace haremos referencia a los usuarios de Google Workspace y Cloud Identity.

La cuenta de Google Workspace o Cloud Identity representa a una empresa y es un requisito previo para tener acceso al recurso de la organización. En el contexto de Google Cloud, se utiliza para proporcionar administración de identidades, mecanismo de recuperación, propiedad y administración del ciclo de vida. En la siguiente imagen se muestra el vínculo entre la cuenta de Google Workspace, Cloud Identity y la jerarquía de recursos de Google Cloud.

Organización de G Suite


El administrador avanzado de Google Workspace es la persona responsable de la verificación de la propiedad del dominio y el contacto en casos de recuperación. Por esta razón, el administrador avanzado de Google Workspace tiene la capacidad de asignar funciones de IAM de forma predeterminada. El deber principal del administrador avanzado de Google Workspace con respecto a Google Cloud es asignar la función de IAM de administrador de la organización a los usuarios apropiados en su dominio. Esto creará la separación entre las responsabilidades de administración de Google Workspace y Google Cloud que los usuarios suelen buscar.

Beneficios del recurso de organización

Con un recurso de organización, los proyectos pertenecen a tu organización en lugar de al empleado que creó el proyecto. Esto significa que los proyectos ya no se borran cuando un empleado abandona la empresa, sino que seguirán el ciclo de vida de la organización en Google Cloud.

Además, los administradores de la organización tienen el control central de todos los recursos. Pueden ver y administrar todos los proyectos de tu empresa. Esta aplicación significa que ya no pueden existir proyectos paralelos ni administradores deshonestos.

Además, puedes otorgar funciones a nivel de organización, que se heredan en todos los proyectos y carpetas del recurso de organización. Por ejemplo, puedes otorgar la función de administrador de red a tu equipo de redes a nivel de organización, lo que les permite administrar todas las redes en todos los proyectos de tu empresa, en lugar de otorgarles la función para todos los proyectos individuales.

Un recurso de organización expuesto por la API de Resource Manager consta de los siguientes componentes:

  • Un ID de organización, que es un identificador único para una organización
  • Un nombre para mostrar, que se genera a partir del nombre de dominio principal en el lugar de trabajo de Google Workspace o Cloud Identity.
  • La hora de creación de la organización
  • La hora de la última modificación de la organización
  • El propietario de la organización. El propietario se especifica cuando se crea el recurso de organización. No se puede cambiar una vez configurado. Es el ID de cliente de Google Workspace que se especifica en la API de Directory

El siguiente fragmento de código muestra la estructura de un recurso de organización:

{
  "displayName": "myorganization",
  "organizationId":"34739118321",
  "createTime": "2016-01-07T21:59:43.314Z"
  "owner": {
    "directoryCustomerId": "C012BA234"
   }
}

La política inicial de IAM para un recurso de la organización recién creado otorga las funciones de creador de proyectos y de creador de cuentas de facturación para todo el dominio de Google Workspace. Esto significa que los usuarios podrán crear proyectos y cuentas de facturación como lo hicieron antes de que existiera la organización. No se crean otros recursos cuando se crea un recurso de organización.

El recurso de carpeta

Los recursos de carpetas constituyen un mecanismo de agrupación adicional y suponen límites de aislamiento entre proyectos. Estos se consideran suborganizaciones dentro de la organización. Las carpetas se pueden usar para diferenciar distintas entidades legales, departamentos y equipos dentro de una empresa. Por ejemplo, un primer nivel de carpetas podría usarse para representar los principales departamentos de tu organización. Dado que las carpetas pueden contener proyectos y otras carpetas, cada carpeta podría incluir otras subcarpetas para representar diferentes equipos. Cada carpeta del equipo puede contener subcarpetas adicionales para representar diferentes aplicaciones. Para obtener más información sobre cómo usar las carpetas, consulta la sección Crea y administra carpetas.

Si existen recursos de carpetas en tu organización y tienes los permisos de visualización adecuados, puedes verlos desde Google Cloud Console. Para obtener instrucciones más detalladas, consulta la sección sobre cómo ver o enumerar carpetas y proyectos.

Las carpetas permiten la delegación de derechos de administración; así, por ejemplo, cada jefe de un departamento puede obtener la propiedad total de todos los recursos de Google Cloud que pertenecen a sus departamentos. Del mismo modo, el acceso a los recursos puede estar limitado por carpeta, por lo que los usuarios de un departamento solo pueden acceder y crear recursos de Cloud dentro de esa carpeta.

El siguiente fragmento de código muestra la estructura de una carpeta:

{
 "name" : "folders/my-folder",
 "parent" : "organizations/my-organization",
 "displayName" : "Engineering",
 "lifecycleState" : "ACTIVE",
 "createTime": "2016-01-07T21:59:43.314Z"
}

Al igual que las organizaciones y los proyectos, las carpetas actúan como un punto de herencia de políticas para las políticas de IAM y de la organización. Las funciones de IAM otorgadas en una carpeta se heredan automáticamente en todos los proyectos y las carpetas incluidos en esa carpeta.

El recurso de proyecto

El recurso de proyecto es la entidad organizadora básica. Las organizaciones y las carpetas pueden contener varios proyectos. Se requiere un proyecto para usar Google Cloud, y forma la base a fin de crear, habilitar y usar todos los servicios de Google Cloud, administrar API, habilitar la facturación, agregar y quitar colaboradores, y administrar permisos.

Todos los proyectos consisten en lo siguiente:

  • Dos identificadores:
    1. El ID del proyecto, que es un identificador único del proyecto
    2. El número de proyecto, que se asigna automáticamente cuando creas el proyecto. Es de solo lectura
  • Un nombre para mostrar mutable
  • El estado del ciclo de vida del proyecto. por ejemplo, ACTIVE o DELETE_REQUESTED
  • Un conjunto de etiquetas que se pueden usar para filtrar proyectos
  • La hora en la que se creó el proyecto

El siguiente fragmento de código muestra la estructura de un proyecto:

{
  "name": "myproject",
  "projectId": "my-project-123",
  "labels":
   {
     "my-label": "prod"
   },
   "projectNumber": "464036093014",
   "lifecycleState": "ACTIVE",
   "createTime": "2016-01-07T21:59:43.314Z"
}

Para interactuar con la mayoría de los recursos de Google Cloud, debes proporcionar la información de identificación del proyecto para cada solicitud. Puedes identificar un proyecto de dos maneras: con un ID del proyecto o con un número de proyecto (projectId y projectNumber en el fragmento de código).

Un ID del proyecto es el nombre personalizado que elegiste cuando creaste el proyecto. Si activas una API para la que se requiere un proyecto, se te indicará que crees un proyecto o que selecciones uno mediante su ID del proyecto. (Ten en cuenta que la string name, que se muestra en la IU, no es la misma que el ID del proyecto).

En Google Cloud el número de proyecto se genera automáticamente. Tanto el ID como el número de proyecto se pueden encontrar en el panel de proyecto en Google Cloud Console. A fin de obtener información sobre cómo obtener identificadores de proyectos y otras tareas de administración para proyectos, consulta la sección sobre cómo crear y administrar proyectos.

Mediante la política inicial de IAM para el recurso del proyecto recién creado, se otorga la función de propietario al creador del proyecto.

Herencia de políticas de IAM

Google Cloud ofrece IAM, que te permite otorgar acceso detallado a recursos específicos de Google Cloud y evita el acceso no deseado a otros recursos. Con IAM, puedes controlar quién ( usuarios) posee qué acceso (funciones ) a cuáles recursos a partir del establecimiento de políticas de IAM en los recursos.

Puedes establecer una política de IAM en el nivel de organización, el nivel de carpeta, el nivel de proyecto. (en algunos casos) el nivel de recurso. Los recursos heredan las políticas del nodo superior. Si configuras una política a nivel de la organización, esta se hereda en todos sus proyectos y carpetas secundarias y, si estableces una política a nivel del proyecto, esta se hereda en todos sus recursos secundarios.

La política vigente para un recurso es la unión de la política establecida en el recurso y la política heredada de sus recursos principales. Esta herencia es transitiva. En otras palabras, las políticas del proyecto se heredan de los recursos en los que, a su vez, se heredan políticas de la organización. Por lo tanto, las políticas del nivel de organización también se aplican al nivel de recursos.

Jerarquía de recursos


Por ejemplo, en el diagrama de jerarquía de recursos anterior, si estableces una política en la carpeta "Departamento Y" por la que se otorga la función de Editor del proyecto a bob@example.com, Bob tendrá la función de editor en los proyectos "Proyecto de GCP de desarrollo", "Proyecto de GCP de prueba" y "Proyecto de GCP de producción". Por el contrario, si asignas a alice@example.com la función de administradora de instancias en el proyecto “Proyecto de GCP de prueba”, solo podrá administrar instancias de Compute Engine en ese proyecto.

Las funciones siempre se heredan y no se puede quitar de forma explícita el permiso para un recurso de nivel inferior que se otorga en un nivel superior de la jerarquía de recursos. Según el ejemplo anterior, incluso si le quitaras a Bob la función Editor de proyecto en el “Proyecto de prueba de GCP”, él heredaría esa función de la carpeta “Dept Y”, por lo que aún tendría los permisos de la función en el “Proyecto de prueba de GCP”.

En la jerarquía de políticas de IAM, se sigue la misma ruta que la jerarquía de recursos de Google Cloud. Si cambias la jerarquía de recursos, también cambia la jerarquía de políticas. Por ejemplo, si se mueve un proyecto a una organización, se actualiza su política de IAM para heredar la de la organización. Del mismo modo, si se mueve un proyecto de una carpeta a otra, se cambian los permisos heredados. Los permisos del proyecto que fueron heredados del proyecto superior original se perderán cuando el proyecto se mueva a una nueva carpeta. El proyecto heredará los permisos establecidos en la carpeta de destino a medida que se mueva.