Configura los límites de administración

En este documento, se describe cómo configurar y administrar los límites de administración y los parámetros de configuración de las capacidades con Resource Manager. Los límites de administración permiten el descubrimiento y la administración de recursos entre proyectos para el Registro de agentes.

Antes de comenzar

Antes de configurar los límites y las capacidades, obtén los roles necesarios y habilita la API requerida.

Roles obligatorios

Para obtener los permisos que necesitas para configurar límites y capacidades, pídele a tu administrador que te otorgue los siguientes roles de IAM:

  • Crea, actualiza y borra límites y parámetros de configuración de capacidades: Editor de Resource Manager (roles/resourcemanager.editor) en la carpeta o la organización de destino (y el proyecto de administración, si proporcionas un proyecto de administración administrado por el usuario)
  • Visualiza los límites y las configuraciones de capacidades: Visualizador de Resource Manager (roles/resourcemanager.viewer) en la carpeta o la organización de destino
  • Adjunta etiquetas a los proyectos miembros:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.

Habilitar la API

  • Para habilitar la API de Resource Manager, usa el comando gcloud services enable:

    gcloud services enable cloudresourcemanager.googleapis.com \
      --project=PROJECT_ID
    

    Reemplaza PROJECT_ID por el ID de tu proyecto.

Configura un límite de administración

Puedes configurar un límite de administración en una carpeta o una organización de una de las siguientes dos maneras:

  • Límite de toda la carpeta o de toda la organización (sin filtro de etiquetas): Incluye todos los proyectos descendientes de la carpeta o la organización. Omite los pasos 1 y 4, y completa solo el paso 2: Crea un límite (sin --tag-key ni --tag-value) y el paso 3: Crea una configuración de capacidad.
  • Límite basado en etiquetas: Divide los proyectos de la carpeta o la organización por valores de etiqueta. Completa los cuatro pasos que se indican a continuación.

Paso 1: Configura la clave de etiqueta de partición

Omite este paso si creas un límite para toda la carpeta o la organización sin un filtro de etiquetas. De forma predeterminada, un recurso BoundaryConfig no tiene configurada ninguna clave de etiqueta.

En el caso de los límites basados en etiquetas, un recurso BoundaryConfig establece la clave de etiqueta que se usa para particionar proyectos dentro de una carpeta o una organización. Configura este recurso antes de crear límites basados en etiquetas.

Para establecer la clave de etiqueta de partición, usa el comando gcloud resource-manager boundary-configs update:

gcloud resource-manager boundary-configs update \
  --folder=FOLDER_ID \
  --tag-key=TAG_KEY_NAME

Para configurar la clave de etiqueta en una organización, especifica --organization=ORGANIZATION_ID en lugar de --folder. Si antes configuraste una clave de etiqueta y quieres cambiar a un límite sin etiquetar (cuando no existen límites en el elemento superior), ejecuta este comando con --clear-tag-key en lugar de --tag-key.

Reemplaza lo siguiente:

  • FOLDER_ID: Es el ID de la carpeta superior.
  • TAG_KEY_NAME: Es el nombre de tu clave de etiqueta, con el formato ORGANIZATION_ID/TAG_KEY_SHORT_NAME, como 123456789012/env.

Paso 2: Crea un límite

Crea un recurso Boundary en tu carpeta u organización.

Para crear un límite para toda la carpeta sin un filtro de etiquetas (que incluye automáticamente todos los proyectos descendientes de la carpeta), usa el comando gcloud resource-manager boundaries create sin --tag-key ni --tag-value:

gcloud resource-manager boundaries create BOUNDARY_ID \
  --folder=FOLDER_ID \
  --display-name="Production Boundary"

Para crear un límite basado en etiquetas después de configurar la clave de etiqueta de partición en el paso 1, incluye las marcas --tag-key y --tag-value:

gcloud resource-manager boundaries create BOUNDARY_ID \
  --folder=FOLDER_ID \
  --display-name="Production Boundary" \
  --tag-key=TAG_KEY_NAME \
  --tag-value=TAG_VALUE_SHORT_NAME

Para crear un límite en una organización, especifica --organization=ORGANIZATION_ID en lugar de --folder.

Reemplaza lo siguiente:

  • BOUNDARY_ID: Es un ID único para el límite, como prod-boundary.
  • FOLDER_ID: Es el ID de la carpeta superior.
  • TAG_KEY_NAME: la clave de etiqueta que configuraste, como 123456789012/env
  • TAG_VALUE_SHORT_NAME: Es el valor de la etiqueta que deben tener los proyectos para unirse al límite, como prod.

Paso 3: Crea una configuración de capacidad

Crea un recurso CapabilityConfig para vincular tu límite a un proyecto de administración y declarar qué servicios se administran en todo el límite.

Para crear una configuración de capacidad, usa el comando gcloud resource-manager capability-configs create y especifica --types=agent-management para el registro de agentes:

gcloud resource-manager capability-configs create \
  CAPABILITY_CONFIG_ID \
  --folder=FOLDER_ID \
  --types=agent-management \
  --boundaries=folders/FOLDER_ID/boundaries/BOUNDARY_ID \
  --display-name="DISPLAY_NAME"

