Crea una política de la organización en modo de ejecución de prueba

En esta página, se muestra cómo usar una política de la organización en modo de ejecución de prueba para supervisar cómo un cambio de política afectaría tus flujos de trabajo antes de que se aplique.

Se crea una política de la organización en modo de ejecución de prueba y se aplica de manera similar a otras políticas de la organización. Los incumplimientos de la política se registran en la auditoría, pero no se rechazan las acciones infractoras.

Antes de comenzar

A fin de usar una política de la organización en modo de ejecución de prueba, debes tener habilitada la facturación para tu proyecto de Google Cloud. Si quieres obtener información sobre cómo comprobar si la facturación está habilitada para un proyecto, consulta Verifica el estado de facturación de tus proyectos.

Para obtener más información sobre qué son las políticas y restricciones de la organización y cómo funcionan, consulta Introducción al Servicio de políticas de la organización.

Funciones obligatorias

Si quieres obtener los permisos que necesitas para administrar las políticas de la organización, pídele a tu administrador que te otorgue el rol de IAM Administrador de políticas de la organización (roles/orgpolicy.policyAdmin) en la organización. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.

Este rol predefinido contiene los permisos necesarios para administrar las políticas de la organización. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para administrar las políticas de la organización:

  • orgpolicy.constraints.list
  • orgpolicy.policies.create
  • orgpolicy.policies.delete
  • orgpolicy.policies.list
  • orgpolicy.policies.update
  • orgpolicy.policy.get
  • orgpolicy.policy.set

Es posible que también puedas obtener estos permisos con funciones personalizadas o con otras funciones predefinidas.

Limitaciones

Las únicas restricciones de las políticas de la organización disponibles para usar en las políticas de la organización de ejecución de prueba son las siguientes:

Si intentas crear una política de la organización en modo de ejecución de prueba mediante cualquier otra restricción, se generará un error.

Crea una política de la organización en modo de ejecución de prueba

Restricciones de lista

Puedes crear una política de la organización en modo de ejecución de prueba para una restricción de lista mediante la consola de Google Cloud o Google Cloud CLI. En los siguientes ejemplos, se muestra cómo crear una política de la organización en modo de ejecución de prueba que audita el efecto de la restricción de lista gcp.restrictServiceUsage.

Console

  1. En la consola de Google Cloud, 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 recurso para el que deseas configurar la política de la organización.

  3. Selecciona la restricción Restringir el uso de servicios de recursos de la lista que se encuentra en la página Políticas de la organización.

  4. Selecciona la pestaña Ejecución de prueba.

  5. Haz clic en Administrar la política de ejecución de prueba.

  6. En la página Editar política de ejecución de prueba, selecciona Anular política superior.

  7. En Aplicación de políticas, haz clic en Reemplazar.

  8. Haz clic en Agregar regla.

  9. En Valores de la política, selecciona Personalizado.

  10. En Tipo de política, selecciona Rechazar.

  11. En el cuadro Valores personalizados, ingresa compute.googleapis.com y, luego, haz clic en Listo.

  12. Si se trata de una restricción personalizada, puedes hacer clic en Probar cambios para simular el efecto de esta política de la organización. Para obtener más información, consulta Prueba los cambios en las políticas de la organización con el simulador de políticas.

  13. Para aplicar la política de la organización en modo de ejecución de prueba, haz clic en Configurar política de ejecución de prueba. También puedes hacer clic en Establecer política para establecer la política activa.

Para verificar el estado de la política de la organización en modo de ejecución de prueba, ve a la pestaña Ejecución de prueba de una restricción de la política de la organización.

En el caso de los proyectos que tienen una política de la organización en modo de ejecución de prueba aplicada, puedes ver los registros de auditoría si haces clic en Ver registros de rechazo. En esta política de la organización, los registros de auditoría muestran incumplimientos como si se aplicara la restricción Restrict Resource Service Usage para denegar compute.googleapis.com.

gcloud

Para crear una política de la organización en modo de ejecución de prueba, crea un archivo YAML que defina la restricción con dryRunSpec. Por ejemplo:

  name: RESOURCE_TYPE/RESOURCE_ID/policies/gcp.restrictServiceUsage
  dryRunSpec:
    rules:
      values:
        denied_values:
        - compute.googleapis.com

Reemplaza lo siguiente:

  • RESOURCE_TYPE con organizations, folders o projects

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

