Establece una política de la organización con etiquetas

Las etiquetas proporcionan una forma de permitir o rechazar políticas de forma condicional en función de si un recurso tiene una etiqueta específica. Puedes usar etiquetas y la aplicación condicional de las políticas de la organización para proporcionar un control centralizado de los recursos de tu jerarquía.

Antes de comenzar

Para obtener más información sobre qué son las etiquetas y cómo funcionan, consulta la descripción general de las Etiquetas.

Si quieres obtener instrucciones detalladas para usar etiquetas, consulta Crea y administra etiquetas.

Establece una política de la organización con etiquetas

Si quieres usar etiquetas para determinar dónde se aplicará una política de la organización, debes especificar una condición en el archivo YAML de la política de la organización. Puedes configurar la condición para que coincida con un par clave-valor de etiqueta en particular que requiera que se establezca un valor de etiqueta en particular a fin de que se aplique la política de la organización.

Ejemplo de política de listas

En el siguiente ejemplo, se muestra cómo configurar un archivo de política de la organización que aplique la restricción gcp.resourceLocations. Esta política de la organización usa valores condicionales y no condicionales, configurados en el mismo archivo de políticas.

Console

Para configurar la política de la organización, haz lo siguiente:

  1. Abre la página Políticas de la organización en Google Cloud Console.

    Abrir la página 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 proyecto para el que deseas establecer la política de la organización.

  4. Selecciona una restricción de la lista en la página Políticas de la organización. Debería aparecer la página Detalles de la política de esa restricción.

  5. Si deseas personalizar las políticas de la organización para este recurso, haz clic en Editar (Edit).

  6. En la página Editar, selecciona Personalizar (Customize).

  7. 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.

  8. Haz clic en Agregar regla.

  9. 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.

  10. De manera opcional, para que la política de la organización sea condicional en una etiqueta, haz clic en Agregar condición.

    1. En el campo Título, ingresa un nombre para la condición.

    2. En el campo Descripción, ingresa una descripción de la condición. La descripción proporciona contexto sobre las etiquetas que se requieren y cómo afectan a los recursos.

    3. Puedes usar el Creador de condiciones a fin de crear una condición que requiera una etiqueta en particular para que se aplique la restricción.

      1. Seleccione Etiqueta en el menú desplegable Tipo de condición.

      2. Selecciona el Operador para tu condición. Para hacer coincidir una etiqueta completa, usa el operador matchs. Para hacer coincidir una clave de etiqueta y un valor de etiqueta, usa el operador matchs ID.

      3. Si seleccionaste el operador matches, ingresa el nombre del valor con espacio de nombres de la etiqueta. Si seleccionaste el operador coincidencias de ID, ingresa los ID de clave y valor.

      4. Puede crear varias condiciones si hace clic en Agregar. Si agregas otra condición, puedes configurar la lógica condicional para que requiera todas ellas con el interruptor And. Puedes configurar la lógica condicional para que solo requiera que una de las condiciones sea verdadera mediante la activación de Or.

      5. Para borrar una expresión, haz clic en la X grande a la derecha de los campos de la condición.

      6. Cuando haya terminado de editar sus condiciones, haga clic en Guardar.

      En la siguiente figura, se muestra un ejemplo de configuración de una política de la organización que incluye condiciones.

      Ejemplo de la IU de condiciones de la política de la organización.

    4. El Editor de condición se puede usar para crear una expresión condicional de manera programática. También se mostrará un procesamiento programático del conjunto actual de condiciones.

      1. Puedes usar el Editor de condiciones 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 etiqueta us-west1.
  11. Para finalizar y aplicar la política de la organización, haz clic en Guardar (Save).

gcloud

Para configurar la política de la organización, ejecuta el siguiente comando:

gcloud org-policies set-policy POLICY_PATH

En el ejemplo anterior, POLICY_PATH es la ruta de acceso completa al archivo JSON de la política de la organización, que debería verse de la siguiente manera:

{
  "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"]
        }
      }
    ]
  }
}

Donde:

  • RESOURCE_TYPE es organizations, folders o projects.

  • RESOURCE_ID es el ID de la organización, el de la carpeta, el ID del proyecto o el número del proyecto, según el tipo de recurso especificado en RESOURCE_TYPE.

  • ORGANIZATION_ID es la organización superior de la clave de etiqueta.

Para la política de la organización anterior, el recurso y todos sus recursos secundarios tendrán la restricción gcp.resourceLocations aplicada, con allowedValues de us-east1-locations únicamente. 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ítica de la organización que aplique la restricción compute.disableSerialPortAccess. Esta política de la organización especifica que todos los puertos en serie son accesibles para los recursos, pero usa una condición que restringe solo el acceso a los puertos en serie a los recursos que tienen la etiqueta coincidente.

Console

