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

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

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

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

Para usar etiquetas a fin de determinar dónde se debe 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 establecer la condición para que coincida con un par clave-valor de etiqueta en particular, lo que requiere que se establezca un valor de etiqueta en particular a fin de que se aplique la política de la organización.

Las etiquetas solo se evaluarán mediante políticas de la organización para recursos de la organización, recursos de carpetas y recursos del proyecto. Las restricciones de la política de la organización ignorarán las etiquetas adjuntas a los recursos del servicio.

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 que se establecen dentro del 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 de la página Políticas de la organización. Debería aparecer la página Detalles de la política para 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 a 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 para la condición. La descripción proporciona contexto sobre las etiquetas necesarias y cómo afectan 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. Selecciona 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 y un valor de etiqueta, usa el operador matchs ID (ID de coincidencia).

      3. Si seleccionaste el operador matches, ingresa el nombre de espacio de nombres de la etiqueta. Si seleccionaste el operador coincide con 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 se exijan todas mediante la activación y desactivación de And. Puedes establecer la lógica condicional para que se requiera que solo una de las condiciones sea verdadera si activas O.

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

      6. Cuando termines de editar las condiciones, haz 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 políticas de la organización.

    4. El Editor de condiciones se puede usar para crear una expresión condicional de manera programática. También mostrará una renderización programática de tu 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, de la carpeta, del proyecto o de un proyecto, según el tipo de recurso especificado en RESOURCE_TYPE.

  • ORGANIZATION_ID es la organización superior de tu 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 a fin de restringir solo el acceso del puerto 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 de la página Políticas de la organización. Debería aparecer la página Detalles de la política para 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 a 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, o 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 para la condición. La descripción proporciona contexto sobre las etiquetas necesarias y cómo afectan 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. Selecciona 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 y un valor de etiqueta, usa el operador matchs ID (ID de coincidencia).

      3. Si seleccionaste el operador matches, ingresa el nombre de espacio de nombres de la etiqueta. Si seleccionaste el operador coincide con 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 se exijan todas mediante la activación y desactivación de And. Puedes establecer la lógica condicional para que se requiera que solo una de las condiciones sea verdadera si activas O.

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

      6. Cuando termines de editar las condiciones, haz 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 configura si la aplicación forzosa de esta política de la organización debe activarse o desactivarse 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 políticas de la organización.

    4. El Editor de condiciones se puede usar para crear una expresión condicional de manera programática. También mostrará una renderización programática de tu 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 tu clave de etiqueta.

Para la política de la organización anterior, se aplicarán de forma forzosa la restricción gcp.disableSerialPortAccess al recurso y a todos sus recursos secundarios. La política de la organización rechazará los recursos que tengan 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 restricciones de políticas de la organización de forma condicional 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.

El 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 recursos en función de las etiquetas aplicadas a esos recursos. Para ello, crea una política de la organización que aplique la restricción gcp.resourceLocations y usa las condiciones a fin de limitar la aplicación a ciertos recursos.

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

En el ejemplo anterior, 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 ubicaciones dentro del grupo de valores us-east1-locations. Cualquier recurso que tenga la etiqueta location: us-west adjunta se restringirá a ubicaciones dentro del grupo de valores us-west1-locations. Se bloquearán los recursos de la organización de 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

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.

Para obtener más información sobre cómo crear y administrar las restricciones de las políticas de la organización, consulta Usa restricciones.