Esta política de la organización no aplicará de manera forzosa la restricción gcp.restrictServiceUsage, pero los registros de auditoría muestran incumplimientos como si lo hicieran.

Puedes establecer una política de la organización activa y una política de la organización de ejecución de prueba en el mismo archivo YAML, si defines spec y dryRunSpec. Por ejemplo:

name: RESOURCE_TYPE/RESOURCE_ID/policies/gcp.restrictServiceUsage
spec:
  rules:
  - values:
    allowedValues:
    - container.googleapis.com

dryRunSpec:
  rules:
    values:
      allowedValues:
      - compute.googleapis.com
      - appengine.googleapis.com

Para aplicar una política de la organización en modo de ejecución de prueba, usa el comando org-policies set policy. Para actualizar una política de la organización existente en modo de ejecución de prueba con restricciones nuevas, usa la marca --update-mask. Por ejemplo:

gcloud org-policies set-policy POLICY_PATH \
  --update-mask=UPDATE_MASK

Reemplaza lo siguiente:

  • POLICY_PATH por la ruta de acceso completa al archivo YAML de la política de la organización

  • UPDATE_MASK con spec para actualizar solo la política activa, o dryRunSpec para actualizar solo la política de la organización en modo de ejecución de prueba. También puedes usar * para actualizar los campos spec y dryRunSpec. Si este campo no se establece cuando se actualiza una política de la organización existente, este comando generará un error y la política de la organización no se actualizará.

Puedes verificar que la política de la organización en modo de ejecución de prueba esté configurada con el comando org-policies describe. El campo dryRunSpec aparece solo si existe en la política de la organización.

La política de la organización anterior aplicaría la restricción gcp.restrictServiceUsage de modo que solo se permita container.googleapis.com. Sin embargo, los registros de auditoría también muestran incumplimientos de compute.googleapis.com y appengine.googleapis.com.

Restricciones booleanas

Puedes crear una política de la organización en modo de ejecución de prueba para una restricción booleana mediante la consola de Google Cloud o Google Cloud CLI. En los siguientes ejemplos, se muestra cómo crear una política de la organización en modo de ejecución de prueba que audita el efecto de una política de la organización personalizada booleana.

Console

  1. En la consola de Google Cloud, 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 recurso para el que deseas configurar la política de la organización.

  3. Selecciona la política de la organización personalizada que deseas aplicar de la lista de la página Políticas de la organización.

  4. Selecciona la pestaña Ejecución de prueba.

  5. Haz clic en Administrar la política de ejecución de prueba.

  6. En la página Editar política de ejecución de prueba, selecciona Anular política superior.

  7. Haz clic en Agregar regla.

  8. En Aplicación, selecciona Activado y, luego, haz clic en Listo.

  9. Para aplicar la política de la organización en modo de ejecución de prueba, haz clic en Configurar política de ejecución de prueba. Una vez que verifiques que la política de la organización en modo de ejecución de prueba funciona según lo previsto, puedes establecer la política activa si haces clic en Establecer política.

Para verificar el estado de la política de la organización en modo de ejecución de prueba, ve a la pestaña Ejecución de prueba de una restricción de la política de la organización.

En el caso de los proyectos que tienen una política de la organización en modo de ejecución de prueba aplicada, puedes ver los registros de auditoría si haces clic en Ver registros de rechazo. En esta política de la organización, los registros de auditoría muestran los incumplimientos como si se aplicara la política personalizada de la organización.

gcloud

Para crear una política de la organización en modo de ejecución de prueba, crea un archivo YAML que defina la restricción con dryRunSpec. Por ejemplo:

  name: RESOURCE_TYPE/RESOURCE_ID/policies/CONSTRAINT_NAME
  dryRunSpec:
    rules:
    - enforce: true

Reemplaza lo siguiente:

  • RESOURCE_TYPE con organizations, folders o projects

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

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

Esta política de la organización no aplicará de manera forzosa la restricción personalizada, pero los registros de auditoría muestran incumplimientos como si lo hicieran.

Puedes establecer una política de la organización activa y una política de la organización en modo de ejecución de prueba en el mismo archivo YAML, si defines spec y dryRunSpec. Por ejemplo:

name: RESOURCE_TYPE/RESOURCE_ID/policies/CONSTRAINT_NAME
spec:
  rules:
  - enforce: false

dryRunSpec:
  rules:
  - enforce: true