Para configurar la política de la organización, haz lo siguiente:

  1. Abre la página Políticas de la organización en Google Cloud Console.

    Abrir la página 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 proyecto para el que deseas establecer la política de la organización.

  4. Selecciona una restricción de la lista en la página Políticas de la organización. Debería aparecer la página Detalles de la política de esa restricción.

  5. Si deseas personalizar las políticas de la organización para este recurso, haz clic en Editar (Edit).

  6. En la página Editar, selecciona Personalizar.

  7. Haz clic en Agregar regla.

  8. En Aplicación, selecciona si la aplicación de esta política de la organización debe estar activada o desactivada.

  9. De manera opcional, para 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 una política de la organización, debes agregar al menos una regla incondicional; de lo contrario, la política no se podrá guardar.

    1. En el campo Título, ingresa un nombre para la condición.

    2. En el campo Descripción, ingresa una descripción de la condición. La descripción proporciona contexto sobre las etiquetas que se requieren y cómo afectan a los recursos.

    3. Puedes usar el Creador de condiciones a fin de crear una condición que requiera una etiqueta en particular para que se aplique la restricción.

      1. Seleccione Etiqueta en el menú desplegable Tipo de condición.

      2. Selecciona el Operador para tu condición. Para hacer coincidir una etiqueta completa, usa el operador matchs. Para hacer coincidir una clave de etiqueta y un valor de etiqueta, usa el operador matchs ID.

      3. Si seleccionaste el operador matches, ingresa el nombre del valor con espacio de nombres de la etiqueta. Si seleccionaste el operador coincidencias de ID, ingresa los ID de clave y valor.

      4. Puede crear varias condiciones si hace clic en Agregar. Si agregas otra condición, puedes configurar la lógica condicional para que requiera todas ellas con el interruptor And. Puedes configurar la lógica condicional para que solo requiera que una de las condiciones sea verdadera mediante la activación de Or.

      5. Para borrar una expresión, haz clic en la X grande a la derecha de los campos de la condición.

      6. Cuando haya terminado de editar sus condiciones, haga clic en Guardar.

      7. Una política de la organización con una condición aplicada debe tener al menos una regla incondicional. Haz clic en Agregar regla y establece si la aplicación de esta política de la organización debe activarse o desactivar de forma predeterminada.

      En la siguiente figura, se muestra un ejemplo de configuración de una política de la organización que incluye condiciones.

      Ejemplo de la IU de condiciones de la política de la organización.

    4. El Editor de condición se puede usar para crear una expresión condicional de manera programática. También se mostrará un procesamiento programático del conjunto actual de condiciones.

      1. Puedes usar el Editor de condiciones 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 etiqueta us-west1.
  10. Para finalizar y aplicar la política de la organización, haz clic en Guardar (Save).

gcloud

Para configurar la política de la organización, ejecuta el siguiente comando:

gcloud org-policies set-policy POLICY_PATH

En el ejemplo anterior, POLICY_PATH es la ruta de acceso completa al archivo JSON de la política de la organización, que debería verse de la siguiente manera:

{
  "name": "RESOURCE_TYPE/RESOURCE_ID/policies/gcp.disableSerialPortAccess",
  "spec": {
    "rules": [
      {
        "condition": {
          "expression": "resource.matchTag(\"ORGANIZATION_ID/disableSerialAccess\", \"yes\")"
        },
        "enforce": true
      },
      {
        "enforce": false
      }
    ]
  }
}

Donde:

  • RESOURCE_TYPE es organizations, folders o projects.

  • RESOURCE_ID es el ID de la organización, el ID de la carpeta, el ID del proyecto o el número del proyecto.

  • ORGANIZATION_ID es la organización superior de la clave de etiqueta.

Para la política de la organización anterior, el recurso y todos sus recursos secundarios tendrán la restricción gcp.disableSerialPortAccess aplicada. La política de la organización rechazará cualquier recurso que tenga la etiqueta disableSerialAccess: yes. No se aplicará la restricción a ningún recurso que no tenga la etiqueta disableSerialAccess: yes.

Agrega restricciones de forma condicional a la política de la organización

Puedes usar etiquetas para agregar de manera condicional restricciones de políticas de la organización a los 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 de los recursos a los que deseas aplicar 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 usar una política de la organización para restringir las ubicaciones en las que se pueden crear recursos según las etiquetas que se aplican a esos recursos. Para ello, crea una política de la organización que aplique la restricción gcp.resourceLocations y usa condiciones a fin de limitar la aplicación a solo ciertos recursos.

Para comenzar, crea un archivo temporal, /tmp/policy.yaml, que contenga la política de tu 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

Donde ORGANIZATION_ID es la organización superior de la clave de etiqueta.

En el ejemplo anterior, cualquier recurso que tenga la etiqueta location: us-east adjunta se restringirá a las ubicaciones dentro del grupo de valores us-east1-locations. Cualquier recurso que tenga la etiqueta location: us-west adjunta se restringirá a las ubicaciones dentro del grupo de valores us-west1-locations. Se bloquearán todos los recursos de la organización en las ubicaciones del grupo de valores asia-south1-locations.

Luego, configura la política mediante el comando set-policy:

gcloud org-policies set-policy /tmp/policy.yaml

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 cómo usar etiquetas, lee la página Crea y administra etiquetas.

A fin de obtener más información para crear y administrar restricciones de la política de la organización, consulta Usa restricciones.