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

Si deseas usar etiquetas para 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 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 los recursos de la organización, recursos de carpetas y recursos de proyectos. Las restricciones de la política de la organización ignorarán todas las etiquetas que se adjunten 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, establecidos en el mismo archivo de política.

Consola

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

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

      4. Puedes crear varias condiciones si haces clic en Agregar. Si agregas otra condición, puedes configurar la lógica condicional para que se requieran todas con solo activar And. Puedes configurar la lógica condicional para que solo una de las condiciones sea verdadera. Para ello, activa Or.

      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 las condiciones de las políticas 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 mostrará una renderización programática de tu conjunto actual de condiciones.

      1. Puedes usar el Editor de 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 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"]
        }
      }
    ]
  }
}

Aquí:

  • 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, 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 que solo restringe el acceso del puerto en serie a los recursos que tienen la etiqueta que coincide.

Consola

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 configurar 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 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 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 solo una regla incondicional, o la política no se puede 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.

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

      4. Puedes crear varias condiciones si haces clic en Agregar. Si agregas otra condición, puedes configurar la lógica condicional para que se requieran todas con solo activar And. Puedes configurar la lógica condicional para que solo una de las condiciones sea verdadera. Para ello, activa Or.

      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 solo una regla incondicional. Haz clic en Agregar regla y configura si la aplicación de esta política de la organización debe estar activada o desactivada 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 las condiciones de las políticas 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 mostrará una renderización programática de tu conjunto actual de condiciones.

      1. Puedes usar el Editor de 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 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
      }
    ]
  }
}

Aquí:

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

En la política de la organización anterior, se aplicará la restricción gcp.disableSerialPortAccess al recurso y a todos sus recursos secundarios. 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 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 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, 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 forzosa solo a 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 tu 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 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, consulta 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.