Para aplicar una política de la organización en modo de ejecución de prueba, usa el comando org-policies set policy. Para actualizar una política de la organización existente en modo de ejecución de prueba con restricciones nuevas, usa la marca --update-mask. Por ejemplo:

gcloud org-policies set-policy POLICY_PATH \
  --update-mask=UPDATE_MASK

Reemplaza lo siguiente:

  • POLICY_PATH por la ruta de acceso completa al archivo YAML de la política de la organización

  • UPDATE_MASK con spec para actualizar solo la política activa, o dryRunSpec para actualizar solo la política de la organización en modo de ejecución de prueba. También puedes usar * para actualizar los campos spec y dryRunSpec. Si este campo no se establece cuando se actualiza una política de la organización existente, este comando generará un error y la política de la organización no se actualizará.

Puedes verificar que esté configurada una política de la organización en modo de ejecución de prueba con el comando org-policies describe. El campo dryRunSpec aparece solo si existe en la política de la organización.

Esta política de la organización no aplica de manera forzosa la restricción personalizada. Sin embargo, en los registros de auditoría se muestran los incumplimientos de la restricción personalizada.

Crear una política de la organización en modo de ejecución de prueba a partir de una política activa

Puedes usar una política de la organización existente como punto de partida para una política de la organización en modo de ejecución de prueba. Te recomendamos hacer esto para ver qué impacto tendría en tu entorno un cambio que se aplica a tu política existente.

Puedes crear una política de la organización en modo de ejecución de prueba basada en una política existente con la consola de Google Cloud o Google Cloud CLI.

Console

  1. En la consola de Google Cloud, 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 un recurso que ya tenga configurada la restricción Restrict Resource Service Usage.

  3. Selecciona la restricción Restringir el uso de servicios de recursos de la lista que se encuentra en la página Políticas de la organización.

  4. Selecciona la pestaña En vivo.

  5. Haz clic en Administrar política.

  6. Haz clic en Agregar regla.

  7. En Valores de la política, selecciona Personalizado.

  8. En Tipo de política, selecciona Rechazar.

  9. En el cuadro Valores personalizados, ingresa appengine.googleapis.com.

  10. Haz clic en Listo y, luego, en Establecer política de ejecución de prueba.

gcloud

Para crear una política de la organización en modo de ejecución de prueba basada en una política de la organización activa existente, obtén la política actual en el recurso con el comando org-policies describe. Por ejemplo:

gcloud org-policies describe gcp.restrictServiceUsage \
  --project=PROJECT_ID

Reemplaza PROJECT_ID por el ID del proyecto o el número del proyecto en el que está configurada esta política de la organización.

El resultado debería ser similar al siguiente:

  name: projects/123456789012/policies/gcp.restrictServiceUsage
  spec:
    etag: CJy93KEGEKCJw/QB
    rules:
    - values:
        allowedValues:
        - compute.googleapis.com
  updateTime: '2023-04-12T21:11:56.512804Z'

Copia el resultado de este comando en un archivo temporal. Edita este archivo para quitar los campos etag y updateTime, y cambia el campo spec a dryRunSpec. Realiza cualquier cambio en la configuración de restricciones que quieras probar en la política de la organización en modo de ejecución de prueba.

El archivo YAML finalizado debería ser similar al siguiente:

  name: projects/123456789012/policies/gcp.restrictServiceUsage
  dryRunSpec:
    rules:
      values:
        allowedValues:
        - compute.googleapis.com
        - appengine.googleapis.com

Para aplicar la política de la organización en modo de ejecución de prueba, usa org-policies set policy con la marca --update-mask. Por ejemplo:

gcloud org-policies set-policy POLICY_PATH \
  --update-mask=dryRunSpec

Reemplaza POLICY_PATH por la ruta de acceso completa al archivo YAML de la política temporal de la organización.

Borrar una política de la organización en modo de ejecución de prueba

Puedes borrar una política de la organización en modo de ejecución de prueba con la consola de Google Cloud o Google Cloud CLI.

Console

  1. En la consola de Google Cloud, 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 recurso para el que deseas configurar la política de la organización.

  3. Selecciona la restricción Restringir el uso de servicios de recursos de la lista que se encuentra en la página Políticas de la organización.

  4. Selecciona la pestaña Ejecución de prueba.

  5. Haz clic en Borrar política de ejecución de prueba.

