Crear y gestionar restricciones personalizadas

Google Cloud La política de organización te ofrece un control centralizado y programático sobre los recursos de tu organización. Como administrador de políticas de la organización, puedes definir una política de la organización, que es un conjunto de restricciones llamadas restricciones que se aplican a losGoogle Cloud recursos y a los elementos descendientes de esos recursos en la Google Cloud jerarquía de recursos. Puedes aplicar políticas de organización a nivel de organización, carpeta o proyecto.

La política de organización proporciona restricciones predefinidas para varios servicios deGoogle Cloud . Sin embargo, si quieres tener más control sobre las políticas de tu organización, puedes crear políticas de organización personalizadas.

En este documento se describe cómo puede ver, crear y gestionar políticas de organización personalizadas como administrador. Con las políticas de organización personalizadas, puedes personalizar el control de los campos específicos restringidos por las políticas de tu organización.

Antes de empezar

Roles obligatorios

Para obtener los permisos que necesitas para gestionar las políticas de la organización, pide a tu administrador que te conceda los siguientes roles de IAM en la organización:

Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar acceso a proyectos, carpetas y organizaciones.

También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.

Puedes delegar la administración de las políticas de organización añadiendo condiciones de IAM a la vinculación del rol de administrador de políticas de organización. Para controlar los recursos en los que una entidad puede gestionar las políticas de la organización, puedes hacer que la vinculación de roles dependa de una etiqueta concreta. Para obtener más información, consulta Usar restricciones.

Restricciones personalizadas

Una restricción personalizada se define en un archivo YAML, que especifica los recursos, los métodos, las condiciones y las acciones que están sujetos a la restricción. El comportamiento de las restricciones personalizadas y los parámetros admitidos son específicos de cada servicio. Las condiciones de las restricciones personalizadas se definen mediante el lenguaje de expresión común (CEL).

Configurar una restricción personalizada

Puedes crear una restricción personalizada y configurarla para usarla en políticas de organización mediante la Google Cloud consola o la CLI de Google Cloud.

Consola

Para crear una restricción personalizada, sigue estos pasos:

  1. En la Google Cloud consola, ve a la página Políticas de la organización.

    Ir a Políticas de la organización

  2. En el selector de proyectos, selecciona el proyecto en el que quieras definir la política de la organización.
  3. Haz clic en Restricción personalizada.
  4. En el cuadro Nombre visible, introduce un nombre legible para la restricción. Este nombre se usa en los mensajes de error y se puede usar para identificar y depurar. No utilices información personal identificable ni datos sensibles en los nombres visibles, ya que estos nombres podrían mostrarse en mensajes de error. Este campo puede contener hasta 200 caracteres.
  5. En el cuadro ID de restricción, escribe el nombre que quieras asignar a la nueva restricción personalizada. Una restricción personalizada solo puede contener letras (mayúsculas y minúsculas) o números, como custom.disableGkeAutoUpgrade. Este campo puede contener hasta 70 caracteres, sin contar el prefijo (custom.). Por ejemplo, organizations/123456789/customConstraints/custom. No incluyas IPI ni datos sensibles en el ID de la restricción, ya que podría exponerse en mensajes de error.
  6. En el cuadro Description, introduce una descripción de la restricción que sea legible por humanos. Esta descripción se usa como mensaje de error cuando se infringe la política. Incluye detalles sobre por qué se ha producido la infracción de las políticas y cómo resolverla. No incluyas IPI ni datos sensibles en la descripción, ya que podrían exponerse en mensajes de error. Este campo puede contener hasta 2000 caracteres.
  7. En el cuadro Tipo de recurso, seleccione el nombre del Google Cloud recurso REST que contenga el objeto y el campo que quiera restringir. Por ejemplo, container.googleapis.com/NodePool. La mayoría de los tipos de recursos admiten hasta 20 restricciones personalizadas. Si intentas crear más restricciones personalizadas, la operación fallará.
  8. En Método de aplicación, selecciona si quieres aplicar la restricción al método CREATE de REST o a los métodos CREATE y UPDATE. Si aplicas la restricción con el método UPDATE en un recurso que la infringe, la política de la organización bloqueará los cambios en ese recurso, a menos que el cambio resuelva la infracción.
  9. No todos los Google Cloud servicios admiten ambos métodos. Para ver los métodos admitidos de cada servicio, busca el servicio en Servicios admitidos.

  10. Para definir una condición, haz clic en Editar condición.
    1. En el panel Añadir condición, crea una condición de CEL que haga referencia a un recurso de servicio compatible, por ejemplo, resource.management.autoUpgrade == false. Este campo puede contener hasta 1000 caracteres. Para obtener más información sobre el uso de CEL, consulta el artículo Lenguaje de expresión común. Para obtener más información sobre los recursos de servicio que puede usar en sus restricciones personalizadas, consulte Servicios admitidos en restricciones personalizadas.
    2. Haz clic en Guardar.
  11. En Acción, seleccione si quiere permitir o denegar el método evaluado si se cumple la condición.
  12. La acción de denegación significa que la operación para crear o actualizar el recurso se bloquea si la condición se evalúa como verdadera.

    La acción de permitir significa que la operación para crear o actualizar el recurso solo se permite si la condición se evalúa como verdadera. Se bloquean todos los demás casos, excepto los que se incluyan explícitamente en la condición.

  13. Haz clic en Crear restricción.
  14. Cuando haya introducido un valor en cada campo, aparecerá a la derecha la configuración YAML equivalente de esta restricción personalizada.

