Policy Simulator para la política de la organización te permite obtener una vista previa del impacto de una nueva restricción personalizada o política de la organización que aplica una restricción personalizada o administrada antes de que se aplique en tu entorno de producción. Policy Simulator proporciona una lista de recursos que incumplen la política propuesta antes de que se aplique, lo que te permite volver a configurar esos recursos, solicitar excepciones o cambiar el permiso de la política de tu organización, todo sin interrumpir a los desarrolladores ni dejar inactivo el entorno.
En esta página, se describe cómo probar un cambio en una política de la organización con Policy Simulator. También se explica cómo interpretar los resultados de la simulación y cómo aplicar la política de la organización probada si así lo deseas.
Antes de comenzar
-
Si usas Google Cloud CLI, configura el proyecto que deseas usar para realizar llamadas a la API:
gcloud config set project PROJECT_ID
Reemplaza
PROJECT_ID
por el nombre o el ID del proyecto. -
Enable the Policy Simulator and Resource Manager APIs.
- Opcional: Obtén una introducción al Servicio de políticas de la organización.
Roles obligatorios
Para obtener los permisos que necesitas para ejecutar simulaciones y acceder a ellas, pídele a tu administrador que te otorgue el rol de IAM de Administrador del simulador de OrgPolicy (roles/policysimulator.orgPolicyAdmin
) en la organización.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Este rol predefinido contiene los permisos necesarios para ejecutar simulaciones y acceder a ellas. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para ejecutar simulaciones y acceder a ellas:
-
orgpolicy.constraints.list
-
orgpolicy.customConstraints.get
-
orgpolicy.policies.list
-
cloudasset.assets.searchAllResources
-
cloudasset.assets.listResource
-
cloudasset.assets.listOrgPolicy
-
policysimulator.orgPolicyViolationsPreviews.list
-
policysimulator.orgPolicyViolationsPreviews.get
-
policysimulator.orgPolicyViolationsPreviews.create
-
policysimulator.orgPolicyViolations.list
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Prueba un cambio de política
Puedes probar un cambio en una restricción personalizada, una política de la organización que aplica una restricción personalizada o administrada, o ambas al mismo tiempo.
Prueba un cambio en una restricción personalizada
Console
En la consola de Google Cloud, ve a la página Políticas de la organización.
Selecciona el selector de proyectos en la parte superior de la página.
En el selector de proyectos, selecciona el recurso de tu organización.
Si deseas probar una nueva restricción personalizada, haz clic en
Restricción personalizada. Si deseas realizar cambios en una restricción personalizada existente, selecciónala de la lista en la página Políticas de la organización y, luego, haz clic en Editar restricción.Crea o actualiza la restricción personalizada que deseas probar.
Por ejemplo, para definir una restricción personalizada que restrinja la creación de recursos de clúster de Google Kubernetes Engine en los que no está habilitada la autorización binaria, haz lo siguiente:
En el cuadro Tipo de recurso, selecciona
container.googleapis.com/Cluster
.En Método de aplicación, selecciona Aplicar cuando se cree.
Haz clic en
Editar condición.En el panel Agregar condición, ingresa
resource.binaryAuthorization.enabled == true
.Haz clic en Guardar.
En Acción, selecciona Permitir.
Para obtener más información, consulta Crea y administra restricciones personalizadas.
Haz clic en Probar restricción.
Si se trata de una restricción nueva o una que no aplica una política de la organización, debes definir la política de la organización.
En el cuadro Seleccionar alcance, selecciona el recurso para el que deseas probar la restricción personalizada.
Haz clic en Personalizar.
Haz clic en Agregar una regla.
En Aplicación, selecciona Activado y, luego, haz clic en Listo.
Haga clic en Continuar.
Aparecerá la página Historial de simulaciones, con una lista de las simulaciones que realizaste en los últimos 14 días. Consulta Resultados de Policy Simulator en esta página para obtener más información.
gcloud
Para probar una restricción personalizada, crea un archivo JSON o YAML que defina la restricción personalizada que deseas probar.
Por ejemplo, una restricción personalizada que restringe la creación de recursos de clúster de Google Kubernetes Engine en los que no está habilitada la autorización binaria es similar a la siguiente:
name: "organizations/ORGANIZATION_ID/customConstraints/custom.EnforceGKEBinaryAuthz" resource_types: "container.googleapis.com/Cluster" method_types: CREATE condition: "resource.binaryAuthorization.enabled == true" action_type: ALLOW
Reemplaza
ORGANIZATION_ID
por el ID de tu organización, como1234567890123
.Para obtener más información sobre cómo crear restricciones personalizadas, consulta Crea y administra restricciones personalizadas.
Para probar una política de la organización que aplique una restricción personalizada, crea un archivo JSON o YAML que defina la política de la organización que deseas probar.
Por ejemplo, una política de la organización que restringe la creación de recursos de clúster de Google Kubernetes Engine en los que no está habilitada la autorización binaria es similar a la siguiente:
name: organizations/ORGANIZATION_ID/policies/custom.EnforceGKEBinaryAuthz spec: rules: - enforce: true
Reemplaza
ORGANIZATION_ID
por el ID de tu organización, como1234567890123
.Para probar una política de la organización que aplique de forma condicional una restricción personalizada según la existencia de una etiqueta en particular, incluye una condición en el archivo JSON o YAML que defina la política de la organización.
Por ejemplo, la siguiente política de la organización restringe la creación de recursos de clúster de Google Kubernetes Engine en los que no está habilitada la Autorización binaria, excepto en los recursos que tienen adjunta la etiqueta
env=dev
.name: organizations/ORGANIZATION_ID/policies/custom.EnforceGKEBinaryAuthz spec: rules: - condition: expression: "resource.matchTag('env', 'dev')" enforce: false - enforce: true
Reemplaza
ORGANIZATION_ID
por el ID de tu organización, como1234567890123
.Para obtener más información sobre las políticas de la organización condicionales, consulta Configura una política de la organización con etiquetas.
Para probar el efecto de borrar una política de la organización que aplica una restricción personalizada, crea un archivo JSON o YAML que defina la política de la organización sin reglas establecidas, excepto para heredar la política de su recurso superior.
Por ejemplo, la siguiente política de la organización simularía la eliminación de una restricción personalizada
custom.EnforceGKEBinaryAuthz
existente.name: organizations/ORGANIZATION_ID/policies/custom.EnforceGKEBinaryAuthz spec: inheritFromParent: true
Ejecuta el siguiente comando para simular el cambio en la restricción personalizada, la política de la organización o ambas:
gcloud policy-intelligence simulate orgpolicy \ --organization=ORGANIZATION_ID \ --custom-constraints=CONSTRAINT_PATH \ --policies=POLICY_PATH
Reemplaza lo siguiente:
ORGANIZATION_ID
: el ID de la organización, como1234567890123
. No se admite simular cambios en varias organizaciones.CONSTRAINT_PATH
: Es la ruta de acceso completa a la restricción personalizada que creaste o actualizaste. Por ejemplo,tmp/constraint.yaml
Si configuras la marca--policies
, no necesitas configurar la marca--custom-constraints
.POLICY_PATH
: Es la ruta de acceso completa a la política de la organización que creaste o actualizaste. Por ejemplo,tmp/policy.yaml
Si configuras la marca--custom-constraints
, no necesitas configurar la marca--policies
.
Después de varios minutos, el comando imprime una lista de recursos que incumpliría los cambios en la restricción personalizada, la política de la organización o ambas.
Los resultados también se pueden ver en la consola de Google Cloud. Consulta Resultados de Policy Simulator en esta página para aprender a leer los resultados.
La siguiente es una respuesta de muestra para una simulación de política de organización.
Esta simulación incluye una restricción personalizada que restringe la creación de recursos de clúster de Google Kubernetes Engine en los que no está habilitada la autorización binaria. En este caso, si se aplicara el cambio propuesto, dos recursos del clúster incumpliría la política: orgpolicy-test-cluster
en el proyecto simulator-test-project
y autopilot-cluster-1
en el proyecto orgpolicy-test-0
.
Waiting for operation [organizations/012345678901/locations/global/orgPolic
yViolationsPreviews/85be9a2d-8c49-470d-a65a-d0cb9ffa8f83/operations/1883a83
c-c448-42e5-a7c5-10a850928f06] to complete...done.
---
customConstraint:
actionType: ALLOW
condition: resource.binaryAuthorization.enabled == true
methodTypes:
- CREATE
name: organizations/012345678901/customConstraints/custom.EnforceGKEBinaryAuthz
resourceTypes:
- container.googleapis.com/Cluster
name: organizations/012345678901/locations/global/orgPolicyViolationsPreviews/3dd47fd3-6df1-4156-8f10-413a3fc0ed83/orgPolicyViolations/b9fd23a5-7163-46de-9fec-7b9aa6af1113
resource:
ancestors:
- organizations/012345678901
- projects/456789012345
assetType: container.googleapis.com/Cluster
resource: //container.googleapis.com/projects/simulator-test-project/locations/us-central1/clusters/orgpolicy-test-cluster
---
customConstraint:
actionType: ALLOW
condition: resource.binaryAuthorization.enabled == true
methodTypes:
- CREATE
name: organizations/012345678901/customConstraints/custom.EnforceGKEBinaryAuthz
resourceTypes:
- container.googleapis.com/Cluster
name: organizations/012345678901/locations/global/orgPolicyViolationsPreviews/3dd47fd3-6df1-4156-8f10-413a3fc0ed83/orgPolicyViolations/e73896e6-7613-4a8d-8436-5df7a6455121
resource:
ancestors:
- organizations/012345678901
- folders/789012345678
- projects/456789012345
assetType: container.googleapis.com/Cluster
resource: //container.googleapis.com/projects/orgpolicy-test-0/locations/us-central1/clusters/autopilot-cluster-1
Prueba un cambio en una restricción administrada
Console
- 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
En el selector de proyectos, selecciona el proyecto, la organización o la carpeta para la que deseas editar la política de la organización.
En la página Políticas de la organización, se muestra una lista de las restricciones de la política de la organización que están disponibles para este recurso.
Selecciona la restricción administrada para la que deseas actualizar la política de la organización de la lista. En la página Detalles de la política, puedes ver la fuente de esta política de la organización, la evaluación de políticas efectiva en este recurso y más detalles sobre la restricción administrada.
Si deseas actualizar las políticas de la organización para este recurso, haz clic en Administrar política.
En la página Editar política, selecciona Anular la política del elemento superior.
Selecciona Agregar una regla.
En Aplicación, selecciona si la aplicación de esta política de la organización debe estar activada o desactivada.
De manera opcional, haz clic en Agregar condición para que la política de la organización sea condicional en una etiqueta. Si agregas una regla condicional a una política de la organización, debes agregar al menos una regla sin condición o la política no se puede guardar. Para obtener más información, consulta Configura una política de la organización con etiquetas.
Haz clic en Probar cambios.
Aparecerá la página Historial de simulaciones, con una lista de las simulaciones que realizaste en los últimos 14 días. Consulta Resultados de Policy Simulator en esta página para obtener más información.
gcloud
Para probar un cambio en una restricción administrada, crea un archivo JSON o YAML que defina la restricción administrada que deseas probar.
name: RESOURCE_TYPE/RESOURCE_ID/policies/CONSTRAINT_NAME spec: rules: - enforce: ENFORCEMENT_STATE
Reemplaza lo siguiente:
RESOURCE_TYPE
conorganizations
,folders
oprojects
RESOURCE_ID
con 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 administrada que deseas probar. Por ejemplo,iam.managed.disableServiceAccountKeyCreation
ENFORCEMENT_STATE
contrue
para aplicar esta política de la organización cuando se establezca, ofalse
para inhabilitarla cuando se establezca.
De forma opcional, agrega un bloque
condition
arules
para que la política de la organización sea condicional en una etiqueta. Si agregas una regla condicional a una política de la organización, debes agregar al menos una regla sin condición o la política no se puede guardar. Para obtener más información, consulta Configura una política de la organización con etiquetas.Para probar la eliminación de una política de la organización que aplica una restricción administrada, el archivo JSON o YAML que define la política de la organización no debe tener reglas establecidas, excepto para heredar la política de su recurso superior.
Por ejemplo, la siguiente política de la organización simularía la eliminación de una restricción administrada
iam.managed.disableServiceAccountKeyCreation
existente.name: organizations/ORGANIZATION_ID/policies/iam.managed.disableServiceAccountKeyCreation spec: inheritFromParent: true
Ejecuta el comando
policy-intelligence simulate orgpolicy
:gcloud policy-intelligence simulate orgpolicy \ --organization=ORGANIZATION_ID \ --policies=POLICY_PATH
Reemplaza lo siguiente:
ORGANIZATION_ID
por el ID de tu organización, como1234567890123
. No se admite simular cambios en varias organizaciones.POLICY_PATH
por la ruta de acceso completa al archivo YAML de la política de la organización.
Después de varios minutos, el comando imprime una lista de recursos que incumpliría los cambios en la restricción personalizada, la política de la organización o ambas.
Los resultados también se pueden ver en la consola de Google Cloud. Consulta Resultados de Policy Simulator en esta página para aprender a leer los resultados.
Resultados de Policy Simulator
Policy Simulator informa los resultados de un cambio en una restricción personalizada o en una política de la organización como una lista de incumplimientos de la política simulada. La consola de Google Cloud almacena los resultados de las simulaciones que generaste en los últimos 14 días.
Para ver los resultados de la simulación, ve a la página Historial de simulaciones.
Selecciona una simulación para ver los detalles. En la página Informe de simulación, puedes ver la vista previa de los incumplimientos, que muestra la cantidad de incumplimientos totales causados por la nueva restricción personalizada o política de la organización, la cantidad de recursos que se verificaron en el alcance de la simulación y la hora en la que se completó la simulación.
Si simulaste una restricción personalizada, puedes hacer clic en Detalles de la restricción para ver la configuración específica que se simuló. Si simulaste una política de la organización, la pestaña Detalles de la política muestra la configuración que se simuló.
Todos los incumplimientos se indican en la tabla de recursos. Cada recurso que incumpla la nueva restricción personalizada o política de la organización aparecerá en la lista con un vínculo a la entrada del recurso en Cloud Asset Inventory. Los recursos del proyecto, la carpeta y la organización se muestran con la suma total de recursos debajo de ellos en la jerarquía que incumplen la nueva restricción personalizada o la política de la organización.
Aplica un cambio de política probado
Después de probar la restricción personalizada, la política de la organización o ambas, puedes configurar la restricción personalizada y aplicar la política de la organización. Puedes ver todos los resultados de Policy Simulator en la consola de Google Cloud, sin importar cómo se hayan generado. Si tu informe de simulación incluye cambios en una sola política de la organización, puedes aplicarla directamente a través de los resultados de la simulación. Para aplicar cambios de prueba en varias políticas de la organización, usa Google Cloud CLI.
Console
Para aplicar los resultados de una restricción personalizada de Policy Simulator, ve a la página Historial de simulación.
Selecciona el informe de simulación de la restricción personalizada o la política de la organización que deseas aplicar.
Si este informe de simulación incluye una restricción personalizada, haz clic en Guardar restricción.
Si este informe de simulación incluye cambios en no más de una política de la organización, puedes aplicar esa política como una política de ejecución de prueba para supervisar el comportamiento en producción sin introducir riesgos. Para ello, selecciona Establecer política de ejecución de prueba. Aparecerá la página Detalles de la política de la nueva página de políticas de la organización.
Para aplicar la política de la organización de inmediato, haz clic en
y, luego, selecciona Establecer política.
gcloud
Para aplicar una restricción personalizada, debes configurarla para que esté disponible para las políticas de la organización de tu organización. Para configurar una restricción personalizada, usa el comando gcloud org-policies set-custom-constraint:
gcloud org-policies set-custom-constraint CONSTRAINT_PATH
Reemplaza
CONSTRAINT_PATH
por la ruta de acceso completa al archivo de restricción personalizado. Por ejemplo,/home/user/customconstraint.yaml
Una vez que se complete, tu restricción personalizada estará disponible en tu lista de políticas de la organización de Google Cloud.
Para configurar la política de la organización, usa el comando gcloud org-policies set-policy:
gcloud org-policies set-policy POLICY_PATH
Reemplaza
POLICY_PATH
por la ruta de acceso completa al archivo YAML de la política de la organización.La política tarda hasta 15 minutos en aplicarse.
Guarda los resultados de la simulación
Console
Si usas la consola de Google Cloud, puedes guardar los resultados de Policy Simulator como un archivo CSV.
Para guardar los resultados de Policy Simulator, ve a la página Historial de simulación.
Selecciona el informe de simulación que deseas guardar.
Haz clic en
Exportar resultados completos.
gcloud
Si usas gcloud CLI, puedes guardar los resultados de Policy Simulator como archivos JSON o YAML.
De forma predeterminada, los resultados de las pruebas en Google Cloud CLI se muestran en formato YAML. Para guardar un resultado de prueba como un archivo YAML, redirecciona el resultado del comando simulate orgpolicy
cuando ejecutes la simulación:
> FILENAME
Reemplaza FILENAME
por un nombre para el archivo de salida.
Para guardar un resultado de prueba como un archivo JSON, agrega la siguiente marca al comando simulate orgpolicy
cuando ejecutes la simulación:
--format=json > FILENAME
Reemplaza FILENAME
por un nombre para el archivo de salida.
¿Qué sigue?
- Obtén información detallada sobre las restricciones.
- Obtén información sobre las opciones adicionales que puedes usar para personalizar tus políticas.
- Obtén información sobre cómo establecer políticas de la organización basadas en etiquetas.