gcloud

Para borrar una política de la organización en modo de ejecución de prueba, crea un archivo YAML que defina la política de la organización sin una especificación de ejecución de prueba. Por ejemplo:

  name: RESOURCE_TYPE/RESOURCE_ID/policies/gcp.restrictServiceUsage
  spec:
    rules:
    - values:
      allowedValues:
      - container.googleapis.com

Reemplaza lo siguiente:

  • RESOURCE_TYPE con organizations, folders o projects.

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

Luego, usa el comando org-policies set policy con la marca --update-mask establecida en dryRunSpec. Por ejemplo:

gcloud org-policies set-policy POLICY_PATH \
  --update-mask=dryRunSpec

Esto actualiza la política de la organización existente para quitar la especificación de ejecución de prueba, además de ignorar la parte activa de la especificación.

Para borrar las políticas de la organización activas y las políticas de la organización en modo de ejecución de prueba al mismo tiempo, usa el comando org-policies delete. Por ejemplo:

gcloud org-policies delete CONSTRAINT_NAME \
  --RESOURCE_TYPE=RESOURCE_ID

Reemplaza lo siguiente:

  • CONSTRAINT_NAME por el nombre de la restricción que deseas borrar. Por ejemplo, gcp.restrictServiceUsage

  • RESOURCE_TYPE con organizations, folders o projects.

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

Evaluación eficaz de las políticas de la organización en modo de ejecución de prueba

Las políticas de la organización en modo de ejecución de prueba se heredan de manera similar a otras políticas de la organización. Si se configura una política de la organización en modo de ejecución de prueba en un recurso de la organización, todos los recursos subordinados la heredan, a menos que se anule en un nivel inferior de la jerarquía.

La evaluación de políticas en vigor muestra el resultado de las políticas de la organización que se combinan en ese recurso. Por lo tanto, los ajustes a la política de la organización activa se reflejan en la política de la organización vigente en el modo de ejecución de prueba, si la política de este modo se hereda en lugar de establecerse de manera local.

Modificar la política de la organización activa de un proyecto también modifica su política de la organización vigente en modo de ejecución de prueba.

Por ejemplo, considera un recurso de la organización, Organization A, con una política de la organización activa como enforced: false y una política de la organización en modo de ejecución de prueba establecida en enforced: true. Un recurso secundario, Folder B, también configura la política de la organización activa como enforced: false y hereda la política de la organización en modo de ejecución de prueba. En Folder B, la política activa establecida significa que la evaluación de políticas vigente de la política de la organización en modo de ejecución de prueba también es enforce: false, lo que anula la política de la organización en modo de ejecución de prueba establecida en su organización superior.

Un recurso secundario de Folder B, Project X, establece la política activa en enforced: true. De manera similar al comportamiento en Folder B, la evaluación efectiva de la política de la organización en modo de ejecución de prueba para Project X es enforced: true, ya que se estableció la política activa.

Otro recurso secundario de Folder B, Project Y, establece la política de la organización en modo de ejecución de prueba en enforced: true. Hereda la política de la organización de su recurso superior, por lo que la evaluación efectiva es enforced: false para la política activa y enforced: true para la política de la organización en modo de ejecución de prueba.

Recurso Establecer la política de la organización activa Política de la organización vigente en vigencia Establecer la política de la organización en modo de ejecución de prueba Política de la organización vigente en modo de ejecución de prueba
Organización A enforced: false enforced: false enforced: true enforced: true
Carpeta B enforced: false enforced: false Ninguna enforced: false
Carpeta C Ninguna enforced: false Ninguna enforced: true
Proyecto X enforced: true enforced: true Ninguna enforced: true
Proyecto Y Ninguna enforced: false enforced: true enforced: true

Analizar los efectos de una política de la organización en el modo de ejecución de prueba

Una política de la organización en modo de ejecución de prueba no bloquea ninguna operación cuando se aplica de manera forzosa. Para ver el efecto que tendría la política de la organización, puedes consultar los registros de auditoría de políticas de la organización.

Los registros de auditoría de las políticas de la organización para las políticas de la organización activas y las políticas de la organización en modo de ejecución de prueba se generan en función de si las políticas aplicadas en determinado recurso permiten o rechazan la operación. En la siguiente tabla, se describen las situaciones en las que se genera un registro de auditoría de políticas de la organización:

