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:
- Usuario de etiquetas (
roles/resourcemanager.tagUser) en la carpeta, la organización o los proyectos miembros de destino - Administrador de etiquetas (
roles/resourcemanager.tagAdmin) en la carpeta o la organización de destino
- Usuario de etiquetas (
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_IDReemplaza
PROJECT_IDpor 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-keyni--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 formatoORGANIZATION_ID/TAG_KEY_SHORT_NAME, como123456789012/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, comoprod-boundary.FOLDER_ID: Es el ID de la carpeta superior.TAG_KEY_NAME: la clave de etiqueta que configuraste, como123456789012/envTAG_VALUE_SHORT_NAME: Es el valor de la etiqueta que deben tener los proyectos para unirse al límite, comoprod.
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, comoprod-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_IDoorganizations/ORGANIZATION_ID) que el recursoCapabilityConfig. - 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, como123456789012/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:
Para desconectar los límites asociados, usa el comando
gcloud resource-manager capability-configs updatecon la marca--clear-boundaries:gcloud resource-manager capability-configs update \ CAPABILITY_CONFIG_ID \ --folder=FOLDER_ID \ --clear-boundariesPara 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