Las etiquetas proporcionan una forma de permitir o rechazar políticas de manera condicional en función de si un recurso tiene una etiqueta específica. Puedes usar etiquetas y la aplicación condicional de políticas de la organización para proporcionar un control centralizado de los recursos en tu en la nube.
Antes de comenzar
Para obtener más información sobre qué son las etiquetas y cómo funcionan, consulta el Descripción general de las etiquetas.
Para obtener instrucciones detalladas sobre cómo usar las etiquetas, consulta Crea y administra etiquetas.
Establece una política de la organización con etiquetas
Si quieres usar etiquetas para determinar dónde debe aplicarse una política de la organización, debes debes especificar una condición en el archivo YAML de la política de la organización. Puedes configurar para que coincida con un par clave-valor de etiqueta específico, lo que requiere que un el valor de la etiqueta está configurado para que se aplique la política de la organización.
La mayoría de las políticas de la organización se evalúan y aplican cuando un recurso crearse o actualizarse. No es posible adjuntar una etiqueta a un recurso antes de por lo que las políticas condicionales de la organización no pueden evaluar etiquetas recurso a medida que se crea, solo en las etiquetas heredadas de de Google Cloud.
Las etiquetas se evalúan para los recursos de organización, carpeta y proyecto. Más probable por debajo de los proyectos en la jerarquía de recursos, política de la organización, con ciertas excepciones, como Cloud Run de Google Cloud. Para obtener información sobre restricciones específicas de las políticas de la organización, consulta Restricciones de las políticas de la organización.
Ejemplo de política de listas
En el siguiente ejemplo, se muestra cómo configurar un archivo de políticas de la organización que
aplica la restricción gcp.resourceLocations
. Esta política de la organización usa
valores condicionales y no condicionales, establecidos dentro del mismo archivo de política.
Console
Para configurar la política de la organización, haz lo siguiente:
En la consola de Google Cloud, ve a la página Políticas de la organización.
En el selector de proyectos, elige el proyecto para el que deseas establecer la política de la organización.
En la página Políticas de la organización, selecciona una restricción de la lista. Aparecerá la página Detalles de la política para esa restricción.
Para actualizar la política de la organización de este recurso, haz clic en Administra la política.
En la página Editar política, selecciona Anular la política del elemento superior.
En Aplicación de la política, selecciona una opción de aplicación:
Para combinar y evaluar las políticas de la organización, selecciona Combinar con superior. Para obtener más información sobre la jerarquía de herencia y recursos, consulta la página sobre cómo obtener información de la evaluación de jerarquías.
Para anular las políticas heredadas de un recurso superior, selecciona Reemplazar.
Haz clic en Agregar regla.
En Valores de política, selecciona si esta política de la organización debe permitir todos los valores, rechazar todos los valores o especificar un conjunto personalizado de valores.
- Los valores específicos que acepta la política dependen del servicio al que se aplica. Para ver una lista de las restricciones y los valores que aceptan, consulta Restricciones de la política de la organización.
De manera opcional, para hacer que la política de la organización sea condicional en una etiqueta, haz clic en Agregar condición.
En el campo Título, ingresa un nombre para la condición.
En el campo Descripción, asigna una descripción a tu condición. La descripción proporciona contexto sobre las etiquetas que se requieren y cómo afectan a los recursos.
Puedes usar el Creador de condiciones para crear una condición que requiere una etiqueta particular para que se aplique la restricción.
En el cuadro Tipo de condición, selecciona Etiqueta.
Selecciona el Operador para tu condición. Para hacer coincidir una etiqueta completa, usa el operador has value Para hacer coincidir una clave de etiqueta y un valor de etiqueta, utiliza el operador has value ID.
Si seleccionaste el operador tiene el valor, ingresa el nombre con espacio de nombres de la etiqueta. Si seleccionaste has value ID ingresa los IDs de clave y valor.
Puedes crear varias condiciones haciendo clic en Add. Si agregas otra condición, puedes establecer la lógica condicional para requerirlos todos activando And. Puedes configurar lógica condicional para requerir que solo una de las condiciones sea verdadera activando O (Or).
Para borrar una expresión, haz clic en la X grande que aparece a la derecha de los campos de condición.
Cuando termines de editar tus condiciones, haz clic en Guardar.
El Editor de condiciones se puede usar para crear una expresión condicional de manera programática. También se mostrará una lista el conjunto actual de condiciones.
- Puedes usar el editor de la condición para aplicar el
!
. operador lógico. Por ejemplo, la consulta!resource.matchTag('ORGANIZATION_ID/location', 'us-west1')
aplicaría la restricción de la política de la organización a cualquier recurso que no tenga la etiquetaus-west1
.
- Puedes usar el editor de la condición para aplicar el
Para aplicar la política, haz clic en Establecer política.
gcloud
Para establecer la política de la organización, crea un archivo YAML para almacenar la política:
name: RESOURCE_TYPE/RESOURCE_ID/policies/gcp.resourceLocations
spec:
rules:
# As there is no condition specified, this allowedValue is enforced unconditionally.
- values:
allowedValues:
- us-east1-locations
# This condition applies to the values block.
- condition:
expression: "resource.matchTag('ORGANIZATION_ID/location', 'us-west1')"
values:
allowedValues:
- us-west1-locations
Ejecuta el comando set-policy
:
gcloud org-policies set-policy POLICY_PATH
Reemplaza lo siguiente:
POLICY_PATH
: Es la ruta de acceso completa al archivo YAML de la política de tu organización.RESOURCE_TYPE
:organizations
,folders
oprojects
RESOURCE_ID
: El ID de la organización, el ID de la carpeta ID del proyecto o un número de proyecto, según el tipo de recurso especificado enRESOURCE_TYPE
ORGANIZATION_ID
: La organización superior de la clave de etiqueta
Para esta política de la organización, el recurso y todos sus recursos secundarios
se le aplicará la restricción gcp.resourceLocations
, con
Solo allowedValues
de us-east1-locations
. Se aplicará la restricción gcp.resourceLocations
a cualquiera de estos recursos que tengan la etiqueta location: us-west1
, con allowedValues
de us-east1-locations
y us-west1-locations
.
De esta manera, se pueden aplicar conjuntos de valores condicionales y no condicionales para una restricción en una sola política de la organización.
Ejemplo de política booleana
En el siguiente ejemplo, se muestra cómo configurar un archivo de políticas de la organización que
aplica la restricción compute.disableSerialPortAccess
. Esta política de la organización
especifica que los recursos pueden acceder a todos los puertos en serie, pero usa un
para restringir el acceso al puerto en serie solo a los recursos que tienen
etiqueta coincidente.
Console
Para configurar la política de la organización, haz lo siguiente:
En la consola de Google Cloud, ve a la página Políticas de la organización.
En el selector de proyectos, selecciona el proyecto para el que deseas configurar la política de la organización.
Selecciona una restricción de la lista que se encuentra en la página Políticas de la organización. Debería aparecer la página Detalles de la política para esa restricción.
Para actualizar la política de la organización de este recurso, haz clic en Administra la política.
En la página Editar política, selecciona Anular la política del elemento superior.
Haz clic en Agregar regla.
En Aplicación, selecciona si la aplicación de esta política de la organización debe estar activada o desactivada.
De manera opcional, para hacer que la política de la organización sea condicional en una etiqueta, haz clic en Agregar condición. Ten en cuenta que si agregas una regla condicional a política de la organización, debes agregar solo una regla incondicional la política no se puede guardar.
En el campo Título, ingresa un nombre para la condición.
En el campo Descripción, asigna una descripción a tu condición. La descripción proporciona contexto sobre las etiquetas que se requieren y cómo afectan a los recursos.
Puedes usar el Creador de condiciones para crear una condición que requiere una etiqueta particular para que se aplique la restricción.
En el cuadro Tipo de condición, selecciona Etiqueta.
Selecciona el Operador para tu condición. Para hacer coincidir una etiqueta completa, usa el operador has value Para hacer coincidir una clave de etiqueta y un valor de etiqueta, utiliza el operador has value ID.
Si seleccionaste el operador tiene el valor, ingresa el nombre con espacio de nombres de la etiqueta. Si seleccionaste has value ID ingresa los IDs de clave y valor.
Puedes crear varias condiciones haciendo clic en Add. Si agregas otra condición, puedes establecer la lógica condicional para requerirlos todos activando And. Puedes configurar lógica condicional para requerir que solo una de las condiciones sea verdadera activando O (Or).
Para borrar una expresión, haz clic en la X grande que aparece a la derecha de los campos de condición.
Cuando termines de editar tus condiciones, haz clic en Guardar.
Una política de la organización con una condición aplicada debe tener solo una regla sin condición. Haz clic en Agregar regla y establece si aplicación de esta política de la organización debería estar activada o desactivado.
El Editor de condiciones puede usarse para crear una condición de forma programática. También se mostrará una lista el conjunto actual de condiciones.
- Puedes usar el editor de la condición para aplicar el
!
. operador lógico. Por ejemplo, la consulta!resource.matchTag('ORGANIZATION_ID/location', 'us-west1')
aplicaría la restricción de la política de la organización a cualquier recurso que no tenga la etiquetaus-west1
.
- Puedes usar el editor de la condición para aplicar el
Para finalizar y aplicar la política de la organización, haz clic en Guardar (Save).
gcloud
Para establecer la política de la organización, crea un archivo YAML para almacenar la política:
name: RESOURCE_TYPE/RESOURCE_ID/policies/gcp.disableSerialPortAccess
spec:
rules:
- condition:
expression: "resource.matchTag(\"ORGANIZATION_ID/disableSerialAccess\", \"yes\")"
enforce: true
- enforce: false
Ejecuta el comando set-policy
:
gcloud org-policies set-policy POLICY_PATH
Reemplaza lo siguiente:
POLICY_PATH
: Es la ruta de acceso completa al archivo YAML de la política de tu organización.RESOURCE_TYPE
:organizations
,folders
oprojects
RESOURCE_ID
: El ID de la organización, el ID de la carpeta, el ID del proyecto o el número del proyectoORGANIZATION_ID
: Es la organización superior de tu clave de etiqueta
Para esta política de la organización, el recurso y todos sus recursos secundarios tendrán la restricción gcp.disableSerialPortAccess
aplicada.
El sistema rechazará cualquier recurso que tenga la etiqueta disableSerialAccess: yes
.
política de la organización. A ningún recurso que no tenga la etiqueta disableSerialAccess: yes
se le aplicará la restricción.
Agrega restricciones de forma condicional a la política de la organización
Puedes usar etiquetas para agregar condicionalmente restricciones de políticas de la organización a recursos según las etiquetas que adjuntaron. Puedes agregar varias condiciones dentro de la misma política de la organización, lo que te brinda un control detallado los recursos a los que quieres que se aplique la política de la organización.
Common Expression Language o CEL es el lenguaje de expresión que se usa para especificar expresiones condicionales. Una expresión condicional consiste en una o más declaraciones que se unen mediante operadores lógicos (&&
, ||
o !
). Para obtener más información, consulta la especificación de CEL y su definición de lenguaje.
Considera una política de la organización para restringir las ubicaciones en las que se pueden crear los recursos según las etiquetas aplicadas a esos recursos. Para ello,
crear una política de la organización que aplique las gcp.resourceLocations
restricciones y usar condiciones para limitar la aplicación solo a ciertos recursos.
Para comenzar, crea un archivo temporal, /tmp/policy.yaml
, que contenga tus
política de la organización:
name: organizations/ORGANIZATION_ID/policies/gcp.resourceLocations
spec:
rules:
- condition:
expression: "resource.matchTag('ORGANIZATION_ID/location', 'us-east')"
values:
allowedValues:
- in:us-east1-locations
- condition:
expression: "resource.matchTag('ORGANIZATION_ID/location', 'us-west')"
values:
allowedValues:
- in:us-west1-locations
- values:
deniedValues:
- in:asia-south1-locations
Reemplaza ORGANIZATION_ID
por la organización superior de
tu clave de etiqueta.
En este ejemplo, cualquier recurso que tenga adjunta la etiqueta location: us-east
se restringirán a las ubicaciones dentro del grupo de valores us-east1-locations
. Cualquiera
el recurso que tiene la etiqueta location: us-west
adjunta se restringirá a
ubicaciones dentro del grupo de valores us-west1-locations
. Se bloquearán todos los recursos de la organización desde las ubicaciones dentro del grupo de valores asia-south1-locations
.
Luego, configura la política con el comando set-policy
:
gcloud org-policies set-policy /tmp/policy.yaml
Restringe los recursos sin etiqueta
Puedes usar etiquetas y políticas de organización condicionales para restringir los recursos que no usen una etiqueta en particular. Si estableces una política de la organización un recurso que restringe servicios y lo hace condicional a la presencia de una etiqueta de recurso, no se podrán usar recursos secundarios que desciendan de ese recurso, a menos que que se te haya etiquetado. De esta manera, los recursos deben configurarse de acuerdo con tu plan de administración antes de que se puedan usar.
Para restringir recursos de organizaciones, carpetas o proyectos sin etiquetar, puedes usar el
Operador lógico !
en una consulta condicional cuando se crea tu organización
política de la empresa.
Por ejemplo, para permitir el uso de sqladmin.googleapis.com
solo en proyectos.
que tengan la etiqueta sqladmin=enabled
, puedes crear una política de la organización que
rechaza sqladmin.googleapis.com
en proyectos que no tienen la etiqueta
sqladmin=enabled
Cómo crear una etiqueta que identifica si los recursos han tenido administración adecuada se aplicó. Por ejemplo, puedes crear una etiqueta con la clave
sqlAdmin
y el valorenabled
, para indicar que este recurso debe permitir el uso de la API de Cloud SQL Admin. Por ejemplo:Haz clic en el nombre de la etiqueta recién creada. Necesitas el nombre con espacio de nombres de la clave de etiqueta, que aparece en Ruta de la clave de la etiqueta, en los próximos pasos para crear una estado.
Crea una política de la organización Restrict Resource Service Usage a nivel. del recurso de tu organización para denegar el acceso a la API de Cloud SQL Admin. Por ejemplo:
Agrega una condición a la política de la organización anterior y especifica que la política se aplicará si la etiqueta de administración no está presente. El operador lógico NOT no es compatible con el creador de condiciones, por lo que esta condición debe crearse. en el editor de condiciones. Por ejemplo:
!resource.matchTag("012345678901/sqlAdmin", "enabled")
Ahora, la etiqueta sqlAdmin=enabled
debe adjuntarse a un proyecto o heredarse de él antes de que los desarrolladores puedan usar la API de Administrador de Cloud SQL con ese proyecto.
Herencia de la política de la organización
Las restricciones de la Lista de políticas de la organización que se habilitan mediante etiquetas se fusionarán con la política de la organización existente, según las reglas de herencia normales. Estas reglas condicionales solo se aplicarán si la condición es verdadera.
Las restricciones booleanas de la política de la organización habilitadas mediante etiquetas anularán la política de la organización existente. Además, debido a que las políticas booleanas solo pueden tener dos estados, verdadero o falso, todas las declaraciones condicionales deben ser lo opuesto a la declaración sin condición para evitar que varias etiquetas entren en conflicto.
Por ejemplo, considera una política de la organización que aplique la restricción disableSerialPortAccess
. El valor incondicional, que es el valor que se usa si no hay condiciones que lo anulen, es verdadero. Por lo tanto, cualquier otra declaración condicional para esta política debe establecerse en falso a fin de no entrar en conflicto.
¿Qué sigue?
Para obtener más información sobre el uso de etiquetas, lee el Página Crea y administra etiquetas.
Obtén más información para crear y administrar políticas de la organización Para obtener más información, consulta Usa restricciones.