Política de la organización activa Política de la organización en modo de ejecución de prueba Registro de auditoría generado
Permitir Permitir No
Permitir Rechazar Registro de auditoría solo en modo de ejecución de prueba
Rechazar Permitir Registro de auditoría en modo real y de ejecución de prueba
Rechazar Rechazar Registro de auditoría en modo real y de ejecución de prueba

Los incumplimientos de la política de la organización en modo de ejecución de prueba aparecen junto con los incumplimientos en el modo real en los registros de auditoría. Por ejemplo:

{
  "protoPayload": {
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "status": {
      "code": 7,
      "message": "PERMISSION_DENIED"
    },
    "authenticationInfo": {},
    "requestMetadata": {
      "callerIp": "1.2.3.4",
      "requestAttributes": {},
      "destinationAttributes": {}
    },
    "serviceName": "appengine.googleapis.com",
    "methodName": "google.api.appengine.v1.appengine.apps.services.get",
    "resourceName": "projects/sur-project-test-3",
    "metadata": {
      "constraint": "constraints/gcp.restrictServiceUsage",
      "checkedValue": "appengine.googleapis.com",
      "liveResult": "ALLOWED",
      "@type": "type.googleapis.com/google.cloud.audit.OrgPolicyDryRunAuditMetadata",
      "dryRunResult": "DENIED"
    }
  },
  "insertId": "1f2bvoxcmg1",
  "resource": {
    "type": "audited_resource",
    "labels": {
      "project_id": "sur-project-test-3",
      "service": "appengine.googleapis.com",
      "method": "google.api.appengine.v1.appengine.apps.services.get"
    }
  },
  "timestamp": "2022-06-16T19:42:58.244990928Z",
  "severity": "WARNING",
  "logName": "projects/sur-project-test-3/logs/cloudaudit.googleapis.com%2Fpolicy",
  "receiveTimestamp": "2022-06-16T19:42:59.572025716Z"
}

Puedes usar el Explorador de registros para consultar solo las políticas de la organización en las infracciones del modo de ejecución de prueba.

Console

En la consola de Google Cloud, puedes usar el Explorador de registros para recuperar las entradas de registro de auditoría de tu carpeta, organización o proyecto de Google Cloud:

  1. En la consola de Google Cloud, ve a la página Logging> Explorador de registros.

    Ir al Explorador de registros

  2. Selecciona una organización, una carpeta o un proyecto existente de Google Cloud.

  3. En el panel Compilador de consultas, sigue estos pasos:

    • En Tipo de recurso, selecciona el recurso de Google Cloud cuyos registros de auditoría deseas ver.

    • En Nombre del registro, selecciona el tipo de registro de auditoría política.

    • En el panel Consulta, ingresa lo siguiente: protoPayload.metadata.dryRunResult = "DENIED" AND \ protoPayload.metadata.liveResult = "ALLOWED"

    Si tienes problemas cuando intentas ver los registros en el Explorador de registros, consulta la información sobre solución de problemas.

    Para obtener más información de las consultas con el Explorador de registros, visita Compila consultas en el Explorador de registros.

gcloud

Google Cloud CLI proporciona una interfaz de línea de comandos para la API de Logging. Proporciona un identificador de recurso válido en cada uno de los nombres de registro. Por ejemplo, si tu consulta incluye un ID del proyecto, el identificador del proyecto que proporciones debe hacer referencia al nombre del proyecto seleccionado actualmente.

Para leer las entradas del registro de auditoría de la política de la organización en incumplimientos del modo de ejecución de prueba, ejecuta el siguiente comando:

gcloud logging read protoPayload.metadata.dryRunResult = "DENIED" AND \
      protoPayload.metadata.liveResult = "ALLOWED" \
    --RESOURCE_TYPE=RESOURCE_ID \

Reemplaza lo siguiente:

  • RESOURCE_TYPE con organization, folder o project.

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

Agrega la marca --freshness al comando para leer los registros que tienen más de 1 día de antigüedad.

Para obtener más información del uso de gcloud CLI, consulta gcloud logging read.

Si tienes muchos proyectos en tu organización, puedes usar receptores agregados para agregar y enrutar las entradas de registro de auditoría de todos los proyectos de tu organización a una tabla de BigQuery. Para obtener más información sobre cómo crear receptores agregados, consulta Recopila y enruta registros a nivel de la organización a destinos compatibles.

¿Qué sigue?

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