Para crear la configuración de la capacidad en una organización, especifica --organization=ORGANIZATION_ID en lugar de --folder.

Reemplaza lo siguiente:

  • CAPABILITY_CONFIG_ID: Es un ID único para la configuración de la capacidad, como prod-capabilities.
  • FOLDER_ID: Es el ID de la carpeta superior.
  • BOUNDARY_ID: Es el ID del límite que creaste.
  • DISPLAY_NAME: un nombre visible legible por humanos

Para habilitar las capacidades en un solo proyecto independiente sin límites, omite los pasos 1, 2 y 4, y ejecuta este comando con --project=PROJECT_NUMBER y --management-project=projects/PROJECT_NUMBER en lugar de --folder y --boundaries.

Para usar un proyecto existente como el proyecto de administración, pasa la marca --management-project=projects/PROJECT_NUMBER. El proyecto que especifiques debe cumplir con los siguientes requisitos; de lo contrario, el comando fallará con un error:

  • Residir directamente en el mismo elemento superior (folders/FOLDER_ID o organizations/ORGANIZATION_ID) que el recurso CapabilityConfig.
  • Estar en el estado de ciclo de vida ACTIVE
  • No debe estar designado como un proyecto de administración.

Si omites --management-project, Resource Manager aprovisiona de forma automática un proyecto de administración dedicado directamente en la carpeta o la organización superior.

Cuando creas un recurso CapabilityConfig, se habilitan automáticamente las APIs de servicio correspondientes en el proyecto de administración (como agentregistry.googleapis.com cuando especificas agent-management). No es necesario que habilites estas APIs de forma manual en el proyecto de administración.

Paso 4: Adjunta etiquetas a los proyectos de los miembros

Omite este paso si creaste un límite para toda la carpeta o la organización sin un filtro de etiquetas, ya que todos los proyectos descendientes se incluyen automáticamente.

En el caso de los límites basados en etiquetas, los proyectos se unen de forma dinámica al límite de administración cuando les vinculas el valor de etiqueta coincidente.

Para adjuntar la etiqueta a cada proyecto que pertenezca al límite, usa el comando gcloud resource-manager tags bindings create:

gcloud resource-manager tags bindings create \
  --tag-value=TAG_VALUE_NAME \
  --parent=//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER

Reemplaza lo siguiente:

  • TAG_VALUE_NAME: Es el nombre del valor de la etiqueta, como 123456789012/env/prod.
  • PROJECT_NUMBER: el número (o ID del proyecto) del proyecto que deseas incluir en el límite

Administra los parámetros de configuración de las capacidades

Puedes enumerar, describir, actualizar y borrar parámetros de configuración de capacidades. En los ejemplos de esta sección, se usa --folder=FOLDER_ID. Para administrar las configuraciones de capacidades en una organización o un proyecto, especifica --organization=ORGANIZATION_ID o --project=PROJECT_NUMBER en lugar de --folder (los límites solo se pueden adjuntar a las configuraciones de capacidades a nivel de carpeta o de organización).

Enumera los parámetros de configuración de las capacidades

Para enumerar todas las configuraciones de capacidades de una carpeta, usa el comando gcloud resource-manager capability-configs list:

gcloud resource-manager capability-configs list \
  --folder=FOLDER_ID

Describe la configuración de una capability

Para ver los detalles de la configuración y el proyecto de administración asignado, usa el comando gcloud resource-manager capability-configs describe:

gcloud resource-manager capability-configs describe \
  CAPABILITY_CONFIG_ID \
  --folder=FOLDER_ID

Actualiza los límites asociados

Para actualizar los límites vinculados a una configuración de capacidad, usa el comando gcloud resource-manager capability-configs update:

gcloud resource-manager capability-configs update \
  CAPABILITY_CONFIG_ID \
  --folder=FOLDER_ID \
  --boundaries=folders/FOLDER_ID/boundaries/BOUNDARY_ID_1,folders/FOLDER_ID/boundaries/BOUNDARY_ID_2

El comando update también acepta las marcas --types y --display-name para actualizar los tipos de capacidades habilitados o el nombre visible.

Borra la configuración de una capacidad

No se puede borrar un recurso CapabilityConfig mientras tenga límites adjuntos, y no se puede borrar un recurso Boundary mientras esté adjunto a un recurso CapabilityConfig.

Para borrar una configuración de capacidad cuando ya no se requiera la administración entre proyectos, haz lo siguiente:

  1. Para desconectar los límites asociados, usa el comando gcloud resource-manager capability-configs update con la marca --clear-boundaries:

    gcloud resource-manager capability-configs update \
      CAPABILITY_CONFIG_ID \
      --folder=FOLDER_ID \
      --clear-boundaries
    
  2. Para borrar la configuración de la capacidad, usa el comando gcloud resource-manager capability-configs delete:

    gcloud resource-manager capability-configs delete \
      CAPABILITY_CONFIG_ID \
      --folder=FOLDER_ID
    

¿Qué sigue?