En esta guía, se explica cómo crear una política de la organización con una restricción particular. Las restricciones que se usan en los ejemplos de esta página no son restricciones reales, sino muestras generalizadas con fines educativos.
Para obtener más información sobre las restricciones y los problemas que resuelven, consulta la lista de todas las restricciones del servicio de políticas de la organización.
Antes de comenzar
Lee la página de introducción al servicio de políticas de la organización para obtener información sobre cómo funciona la política de la organización.
Lee la documentación sobre la evaluación de la jerarquía a fin de aprender sobre la herencia de políticas.
Roles obligatorios
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 a proyectos, carpetas y organizaciones.
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
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Usa restricciones de listas con una política de la organización
Puedes configurar una política de la organización en el recurso de tu organización que use una restricción de listas para denegar el acceso a un servicio en particular. En el siguiente proceso, se describe cómo configurar una política de la organización mediante Google Cloud CLI. Si quieres obtener instrucciones para ver y configurar las políticas de la organización con la consola de Google Cloud, consulta cómo crear y administrar las políticas.
Las políticas de la organización que usan restricciones de lista no pueden tener más de 500 valores individuales permitidos o denegados, y no puede superar los 32 KB. Si se crea o se actualiza una política de la organización para que tenga más de 500 valores o un tamaño superior a 32 KB, no se puede guardar correctamente y la solicitud mostrará un error.
Configura la aplicación forzosa en el recurso de la organización
Para configurar la aplicación forzosa en una organización con la CLI de gcloud, sigue estos pasos:
Obtén la política actual del recurso de la organización con el comando
describe
: Este comando muestra la política aplicada directamente a este recurso:gcloud org-policies describe \ LIST_CONSTRAINT --organization=ORGANIZATION_ID
Reemplaza lo siguiente:
ORGANIZATION_ID
: Es un identificador único del recurso de la organización. El ID de organización tiene el formato de números decimales y no puede tener ceros a la izquierda.LIST_CONSTRAINT
: Es la restricción de lista para el servicio que deseas aplicar. Por ejemplo, la restricciónconstraints/gcp.restrictNonCmekServices
restringe qué servicios pueden crear recursos sin claves de encriptación administradas por el cliente (CMEK).
También puedes aplicar la política de la organización a una carpeta o proyecto con las marcas
--folder
o--project
, y con el ID de la carpeta y el ID del proyecto, respectivamente.La respuesta muestra la política actual de la organización, si existe una. Por ejemplo:
name: projects/841166443394/policies/gcp.resourceLocations spec: etag: BwW5P5cEOGs= inheritFromParent: true rules: - condition: expression: resource.matchTagId("tagKeys/1111", "tagValues/2222") values: allowedValues: - in:us-east1-locations - condition: expression: resource.matchTag("123/env", "prod") values: allowedValues: - in:us-west1-locations - values: deniedValues: - in:asia-south1-locations updateTime: '2021-01-19T12:00:51.095Z'
Si no estableces una política, se mostrará el error
NOT_FOUND
:ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
Configura la política en la organización con el comando
set-policy
. Esta reemplaza cualquier política adjunta al recurso.Crea un archivo temporal
/tmp/policy.yaml
para almacenar la política:name: organizations/ORGANIZATION_ID/policies/LIST_CONSTRAINT spec: rules: - values: deniedValues: - VALUE_A
Ejecuta el comando
set-policy
:gcloud org-policies set-policy /tmp/policy.yaml
Consulta la política vigente actual con
describe --effective
. Esto devuelve la política de la organización, tal como se evalúa en este punto del recurso jerárquica con la herencia incluida.gcloud org-policies describe \ LIST_CONSTRAINT --effective \ --organization=ORGANIZATION_ID
La salida del comando se verá de la siguiente forma:
name: organizations/ORGANIZATION_ID/policies/LIST_CONSTRAINT spec: etag: BwVJi0OOESU= rules: - values: deniedValues: - VALUE_A
Debido a que esta política de la organización se estableció a nivel de la organización, todos los recursos secundarios que permiten la herencia la heredarán.
Los cambios en las políticas de la organización pueden tardar hasta 15 minutos en aplicarse por completo.
Configura la aplicación forzosa en un subárbol de jerarquías
Las restricciones de listas toman valores definidos de forma explícita para determinar qué recursos deben permitirse o denegarse. Algunas restricciones también pueden admitir valores que usen el prefijo under:
, que especifica un subárbol que tiene ese recurso como raíz.
El uso del prefijo under:
en un valor permitido o denegado hace que la política de la organización actúe sobre ese recurso y sobre todos sus recursos secundarios. Para obtener información acerca de las restricciones que admiten el uso del prefijo under:
, consulta la página sobre las restricciones de la política de la organización.
Un valor que usa el prefijo under:
se denomina string del subárbol de jerarquías. Una string del subárbol de jerarquías especifica el tipo del recurso al que se aplica. Por ejemplo, si se usa una cadena de subárbol de projects/PROJECT_ID
cuando se configura la restricción constraints/compute.storageResourceUseRestrictions
, se permitirá o se denegará el uso de almacenamiento de Compute Engine en el PROJECT_ID
y en todos sus elementos secundarios.
Obtén la política actual del recurso de la organización con el comando
describe
:gcloud org-policies describe \ LIST_CONSTRAINT \ --organization=ORGANIZATION_ID
Reemplaza lo siguiente:
ORGANIZATION_ID
es un identificador único para el recurso de la organización.LIST_CONSTRAINT
es la restricción de lista para el servicio que deseas aplicar.
También puedes aplicar la política de la organización a una carpeta o proyecto con las marcas
--folder
o--project
, y con el ID de la carpeta y el ID del proyecto, respectivamente.Si no estableces una política, se mostrará el error
NOT_FOUND
:ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
Configura la política en el proyecto con el comando
set-policy
. El prefijounder:
establece la restricción para denegar el recurso nombrado y todos sus recursos secundarios.Crea un archivo temporal
/tmp/policy.yaml
para almacenar la política:name: organizations/ORGANIZATION_ID/policies/LIST_CONSTRAINT spec: rules: - values: deniedValues: - under:folders/VALUE_A
Ejecuta el comando
set-policy
:gcloud org-policies set-policy /tmp/policy.yaml
Aquí:
under:
es un prefijo que indica que lo que sigue es una string de subárbol.folders/VALUE_A
es el ID de carpeta del recurso raíz que deseas denegar. Este recurso y todos sus recursos secundarios en la jerarquía de recursos serán denegados.
También puedes aplicar el prefijo
under:
a organizaciones y proyectos, como en los siguientes ejemplos:under:organizations/VALUE_X
under:projects/VALUE_Y
Consulta la política vigente actual con
describe --effective
.gcloud org-policies describe \ LIST_CONSTRAINT --effective \ --organization=ORGANIZATION_ID
La salida del comando se verá de la siguiente forma:
name: organizations/ORGANIZATION_ID/policies/LIST_CONSTRAINT spec: rules: - values: deniedValues: - under:folders/VALUE_A
La política ahora evalúa para denegar la carpeta VALUE_A y todos sus recursos secundarios.
Los cambios en las políticas de la organización pueden tardar hasta 15 minutos en aplicarse por completo.
Combina la política de la organización en un proyecto.
Puedes configurar una política de la organización en un recurso, que se combinará con cualquier política heredada de su recurso superior. Esta política combinada se evaluará para crear una nueva política vigente basada en las reglas de herencia.
Obtén la política actual del recurso con el comando
describe
:gcloud org-policies describe \ LIST_CONSTRAINT \ --project=PROJECT_ID
Reemplaza lo siguiente:
PROJECT_ID
: Es el identificador único de tu proyecto.LIST_CONSTRAINT
: Es la restricción de lista para el servicio que quieres aplicar.
Si no estableces una política, se mostrará el error
NOT_FOUND
:ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
Puedes mostrar la política vigente actual con el comando
describe --effective
:gcloud org-policies describe \ LIST_CONSTRAINT --effective \ --project=PROJECT_ID
El resultado del comando incluirá un valor denegado que hereda del recurso de la organización:
name: projects/PROJECT_ID/policies/LIST_CONSTRAINT spec: rules: - values: deniedValues: - VALUE_A
Configura la política en el proyecto con el comando
set-policy
.Crea un archivo temporal
/tmp/policy.yaml
para almacenar la política:name: projects/PROJECT_ID/policies/LIST_CONSTRAINT spec: inheritFromParent: true rules: - values: deniedValues: - VALUE_B - VALUE_C
Ejecuta el comando
set-policy
:gcloud org-policies set-policy /tmp/policy.yaml
Vuelve a usar el comando
describe --effective
para mostrar la política actualizada:gcloud org-policies describe \ LIST_CONSTRAINT --effective \ --project=PROJECT_ID
La salida del comando incluirá el resultado vigente de la combinación de la política del recurso y el superior:
name: projects/PROJECT_ID/policies/LIST_CONSTRAINT spec: rules: - values: deniedValues: - VALUE_A - VALUE_B - VALUE_C
Los cambios en las políticas de la organización pueden tardar hasta 15 minutos en aplicarse por completo.
Restablece el comportamiento predeterminado de la restricción
Puedes usar el comando reset
para restablecer la política para que use el comportamiento predeterminado de la restricción. Para obtener una lista de todas las restricciones disponibles y sus valores predeterminados, consulta Restricciones de la política de la organización. En el siguiente ejemplo, se supone que el comportamiento predeterminado de la restricción es admitir todos los valores.
Obtén la política vigente del proyecto para mostrar la política combinada actual:
gcloud org-policies describe \ LIST_CONSTRAINT --effective \ --project=PROJECT_ID
Reemplaza PROJECT_ID por el identificador único de tu proyecto. La salida del comando se verá de la siguiente forma:
name: projects/PROJECT_ID/policies/LIST_CONSTRAINT spec: rules: - values: deniedValues: - VALUE_A - VALUE_B - VALUE_C
Restablece la política de la organización con el comando
reset
.gcloud org-policies reset LIST_CONSTRAINT \ --project=PROJECT_ID
Obtén la política vigente para verificar el comportamiento predeterminado:
gcloud org-policies describe \ LIST_CONSTRAINT --effective \ --project=PROJECT_ID
La salida del comando admitirá todos los valores:
name: projects/PROJECT_ID/policies/LIST_CONSTRAINT spec: rules: - allowAll: true
Los cambios en las políticas de la organización pueden tardar hasta 15 minutos en aplicarse por completo.
Borra una política de la organización
Puedes borrar una política de la organización de un recurso. Un recurso sin un conjunto de políticas de la organización heredará cualquier política de su recurso superior. Si borras la política de la organización en el recurso de la organización, la política vigente será el comportamiento predeterminado de la restricción.
En los siguientes pasos, se describe cómo borrar una política en una organización.
Borra la política en el recurso de la organización con el comando
delete
:gcloud org-policies delete \ LIST_CONSTRAINT \ --organization=ORGANIZATION_ID
Reemplaza ORGANIZATION_ID por el identificador único del recurso de la organización. El resultado de el comando será el siguiente:
Deleted policy [organizations/ORGANIZATION_ID/policies/LIST_CONSTRAINT]. {}
Obtén la política vigente de la organización para verificar que no se aplique de forma forzosa:
gcloud org-policies describe \ LIST_CONSTRAINT --effective \ --organization=ORGANIZATION_ID
La salida del comando se verá de la siguiente forma:
name: organizations/ORGANIZATION_ID/policies/LIST_CONSTRAINT spec: rules: - allowAll: true
En los siguientes pasos, se describe cómo borrar una política de la organización en un proyecto:
Borra la política de un proyecto con el comando
delete
:gcloud org-policies delete \ LIST_CONSTRAINT \ --project=PROJECT_ID
En este comando,
PROJECT_ID
es el identificador único de tu proyecto. La salida del comando se verá de la siguiente forma:Deleted policy [projects/PROJECT_ID/policies/LIST_CONSTRAINT]. {}
Obtén la política vigente del proyecto para verificar que no se aplique de forma forzosa:
gcloud org-policies describe \ LIST_CONSTRAINT --effective \ --project=PROJECT_ID
La salida del comando se verá de la siguiente forma:
name: projects/PROJECT_ID/policies/LIST_CONSTRAINT spec: rules: - allowAll: true
Los cambios en las políticas de la organización pueden tardar hasta 15 minutos en aplicarse por completo.
Usa restricciones booleanas en la política de la organización
Configura la aplicación forzosa en el recurso de la organización
Puedes configurar una política de la organización en el recurso de tu organización para aplicar de forma forzosa una restricción booleana. El siguiente proceso describe cómo configurar una organización política con Google Cloud CLI. Si quieres obtener instrucciones para ver y configurar las políticas de la organización con la consola de Google Cloud, consulta cómo crear y administrar las políticas.
Obtén la política actual del recurso de la organización mediante el comando
describe
:gcloud org-policies describe \ BOOLEAN_CONSTRAINT \ --organization=ORGANIZATION_ID
Reemplazar
ORGANIZATION_ID
con el identificador único del recurso de la organización. También puedes aplicar la política de la organización a una carpeta o proyecto con el--folder
o las marcas--project
y el ID de la carpeta y ID del proyecto, respectivamente.Si no estableces una política, se mostrará el error
NOT_FOUND
:ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
Configura la política en el proyecto con el comando
set-policy
.Crea un archivo temporal
/tmp/policy.yaml
para almacenar la política:name: organizations/ORGANIZATION_ID/policies/BOOLEAN_CONSTRAINT spec: rules: - enforce: true
Ejecuta el comando
set-policy
:gcloud org-policies set-policy /tmp/policy.yaml
Consulta la política vigente actual con
describe --effective
:gcloud org-policies describe \ BOOLEAN_CONSTRAINT --effective \ --organization=ORGANIZATION_ID
La salida del comando se verá de la siguiente forma:
name: organizations/ORGANIZATION_ID/policies/BOOLEAN_POLICY spec: rules: - enforce: true
Los cambios en las políticas de la organización pueden tardar hasta 15 minutos en aplicarse por completo.
Anula la política de la organización de un proyecto
Para anular la política de la organización de un proyecto, configura una política que inhabilite la aplicación forzosa de la restricción booleana en todos los recursos de la jerarquía del proyecto.
Obtén la política actual del recurso para demostrar que está vacío.
gcloud org-policies describe \ BOOLEAN_CONSTRAINT \ --project=PROJECT_ID
En este comando,
PROJECT_ID
es el identificador único de tu proyecto.Si no se configura una política, se mostrará un error
NOT_FOUND
:ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
Obtén la política vigente del proyecto, que confirma que la restricción se aplica de forma forzosa en este proyecto.
gcloud org-policies describe \ BOOLEAN_CONSTRAINT --effective \ --project=PROJECT_ID
La salida del comando se verá de la siguiente forma:
name: projects/PROJECT_ID/policies/BOOLEAN_POLICY spec: rules: - enforce: true
Configura la política en el proyecto con el comando
set-policy
.Crea un archivo temporal
/tmp/policy.yaml
para almacenar la política:name: projects/PROJECT_ID/policies/BOOLEAN_CONSTRAINT spec: rules: - enforce: false
Ejecuta el comando
set-policy
:gcloud org-policies set-policy /tmp/policy.yaml
Obtén la política vigente para demostrar que ya no se aplica de forma forzosa en el proyecto.
gcloud org-policies describe \ BOOLEAN_CONSTRAINT --effective \ --project=PROJECT_ID
La salida del comando se verá de la siguiente forma:
name: organizations/ORGANIZATION_ID/policies/BOOLEAN_POLICY spec: rules: - enforce: false
Los cambios en las políticas de la organización pueden tardar hasta 15 minutos en aplicarse por completo.
Borra una política de la organización
Puedes borrar una política de la organización de un recurso. Un recurso sin un conjunto de políticas de la organización heredará cualquier política de su recurso superior. Si borras la política de la organización en el recurso de la organización, la política vigente será el comportamiento predeterminado de las restricciones.
En los siguientes pasos, se describe cómo borrar una política de la organización en una organización y en un proyecto.
Borra la política del recurso de la organización con el comando
delete
:gcloud org-policies delete \ BOOLEAN_CONSTRAINT \ --organization=ORGANIZATION_ID
Reemplaza
ORGANIZATION_ID
por un identificador único para el recurso de la organización. El resultado del comando será el siguiente:Deleted policy [organizations/ORGANIZATION_ID/policies/BOOLEAN_CONSTRAINT]. {}
Obtén la política vigente de la organización para verificar que no se aplique de forma forzosa:
gcloud org-policies describe \ BOOLEAN_CONSTRAINT --effective \ --organization=ORGANIZATION_ID
Si no se configura una política, se mostrará un error
NOT_FOUND
:ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
Borra la política de la organización del proyecto con el comando
delete
:gcloud org-policies delete \ BOOLEAN_CONSTRAINT \ --project=PROJECT_ID
La salida del comando se verá de la siguiente forma:
Deleted policy [organizations/ORGANIZATION_ID/policies/BOOLEAN_CONSTRAINT]. {}
Obtén la política vigente del proyecto para verificar que no se aplique de forma forzosa:
gcloud org-policies describe \ BOOLEAN_CONSTRAINT --effective \ --project=PROJECT_ID
Reemplaza
PROJECT_ID
por el identificador único de tu proyecto.Si no estableces una política, se mostrará el error
NOT_FOUND
:ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
Los cambios en las políticas de la organización pueden tardar hasta 15 minutos en aplicarse por completo.