En esta página, se muestra cómo usar una política de la organización de ejecución de prueba para supervisar cómo un cambio en la política afectaría tus flujos de trabajo antes de que se aplique.
Se crea una política de la organización 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 auditoría, pero no se rechazan las acciones infractoras.
Antes de comenzar
Si quieres usar una política de ejecución de prueba de la organización, debes tener habilitada la facturación para el 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
Para obtener los permisos que necesitas a fin de administrar las políticas de la organización, pídele a tu administrador que te otorgue el rol de IAM de 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
Durante el período de versión preliminar, las únicas restricciones de 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 de ejecución de prueba mediante cualquier otra restricción, se mostrará un error.
Crea una política de ejecución de prueba de la organización
Restricciones de lista
Puedes crear una política de la organización 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 de ejecución de prueba que audita el efecto de la restricción de la lista gcp.restrictServiceUsage
.
Consola
En la consola de Google Cloud, ve a la página Políticas de la organización.
En el selector de proyectos en la parte superior de la página, selecciona el recurso para el que deseas establecer la política de la organización.
Selecciona la restricción Restringir el uso de servicios de recursos de la lista en la página Políticas de la organización.
Selecciona la pestaña Ejecución de prueba.
Haz clic en Administrar política de ejecución de prueba.
En la página Editar política de ejecución de prueba, selecciona Personalizar.
En Aplicación de políticas, haz clic en Reemplazar.
Haz clic en Agregar regla.
En Valores de la política, selecciona Personalizado.
En Tipo de política, selecciona Rechazar.
En el cuadro Valores personalizados, ingresa
compute.googleapis.com
.Haz clic en Listo y, luego, en Configurar política de ejecución de prueba. También puedes hacer clic en Configurar política para establecerla.
Puedes verificar el estado de la política de la organización de ejecución de prueba en la pestaña Ejecución de prueba de una restricción de la política de la organización.
Para los proyectos que tienen una política de la organización de ejecución de prueba aplicada, puedes ver los registros de auditoría si haces clic en Ver registros de rechazo. Para la política de la organización anterior, los registros de auditoría muestran incumplimientos como si se aplicara la restricción Restrict Resource Service Usage a fin de rechazar compute.googleapis.com
.
gcloud
Para crear una política de la organización 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
conorganizations
,folders
oprojects
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 enRESOURCE_TYPE
La política de la organización anterior no aplicará la restricción gcp.restrictServiceUsage
, pero los registros de auditoría muestran los 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 ejecución de prueba de la organización, usa el comando org-policies set policy
. Para actualizar una política de la organización existente con restricciones de ejecución de prueba 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ónUPDATE_MASK
conspec
para actualizar solo la política activa, odryRunSpec
para actualizar solo la política de ejecución de prueba. También puedes usar*
para actualizar los camposspec
ydryRunSpec
. Si no se establece este campo cuando se actualiza una política de la organización existente, este comando generará un error y no se actualizará la política de la organización.
Puedes verificar que la política de la organización 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 de ejecución de prueba para una restricción booleana con 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 de ejecución de prueba que audita el efecto de una restricción personalizada booleana.
Consola
En la consola de Google Cloud, ve a la página Políticas de la organización.
En el selector de proyectos en la parte superior de la página, selecciona el recurso para el que deseas establecer la política de la organización.
Selecciona la restricción personalizada que deseas aplicar de la lista en la página Políticas de la organización.
Selecciona la pestaña Ejecución de prueba.
Haz clic en Administrar política de ejecución de prueba.
En la página Editar política de ejecución de prueba, selecciona Personalizar.
Haz clic en Agregar regla.
En Aplicación, selecciona Activado.
Haz clic en Listo y, luego, en Configurar política de ejecución de prueba. Una vez que verifiques que la política de ejecución de prueba funciona según lo previsto, puedes hacer clic en Establecer política para configurarla.
Puedes verificar el estado de la política de la organización de ejecución de prueba en la pestaña Ejecución de prueba de una restricción de la política de la organización.
Para los proyectos que tienen una política de la organización de ejecución de prueba aplicada, puedes ver los registros de auditoría si haces clic en Ver registros de rechazo. Para la política de la organización anterior, los registros de auditoría muestran incumplimientos como si se aplicara la restricción personalizada.
gcloud
Para crear una política de la organización 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
conorganizations
,folders
oprojects
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 enRESOURCE_TYPE
CONSTRAINT_NAME
por el nombre de la restricción personalizada Por ejemplo,custom.disableGkeAutoUpgrade
La política de la organización anterior no aplicará la restricción personalizada, pero los registros de auditoría muestran los 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/CONSTRAINT_NAME spec: rules: - enforce: false dryRunSpec: rules: - enforce: true
Para aplicar una política de ejecución de prueba de la organización, usa el comando org-policies set policy
. Para actualizar una política de la organización existente con restricciones de ejecución de prueba 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ónUPDATE_MASK
conspec
para actualizar solo la política activa, odryRunSpec
para actualizar solo la política de ejecución de prueba. También puedes usar*
para actualizar los camposspec
ydryRunSpec
. Si no se establece este campo cuando se actualiza una política de la organización existente, este comando generará un error y no se actualizará la política de la organización.
Puedes verificar que la política de la organización 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 no aplicaría la restricción personalizada. Sin embargo, los registros de auditoría muestran incumplimientos de la restricción personalizada.
Crea una política de la organización 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 ejecución de prueba. Te recomendamos hacer esto para ver qué impactos tendría en tu entorno un cambio en la política existente.
Puedes crear una política de la organización de ejecución de prueba basada en una política existente con la consola de Google Cloud o Google Cloud CLI.
Consola
En la consola de Google Cloud, ve a la página Políticas de la organización.
En el selector de proyectos de la parte superior de la página, selecciona un recurso que ya tenga configurada la restricción Restrict Resource Service Usage en él.
Selecciona la restricción Restringir el uso de servicios de recursos de la lista en la página Políticas de la organización.
Selecciona la pestaña En vivo.
Haz clic en Administrar política.
Haz clic en Agregar regla.
En Valores de la política, selecciona Personalizado.
En Tipo de política, selecciona Rechazar.
En el cuadro Valores personalizados, ingresa
appengine.googleapis.com
.Haz clic en Listo y, luego, en Configurar política de ejecución de prueba.
gcloud
Para crear una política de la organización 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 mediante 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 los cambios en la configuración de la restricción que desees probar en la política de la organización de ejecución de prueba.
El archivo YAML finalizado debería ser similar al siguiente ejemplo:
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 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 temporal de la política de la organización.
Borrar una política de ejecución de prueba de la organización
Puedes borrar una política de la organización de ejecución de prueba con la consola de Google Cloud o Google Cloud CLI.
Consola
En la consola de Google Cloud, ve a la página Políticas de la organización.
En el selector de proyectos en la parte superior de la página, selecciona el recurso para el que deseas establecer la política de la organización.
Selecciona la restricción Restringir el uso de servicios de recursos de la lista en la página Políticas de la organización.
Selecciona la pestaña Ejecución de prueba.
Haz clic en Administrar política de ejecución de prueba.
Haz clic en Borrar política de ejecución de prueba.
gcloud
Para borrar una política de la organización 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
conorganizations
,folders
oprojects
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 enRESOURCE_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 y, además, ignora la parte activa de la especificación.
Para borrar las políticas de la organización activas y 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
conorganizations
,folders
oprojects
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 enRESOURCE_TYPE
Analiza los efectos de una política de ejecución de prueba
Una política de la organización de ejecución de prueba no bloquea ninguna operación cuando se aplica. Para ver el efecto que tendría la política de la organización, puedes consultar los registros de auditoría de las políticas de la organización.
Los registros de auditoría de las políticas de la organización para las políticas de ejecución de prueba y activas se generan en función de si las políticas que aplican en un recurso determinado 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 publicada | Política de ejecución de prueba | Se generó el registro de auditoría |
---|---|---|
Permitir | Permitir | No |
Permitir | Rechazar | Solo registro de auditoría de ejecución de prueba |
Rechazar | Permitir | Registro de auditoría en vivo y de ejecución de prueba |
Rechazar | Rechazar | Registro de auditoría en vivo y de ejecución de prueba |
Los incumplimientos de ejecución de prueba de las políticas de la organización aparecen junto a los incumplimientos de políticas vigentes 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 los incumplimientos de política de la organización de ejecución de prueba.
Consola
En la consola de Google Cloud, puedes usar el Explorador de registros a fin de recuperar las entradas de registro de auditoría de tu carpeta, organización o proyecto de Google Cloud:
En la consola de Google Cloud, ve a la página Logging> Explorador de registros.
Selecciona una organización, una carpeta o un proyecto existente de Google Cloud.
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 de 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 sobre 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 los incumplimientos de políticas de la organización 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
conorganization
,folder
oproject
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 enRESOURCE_TYPE
Agrega la marca --freshness
a tu comando para leer los registros que tengan más de 1 día de antigüedad.
Para obtener más información sobre el 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?
Si quieres obtener más información para crear y administrar restricciones de políticas de la organización, consulta Usa restricciones.