gcloud

  1. Para crear una restricción personalizada, crea un archivo YAML con el siguiente formato:
  2.       name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
          resourceTypes:
          - RESOURCE_NAME
          methodTypes:
          - CREATE
          condition: "CONDITION"
          actionType: ACTION
          displayName: DISPLAY_NAME
          description: DESCRIPTION
          

    Haz los cambios siguientes:

    • ORGANIZATION_ID: el ID de tu organización, como 123456789.
    • CONSTRAINT_NAME: el nombre que quieras asignar a la nueva restricción personalizada. Una restricción personalizada solo puede contener letras (incluidas mayúsculas y minúsculas) o números. Por ejemplo, custom.disableGkeAutoUpgrade. Este campo puede contener hasta 70 caracteres.
    • RESOURCE_NAME: nombre completo del recurso Google Cloud que contiene el objeto y el campo que quieres restringir. Por ejemplo, container.googleapis.com/NodePool.
    • CONDITION: una condición de CEL que se escribe en una representación de un recurso de servicio admitido. Este campo puede contener hasta 1000 caracteres. Por ejemplo, "resource.management.autoUpgrade == false".
    • ACTION: la acción que se debe llevar a cabo si se cumple la condition. Los valores posibles son ALLOW y DENY.
    • La acción de permitir significa que, si la condición se evalúa como verdadera, se permite la operación para crear o actualizar el recurso. Esto también significa que se bloquearán todos los demás casos, excepto el que se haya incluido explícitamente en la condición.

      La acción de denegación significa que, si la condición se evalúa como verdadera, se bloquea la operación para crear o actualizar el recurso.

    • DISPLAY_NAME: nombre descriptivo de la restricción. Este campo puede contener hasta 200 caracteres.
    • DESCRIPTION: descripción de la restricción que se puede leer fácilmente y que se muestra como mensaje de error cuando se infringe la política. Este campo puede contener hasta 2000 caracteres.
  3. Una vez que hayas creado el archivo YAML de una nueva restricción personalizada, debes configurarla para que esté disponible en las políticas de organización de tu organización. Para configurar una restricción personalizada, usa el comando gcloud org-policies set-custom-constraint:
  4.         gcloud org-policies set-custom-constraint CONSTRAINT_PATH
          

    Sustituye CONSTRAINT_PATH por la ruta completa del archivo de restricción personalizada. Por ejemplo, /home/user/customconstraint.yaml.

    Una vez completada esta operación, tus restricciones personalizadas estarán disponibles como políticas de organización en tu lista de Google Cloud políticas de organización.

  5. Para verificar que la restricción personalizada existe, usa el comando gcloud org-policies list-custom-constraints:
  6.       gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
          

    Sustituye ORGANIZATION_ID por el ID del recurso de tu organización.

    Para obtener más información, consulta Ver las políticas de la organización.

Actualizar una restricción personalizada

Para actualizar una restricción personalizada, edítala en laGoogle Cloud consola o crea un archivo YAML y vuelve a usar el comando set-custom-constraintgcloud CLI. No hay control de versiones de las restricciones personalizadas, por lo que se sobrescribe la restricción personalizada. Si la restricción personalizada ya se ha aplicado, la restricción personalizada actualizada se aplicará de inmediato.

