Se usó la API de Cloud Translation para traducir esta página.
Switch to English

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

Las etiquetas proporcionan una forma para 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 en 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.

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 debe aplicarse 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 y requiere que se establezca un valor de etiqueta en particular para 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 utiliza valores condicionales y no condicionales que se establecen dentro del mismo archivo de política.

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

gcloud org-policies set-policy POLICY_PATH

En el que POLICY_PATH es la ruta de acceso completa al archivo JSON de la política de la organización, que debe ser similar a lo siguiente:

{
  "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 tu ID de organización, ID de carpeta, ID del proyecto o número de 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 aplicada la restricción gcp.resourceLocations con solo allowedValues de us-east1-locations. En cualquiera de estos recursos que tengan la etiqueta location: us-west1, se aplicará la restricción gcp.resourceLocations, 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 correspondiente.

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

gcloud org-policies set-policy POLICY_PATH

En el que POLICY_PATH es la ruta de acceso completa al archivo JSON de la política de la organización, que debe ser similar a lo siguiente:

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

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á todos los recursos que tengan la etiqueta disableSerialAccess: yes. Cualquier recurso que no tenga la etiqueta disableSerialAccess: yes no tendrá la restricción aplicada en función de ellos.

Agregar restricciones condicionalmente 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 adjuntan. 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 una política de la organización para restringir las ubicaciones en las que se podrían crear los 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 para limitar la aplicación a solo ciertos recursos.

Primero, crea un archivo temporal, /tmp/policy.yaml, para contener 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

En el que 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 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. Todos los recursos de la organización se bloqueará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

Herencia de políticas de la organización

Las restricciones de la Lista de políticas de la organización que se habilitan con etiquetas se combinarán con la política de la organización existente, según las reglas normales de herencia. Estas reglas condicionales solo se aplicarán si la condición es verdadera.

Las restricciones Booleanas de la política de la organización que se habilitan con 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 la oposición de la declaración no condicional para evitar que varias etiquetas entren en conflicto.

Por ejemplo, considera una política de la organización que aplica 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 las etiquetas, lee la página Crea y administra etiquetas.

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