Consola

  1. En la Google Cloud consola, ve a la página Políticas de la organización.

    Ir a Políticas de la organización

  2. Selecciona el selector de proyectos en la parte superior de la página.

  3. En el selector de proyectos, selecciona el recurso cuya política de organización quieras actualizar.

  4. Selecciona la restricción que quieras editar en la lista de la página Políticas de organización para abrir la página Detalles de la política de esa restricción.

  5. Haz clic en Editar restricción.

  6. Cambia el nombre visible, la descripción, el método de aplicación, la condición y la acción. No puedes cambiar el ID de la restricción ni el tipo de recurso después de crear la restricción.

  7. Haz clic en Guardar cambios.

gcloud

  1. Obtén la restricción personalizada actual con el comando gcloud org-policies describe-custom-constraint.

    gcloud org-policies describe-custom-constraint CONSTRAINT_NAME \
      --organization=ORGANIZATION_ID \
      --format=FORMAT > PATH
    

    Haz los cambios siguientes:

    • ORGANIZATION_ID: el ID de tu organización, como 123456789.

    • CONSTRAINT_NAME: el nombre de la restricción personalizada, por ejemplo, custom.disableGkeAutoUpgrade.

    • FORMAT: el formato de la política de permiso. Usa json o yaml.

    • PATH: la ruta a un nuevo archivo de salida para la restricción personalizada.

  2. Modifica la copia local de la restricción personalizada para reflejar los cambios que quieras hacer en el nombre visible, la descripción, el método de aplicación, la condición y la acción. No puedes cambiar el ID de la restricción ni el tipo de recurso después de crear la restricción.

  3. Una vez que hayas actualizado el archivo YAML de tu restricción personalizada, configúralo para que esté disponible en las políticas de la organización de tu organización. Para configurar una restricción personalizada, usa el comando gcloud org-policies set-custom-constraint:

    gcloud org-policies set-custom-constraint CONSTRAINT_PATH
    

    Sustituye CONSTRAINT_PATH por la ruta completa del archivo de restricciones personalizado.

Una vez que se haya completado la actualización, la restricción personalizada actualizada estará disponible para las políticas de tu organización. Si la restricción original ya se ha aplicado, la restricción actualizada se aplicará de inmediato.

Eliminar una restricción personalizada

Puedes eliminar una restricción personalizada mediante la Google Cloud consola o la CLI de Google Cloud.

Consola

  1. En la Google Cloud consola, ve a la página Políticas de la organización.

    Ir a Políticas de la organización

  2. Selecciona el selector de proyectos en la parte superior de la página.

  3. En el selector de proyectos, selecciona el recurso cuya política de organización quieras eliminar.

  4. Selecciona la restricción que quieras eliminar de la lista de la página Políticas de organización para abrir la página Detalles de la política de esa restricción.

  5. Haz clic en Eliminar.

  6. Para confirmar que quieres eliminar la restricción, haz clic en Eliminar.

gcloud

Para eliminar una restricción personalizada, usa el comando org-policies delete-custom-constraint gcloud CLI:

gcloud org-policies delete-custom-constraint custom.CONSTRAINT_NAME \
  --organization=ORGANIZATION_ID

Haz los cambios siguientes:

  • ORGANIZATION_ID: el ID de tu organización, como 123456789.

  • CONSTRAINT_NAME: el nombre de tu restricción personalizada. Por ejemplo, custom.disableGkeAutoUpgrade.

El resultado debería ser similar al siguiente:

Deleted custom constraint [organizations/123456789/customConstraints/custom.disableGkeAutoUpgrade]

Si elimina una restricción personalizada, las políticas que se hayan creado con esa restricción seguirán existiendo, pero se ignorarán. No puedes crear otra restricción personalizada con el mismo nombre que una restricción personalizada eliminada.

Probar y analizar los cambios en las políticas de la organización

Te recomendamos que pruebes todos los cambios en las políticas de tu organización para saber cómo afectan a tu entorno.

El simulador de políticas de la organización te ayuda a entender el efecto de una restricción y una política de la organización en tu entorno actual. Con esta herramienta, puedes revisar todas las configuraciones de recursos para ver dónde se producen infracciones antes de que se aplique la política en tu entorno de producción. Para obtener instrucciones detalladas, consulta el artículo Probar los cambios en las políticas de la organización con el simulador de políticas.

Cuando conozcas el efecto actual, podrás crear una política de la organización en modo de prueba para entender el impacto y las posibles infracciones de una política durante los próximos 30 días. Una política de la organización en modo de prueba es un tipo de política de la organización en el que las infracciones de la política se registran en un registro de auditoría, pero no se deniegan las acciones infractoras. Puedes crear una política de organización en modo de prueba desde una restricción personalizada mediante la Google Cloud consola o la CLI de Google Cloud. Para obtener instrucciones detalladas, consulta Crear una política de organización en modo de prueba.

Aplicar una política de organización personalizada

Una vez que se ha configurado una restricción personalizada, funciona de forma idéntica a las restricciones booleanas predefinidas. Google Cloud comprueba primero las restricciones personalizadas al evaluar si se permite una solicitud de usuario. Si alguna de las políticas de la organización personalizada deniega la solicitud, esta se rechaza. A continuación, Google Cloud comprueba si se han aplicado políticas de organización predefinidas en ese recurso.

Para aplicar una restricción, crea una política de organización que haga referencia a ella y, a continuación, aplica esa política de organización a un Google Cloud recurso.

Consola

  1. En la Google Cloud consola, ve a la página Políticas de la organización.

    Ir a Políticas de la organización

  2. En el selector de proyectos, selecciona el proyecto en el que quieras definir la política de organización.
  3. En la lista de la página Políticas de organización, selecciona la restricción para ver la página Detalles de la política correspondiente.
  4. Para configurar la política de organización de este recurso, haz clic en Gestionar política.
  5. En la página Editar política, selecciona Anular política del recurso superior.
  6. Haz clic en Añadir regla.
  7. En la sección Aplicación, selecciona si esta política de la organización se aplica o no.
  8. Opcional: Para que la política de la organización dependa de una etiqueta, haz clic en Añadir condición. Ten en cuenta que, si añades una regla condicional a una política de organización, debes añadir al menos una regla incondicional o la política no se podrá guardar. Para obtener más información, consulta el artículo Configurar una política de organización con etiquetas.
  9. Haz clic en Probar cambios para simular el efecto de la política de la organización. Para obtener más información, consulta Probar los cambios en las políticas de la organización con el simulador de políticas.
  10. Para aplicar la política de la organización en modo de prueba de funcionamiento, haz clic en Definir política de prueba de funcionamiento. Para obtener más información, consulta Crear una política de organización en modo de prueba.
  11. Una vez que hayas verificado que la política de la organización en modo de prueba funciona correctamente, define la política activa haciendo clic en Definir política.

gcloud

  1. Para crear una política de organización con reglas booleanas, crea un archivo YAML de política que haga referencia a la restricción:
  2.         name: projects/PROJECT_ID/policies/CONSTRAINT_NAME
            spec:
              rules:
              - enforce: true
            
            dryRunSpec:
              rules:
              - enforce: true
            
          

    Haz los cambios siguientes:

    • PROJECT_ID: el proyecto en el que quieras aplicar la restricción.
    • CONSTRAINT_NAME: el nombre que has definido para tu restricción personalizada. Por ejemplo, custom.disableGkeAutoUpgrade.
  3. Para aplicar la política de la organización en el modo de prueba, ejecuta el siguiente comando con la marca dryRunSpec:
  4.         gcloud org-policies set-policy POLICY_PATH \
              --update-mask=dryRunSpec
          

    Sustituye POLICY_PATH por la ruta completa al archivo YAML de la política de tu organización. La política tarda hasta 15 minutos en aplicarse.

  5. Una vez que haya verificado que la política de la organización en modo de prueba funciona correctamente, defina la política activa con el comando org-policies set-policy y la marca spec:
  6.         gcloud org-policies set-policy POLICY_PATH \
              --update-mask=spec
          

    Sustituye POLICY_PATH por la ruta completa al archivo YAML de la política de tu organización. La política tarda hasta 15 minutos en aplicarse.

Ejemplo de restricción

Puedes definir restricciones personalizadas similares a las predefinidas que ofrece Google. Un archivo YAML de restricción personalizada típico tiene un aspecto similar al siguiente:

name: organizations/1234567890123/customConstraints/custom.disableGkeAutoUpgrade
resourceTypes:
- container.googleapis.com/NodePool
methodTypes:
- CREATE
- UPDATE
condition: "resource.management.autoUpgrade == false"
actionType: ALLOW
displayName: Disable GKE auto upgrade
description: Only allow GKE NodePool resource to be created or updated if
AutoUpgrade is not enabled where this custom constraint is enforced.

lenguaje de expresión común

El servicio de políticas de organización usa el lenguaje de expresión común (CEL) para evaluar las condiciones de las restricciones personalizadas. CEL es un lenguaje de código abierto no Turing completo que implementa semánticas comunes para la evaluación de expresiones.

Cada servicio que admite restricciones personalizadas pone a disposición un conjunto concreto de sus recursos y los campos de estos recursos. Los campos disponibles tienen un tipo definido y las restricciones personalizadas pueden hacer referencia a ellos directamente.

Puedes crear condiciones de CEL que hagan referencia a campos de recursos de servicio en función del tipo de campo. Organization Policy Service admite un subconjunto de tipos de datos, expresiones y macros de CEL. En las siguientes secciones se enumeran los tipos de datos disponibles y las expresiones y macros habituales que funcionan con ellos.

Para obtener información sobre las expresiones y macros disponibles para cada servicio, consulta el artículo Servicios compatibles con restricciones personalizadas.

En el siguiente ejemplo de JSON se muestra cada uno de los tipos de campos que puedes consultar mediante restricciones personalizadas:

{
  "integerValue": 1,
  "stringValue": "A text string",
  "booleanValue": true,
  "nestedValue": {
    "nestedStringValue": "Another text string"
  },
  "listValue": ["foo", "bar"],
  "mapValue": {
    "costCenter": "123"
  }
}

En cada expresión CEL, la restricción personalizada se aplica cuando la condición se evalúa como true. Puedes combinar expresiones con los operadores "y" (&&) y "o" (||) para crear una consulta compleja. Cuando crees el archivo YAML o JSON de tu restricción personalizada, incluye la consulta completa entre comillas dobles (").

Entero

Los campos de números enteros, como integerValue en el ejemplo anterior, permiten usar operadores de comparación en las condiciones. Por ejemplo:

resource.integerValue == 1
resource.integerValue > 5
resource.integerValue < 10

Cadena

Los campos de cadena, como stringValue en el ejemplo anterior, se pueden evaluar mediante un literal de cadena, una expresión regular o una expresión CEL. Por ejemplo:

resource.stringValue == "abc"
// stringValue is exactly "abc".

resource.stringValue.matches("dev$")
// stringValue matches a regular expression, which specifies the string ends
// with the word "dev".

resource.stringValue.startsWith("startValue")
// stringValue starts with "startValue".

resource.stringValue.endsWith("endValue")
// stringValue ends with "endValue".

resource.stringValue.contains("fooBar")
// stringValue contains "fooBar".

Los campos anidados, como nestedStringValue en el ejemplo anterior, deben hacerse referencia con la ruta completa. Por ejemplo:

resource.nestedValue.nestedStringValue == "foo"
// nestedValue contains the object nestedStringValue, which has a value of "foo".

Booleano

Los campos booleanos, como booleanValue en el ejemplo anterior, contienen un valor booleano, que puede ser true o false.

Lista

Los campos de lista, como listValue en el ejemplo anterior, se pueden evaluar según el tamaño de la lista, el contenido de la lista y si un elemento concreto se encuentra en cualquier parte de la lista.

Por ejemplo:

resource.listValue.size() >= 1 && resource.listValue[0] == "bar"
// listValue has size greater than or equal to one, and the first element is "bar".

resource.listValue.exists(value, value == "foo")
// listValue has at least one element that is exactly "foo".

resource.listValue.all(value, value.contains("foo"))
// listValue is a list of values that are all exactly "foo".

Mapa

Los campos de mapa, como mapValue en el ejemplo anterior, son pares clave-valor que se pueden evaluar en función de la existencia y el valor de elementos concretos.

Por ejemplo:

has(resource.mapValue.foo) && resource.mapValue.foo == "bar"
// mapValue contains the key "foo", and that key has the value "bar".

Solucionar problemas con las restricciones personalizadas

En las siguientes secciones se describen problemas habituales relacionados con la creación de restricciones personalizadas y se presentan soluciones alternativas para estos problemas.

Errores de tipo de método

Las restricciones personalizadas se crean con una lista de métodos que se deben aplicar. Normalmente, se trata de CREATE o de CREATE y UPDATE. Si especificas un tipo de método que no es compatible con un recurso, como el método UPDATE para los recursos de imagen de Compute Engine, no podrás guardar la restricción personalizada.

Etiquetas no evaluadas

Las etiquetas de los recursos de organizaciones, carpetas o proyectos se admiten en las restricciones personalizadas. Para obtener más información sobre los servicios que admiten etiquetas, consulta la documentación específica de cada servicio.

Restricciones entre servicios

Algunos servicios, como Compute Engine, implican un gran número de recursos relacionados. El mensaje de error de una infracción de una política de organización personalizada se muestra cuando se produce la infracción, aunque la restricción personalizada sea de otro servicio.

Por ejemplo, una acción de Dataproc puede bloquearse por una restricción personalizada en los recursos de Compute Engine.

Solucionar errores de CEL

Organization Policy Service compila y valida las condiciones que creas, y devuelve un error si la condición no es sintácticamente correcta. Si no puedes crear ni guardar una restricción personalizada, es probable que se haya producido un error de sintaxis de CEL no válido, que debes solucionar primero.

En la Google Cloud consola, los errores de sintaxis de CEL no válidos se marcarán con un icono de error. Si resaltas este icono, se mostrará una descripción emergente con más información sobre el error de sintaxis.

Es posible que se compilen algunas condiciones, pero que se produzca un error cuando Google Cloud intente aplicar las restricciones. Por ejemplo, si configuras una restricción con una condición que intenta acceder a un índice de lista o a una clave de mapa que no existe, la restricción falla y devuelve un error en el momento de la aplicación, y bloquea cualquier intento de crear el recurso.

En las siguientes secciones se describen los errores habituales de CEL y las posibles soluciones para estos errores.

Expresión no válida o error de tipo

Si se crea una condición con expresiones no válidas o con tipos que no coinciden, se devolverá un error cuando intentes configurar la restricción personalizada. Por ejemplo, dada la siguiente restricción personalizada no válida, que compara una cadena con un número entero:

name: organizations/1234567890123/customConstraints/custom.badConfig
resourceTypes:
- dataproc.googleapis.com/Cluster
methodTypes:
- CREATE
- UPDATE
condition: "resource.config.masterConfig.numInstances == 'mismatch'"
actionType: ALLOW
displayName: Number of instances is a string
description: Demonstrate that type mismatches cause an error.

Se produce un error si intentas configurar esa restricción con la CLI de Google Cloud:

ERROR: (gcloud.org-policies.set-custom-constraint) INVALID_ARGUMENT: Custom constraint condition [resource.config.masterConfig.numInstances == "mismatch"] is invalid. Error: ERROR: <input>:1:15: found no matching overload for '_==_' applied to '(int, string)' (candidates: (%A0, %A0))
 | resource.config.masterConfig.numInstances == "mismatch"
 | ..........................................^.

En la Google Cloud consola, los errores de sintaxis de CEL no válidos se marcarán con un icono de error. Si resaltas este icono, se mostrará una descripción emergente con más información sobre el error de sintaxis.

Organization Policy Service compila y valida las condiciones que creas, y devuelve un error si la condición no es sintácticamente correcta. Sin embargo, es posible que algunas condiciones se compilen, pero devuelvan un error cuando se Google Cloud intente aplicar las restricciones. Por ejemplo, si configura una restricción con una condición que intenta acceder a un índice de lista o a una clave de mapa que no existe, la restricción falla y devuelve un error en el momento de la aplicación, y bloquea cualquier intento de crear el recurso.

Cuando crees condiciones que dependan de elementos de listas o mapas, te recomendamos que empieces la condición con una comprobación que asegure que la condición es válida en todos los casos. Por ejemplo, comprueba list.size() antes de hacer referencia a un elemento de una lista concreta o usa has() antes de hacer referencia a un elemento de un mapa.

Servicios admitidos

Cada servicio define el conjunto de campos de restricciones personalizadas que se pueden usar para aplicar políticas de organización a sus recursos. Para ver una lista de los servicios que admiten restricciones personalizadas, consulta Servicios compatibles con restricciones personalizadas.

Para obtener más información sobre cómo configurar un escáner de políticas de la organización, consulta Resultados de vulnerabilidades de las políticas de la organización.

Aplicar etiquetas obligatorias en los recursos

Puedes aplicar etiquetas obligatorias a los recursos mediante una política de organización personalizada. Cuando aplicas etiquetas obligatorias, solo puedes crear recursos que cumplan las políticas de etiquetado de tu organización. Es decir, los recursos están vinculados a los valores de las claves de etiqueta obligatorias especificadas en la política. Para obtener más información, consulta Configurar una restricción personalizada para aplicar etiquetas.

Siguientes pasos