Google Cloud La Política de organización le brinda control programático centralizado sobre los recursos de su organización. Como administrador de políticas de la organización , puede definir una política de la organización, que es un conjunto de restricciones llamadas restricciones que se aplican aGoogle Cloud recursos y descendientes de esos recursos en el Google Cloud jerarquía de recursos . Puede aplicar políticas de organización a nivel de organización, carpeta o proyecto.
La política de organización proporciona restricciones predefinidas para variosGoogle Cloud servicios. Sin embargo, si desea un control más granular y personalizable sobre los campos específicos que están restringidos en las políticas de su organización, también puede crear restricciones personalizadas y usar esas restricciones personalizadas en una política de organización personalizada.
Beneficios
- Gestión de costos : use políticas de organización personalizadas para restringir la instancia de VM y los tamaños y tipos de discos que se pueden usar en su organización. También puede restringir la familia de máquinas que se utiliza para la instancia de VM.
- Seguridad, cumplimiento y gobernanza : puede utilizar políticas de organización personalizadas para hacer cumplir las políticas de la siguiente manera:
- Para hacer cumplir los requisitos de seguridad, puede exigir reglas de puerto de firewall específicas en las máquinas virtuales.
- Para admitir el aislamiento de hardware o el cumplimiento de licencias, puede exigir que todas las máquinas virtuales dentro de un proyecto o carpeta específicos se ejecuten en nodos de único inquilino .
- Para controlar los scripts de automatización, puede utilizar políticas de organización personalizadas para verificar que las etiquetas coincidan con expresiones específicas.
Herencia de políticas
De forma predeterminada, las políticas de la organización las heredan los descendientes de los recursos en los que aplica la política. Por ejemplo, si aplica una política en una carpeta, Google Cloud aplica la política en todos los proyectos de la carpeta. Para obtener más información sobre este comportamiento y cómo cambiarlo, consulte Reglas de evaluación de jerarquía .
Precios
El Servicio de Políticas de Organización, incluidas las políticas de organización personalizadas y predefinidas, se ofrece sin costo alguno.
Antes de comenzar
- Si aún no lo has hecho, configura la autenticación. La autenticación es el proceso mediante el cual se verifica su identidad para acceder a Google Cloud servicios y API. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
- Asegúrese de conocer el ID de su organización .
- Administrador de políticas de la organización (
roles/orgpolicy.policyAdmin
) en el recurso de la organización - Para probar las restricciones: Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) en el proyecto -
orgpolicy.constraints.list
-
orgpolicy.policies.create
-
orgpolicy.policies.delete
-
orgpolicy.policies.list
-
orgpolicy.policies.update
-
orgpolicy.policy.get
-
orgpolicy.policy.set
- Para probar las restricciones:
-
compute.instances.create
en el proyecto. - Para usar una imagen personalizada para crear la VM:
compute.images.useReadOnly
en la imagen - Para usar una instantánea para crear la VM:
compute.snapshots.useReadOnly
en la instantánea - Para usar una plantilla de instancia para crear la VM:
compute.instanceTemplates.useReadOnly
en la plantilla de instancia - Para asignar una red heredada a la VM:
compute.networks.use
en el proyecto - Para especificar una dirección IP estática para la VM:
compute.addresses.use
en el proyecto - Para asignar una dirección IP externa a la VM cuando se usa una red heredada:
compute.networks.useExternalIp
en el proyecto - Para especificar una subred para la VM:
compute.subnetworks.use
en el proyecto o en la subred elegida - Para asignar una dirección IP externa a la VM cuando se usa una red VPC:
compute.subnetworks.useExternalIp
en el proyecto o en la subred elegida - Para configurar metadatos de instancia de VM para la VM:
compute.instances.setMetadata
en el proyecto - Para configurar etiquetas para la VM:
compute.instances.setTags
en la VM - Para configurar etiquetas para la VM:
compute.instances.setLabels
en la VM - Para configurar una cuenta de servicio para que la use la VM:
compute.instances.setServiceAccount
en la VM - Para crear un nuevo disco para la VM:
compute.disks.create
en el proyecto - Para conectar un disco existente en modo de solo lectura o lectura-escritura:
compute.disks.use
en el disco - Para conectar un disco existente en modo de solo lectura:
compute.disks.useReadOnly
en el disco
-
- Disco persistente :
compute.googleapis.com/Disk
- Tipo de disco persistente:
resource.type
- Tamaño de disco persistente:
resource.sizeGb
- Licencias de disco persistente:
resource.licenses
- Códigos de licencia de disco persistente:
resource.licenseCodes
- Computación confidencial de disco persistente:
resource.enableConfidentialCompute
- Tipo de disco persistente:
- Imagen :
compute.googleapis.com/Image
- Fuente del disco sin formato:
resource.rawDisk.source
- Fuente del disco sin formato:
- Instancia de VM :
compute.googleapis.com/Instance
- Características avanzadas de la máquina:
-
resource.advancedMachineFeatures.enableNestedVirtualization
-
resource.advancedMachineFeatures.threadsPerCore
-
- Configuraciones de instancias de VM confidenciales:
-
resource.confidentialInstanceConfig.enableConfidentialCompute
-
resource.confidentialInstanceConfig.confidentialInstanceType
-
- Reenvío de IP:
resource.canIpForward
- Protección contra eliminación:
resource.deletionProtection
- Etiquetas:
resource.labels
- Aceleradores:
-
resource.guestAccelerators.acceleratorType
-
resource.guestAccelerators.acceleratorCount
-
- Tipo de máquina:
resource.machineType
- Plataforma mínima de CPU:
resource.minCpuPlatform
- Interfaz de red:
-
resource.networkInterfaces.network
-
resource.networkInterfaces.subnetwork
-
- Afinidad de nodo:
-
resource.scheduling.nodeAffinities.key
-
resource.scheduling.nodeAffinities.operator
-
resource.scheduling.nodeAffinities.values
-
- Acceso privado a Google (IPv6):
resource.privateIpv6GoogleAccess
- Características avanzadas de la máquina:
- Otros recursos informáticos compatibles:
- Para obtener más información sobre los recursos de Compute Engine utilizados por Cloud Load Balancing, como servicios de backend, depósitos de backend, reglas de reenvío, comprobaciones de estado, políticas SSL, servidores proxy de destino y mapas de URL, consulta la página Administrar recursos de Cloud Load Balancing mediante restricciones personalizadas .
En la consola de Google Cloud, vaya a la página de políticas de la organización .
Seleccione el selector de proyectos en la parte superior de la página.
En el selector de proyectos , seleccione el recurso para el que desea establecer la política de la organización.
Haga clic en
restricción personalizada .En el cuadro Nombre para mostrar , ingrese un nombre fácil de entender para la restricción. Este campo tiene una longitud máxima de 200 caracteres. No utilice PII ni datos confidenciales en los nombres de las restricciones, ya que podrían quedar expuestos en mensajes de error.
En el cuadro ID de restricción , ingrese el nombre que desea para su nueva restricción personalizada. Una restricción personalizada debe comenzar con
custom.
y solo puede incluir letras mayúsculas, minúsculas o números, por ejemplo,custom.createOnlyN2DVMs
. La longitud máxima de este campo es de 70 caracteres, sin contar el prefijo, por ejemplo,organizations/123456789/customConstraints/custom.
.En el cuadro Descripción , ingrese una descripción amigable para los humanos de la restricción para mostrarla como un mensaje de error cuando se infringe la política. Este campo tiene una longitud máxima de 2000 caracteres.
En el cuadro Tipo de recurso , seleccione el nombre del Google CloudRecurso REST que contiene el objeto y campo que desea restringir. Por ejemplo,
compute.googleapis.com/Instance
.En Método de aplicación , seleccione si desea aplicar la restricción en el método REST
CREATE
.Para definir una condición, haga clic en
Editar condición .En el panel Agregar condición , cree una condición CEL que haga referencia a un recurso de servicio compatible, por ejemplo,
. Este campo tiene una longitud máxima de 1000 caracteres.resource.machineType.contains('/machineTypes/n2d')
Haga clic en Guardar .
En Acción , seleccione si desea permitir o denegar el método evaluado si se cumple la condición anterior.
Haga clic en Crear restricción .
ORGANIZATION_ID
: el ID de su organización, como123456789
.CONSTRAINT_NAME
: el nombre que deseas para tu nueva restricción personalizada. Una restricción personalizada debe comenzar concustom.
y solo puede incluir letras mayúsculas, minúsculas o números. Por ejemplo,custom.createOnlyN2DVMs
. La longitud máxima de este campo es de 70 caracteres, sin contar el prefijo (por ejemplo,organizations/123456789/customConstraints/custom.
).RESOURCE_NAME
: el nombre (no el URI) del recurso REST de la API de Compute Engine que contiene el objeto y el campo que deseas restringir. Por ejemplo,Instance
.CONDITION
: una condición CEL que se escribe contra una representación de un recurso de servicio soportado. Este campo tiene una longitud máxima de 1000 caracteres. Consulte Recursos admitidos para obtener más información sobre los recursos disponibles para escribir condiciones. Por ejemplo,"resource.machineType.contains('/machineTypes/n2d')"
.ACTION
: la acción a realizar si se cumple lacondition
. Esto puede serALLOW
oDENY
.DISPLAY_NAME
: un nombre amigable para la restricción. Este campo tiene una longitud máxima de 200 caracteres.DESCRIPTION
: una descripción amigable para los humanos de la restricción que se mostrará como un mensaje de error cuando se infringe la política. Este campo tiene una longitud máxima de 2000 caracteres.- En la consola de Google Cloud, vaya a la página de políticas de la organización .
- En el selector de proyectos, seleccione el proyecto para el que desea establecer la política de la organización.
- En la lista de la página Políticas de la organización , seleccione su restricción para ver la página de detalles de la política para esa restricción.
- Para configurar la política de la organización para este recurso, haga clic en Administrar política .
- En la página Editar política , seleccione Anular la política de los padres .
- Haga clic en Agregar una regla .
- En la sección Aplicación , seleccione si la aplicación de esta política de organización está activada o desactivada.
- Opcional: Para condicionar la política de la organización a una etiqueta, haga clic en Agregar condición . Tenga en cuenta que si agrega una regla condicional a una política de organización, debe agregar al menos una regla incondicional o la política no se podrá guardar. Para obtener más información, consulte Configuración de una política de organización con etiquetas .
- Si se trata de una restricción personalizada, puede hacer clic en Probar cambios para simular el efecto de esta política de la organización. Para obtener más información, consulte Pruebe los cambios en las políticas de la organización con Policy Simulator .
- Para finalizar y aplicar la política de la organización, haga clic en Establecer política . La política requiere hasta 15 minutos para entrar en vigor.
-
PROJECT_ID
: el proyecto en el que desea aplicar su restricción. -
CONSTRAINT_NAME
: el nombre que definiste para tu restricción personalizada. Por ejemplo,
.custom.createOnlyN2DVMs
Cree un archivo de restricciones
onlyN2DVMs.yaml
con la siguiente información:name: organizations/ORGANIZATION_ID/customConstraints/custom.createOnlyN2DVMs resource_types: compute.googleapis.com/Instance condition: "resource.machineType.contains('/machineTypes/n2d')" action_type: ALLOW method_types: CREATE display_name: Only N2D VMs allowed description: Restrict all VMs created to only use N2D machine types.
Establezca la restricción personalizada.
gcloud org-policies set-custom-constraint onlyN2DVMs.yaml
Cree un archivo de política
onlyN2DVMs-policy.yaml
con la siguiente información. En este ejemplo aplicamos esta restricción a nivel de proyecto, pero también puede establecerla a nivel de organización o carpeta. ReemplacePROJECT_ID
con su ID de proyecto.name: projects/PROJECT_ID/policies/custom.createOnlyN2DVMs spec: rules: – enforce: true
Hacer cumplir la política.
gcloud org-policies set-policy onlyN2DVMs-policy.yaml
Pruebe la restricción intentando crear una máquina virtual que utilice un tipo de máquina que no sea una máquina N2D.
gcloud compute instances create my-test-instance \ --project=PROJECT_ID \ --zone=us-central1-c \ --machine-type=e2-medium
El resultado es similar al siguiente:
ERROR: (gcloud.compute.instances.create) Could not fetch resource: – Operation denied by custom org policies: [customConstraints/
custom.createOnlyN2DVMs
]: Restrict all VMs created to only use N2D machine types.- Consulte Introducción al servicio de políticas de organización para obtener más información sobre las políticas de organización.
- Obtenga más información sobre cómo crear y administrar políticas de la organización .
- Consulte la lista completa de restricciones de políticas de organización predefinidas.
Roles requeridos
Para obtener los permisos que necesitas para administrar las políticas de la organización para los recursos de Compute Engine, pídele a tu administrador que te otorgue las siguientes funciones de IAM:
Para obtener más información sobre cómo otorgar roles, consulte Administrar el acceso a proyectos, carpetas y organizaciones .
Estos roles predefinidos contienen los permisos necesarios para administrar las políticas de la organización para los recursos de Compute Engine. Para ver los permisos exactos que se requieren, expanda la sección Permisos requeridos :
Permisos requeridos
Se requieren los siguientes permisos para administrar las políticas de la organización para los recursos de Compute Engine:
Es posible que también pueda obtener estos permisos con roles personalizados u otros roles predefinidos .
Recursos compatibles con Compute Engine
Para Compute Engine, puedes establecer restricciones personalizadas en los siguientes recursos y campos.
Configurar una restricción personalizada
Una restricción personalizada está definida por los recursos, métodos, condiciones y acciones admitidos por el servicio en el que se aplica la política de la organización. Las condiciones para sus restricciones personalizadas se definen mediante el lenguaje de expresión común (CEL) . Para obtener más información sobre cómo crear condiciones en restricciones personalizadas usando CEL, consulte la sección CEL de Creación y administración de políticas de organización personalizadas .
Puedes crear una restricción personalizada y configurarla para usarla en políticas de la organización mediante la consola de Google Cloud o la CLI de gcloud.
Consola
Cuando haya ingresado un valor en cada campo, la configuración YAML equivalente para esta restricción personalizada aparece a la derecha.
nube de gcloud
Para crear una restricción personalizada usando la CLI de gcloud, crea un archivo YAML para la restricción personalizada:
name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME resource_types: compute.googleapis.com/RESOURCE_NAME method_types: CREATE condition: CONDITION action_type: ACTION display_name: DISPLAY_NAME description: DESCRIPTION
Reemplace lo siguiente:
Para obtener más información sobre cómo crear una restricción personalizada, consulte Creación y administración de políticas de organización personalizadas .
Después de haber creado el archivo YAML para una nueva restricción personalizada, debe configurarlo para que esté disponible para las políticas de la organización en su organización. Para configurar una restricción personalizada, usa el comandogcloud org-policies set-custom-constraint
: Reemplacegcloud org-policies set-custom-constraint CONSTRAINT_PATH
CONSTRAINT_PATH
con la ruta completa a su archivo de restricciones personalizado. Por ejemplo,/home/user/customconstraint.yaml
. Una vez completadas, sus restricciones personalizadas están disponibles como políticas de organización en su lista de Google Cloud políticas de la organización. Para verificar que exista la restricción personalizada, usa el comandogcloud org-policies list-custom-constraints
: Reemplacegcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
ORGANIZATION_ID
con el ID del recurso de su organización. Para obtener más información, consulte Ver políticas de la organización .Aplicar una restricción personalizada
Puede imponer una restricción booleana creando una política de organización que haga referencia a ella y luego aplicando esa política de organización a un Google Cloud recurso.Consola
nube de gcloud
Para crear una política de organización que aplique una restricción booleana, cree un archivo YAML de política que haga referencia a la restricción:
name: projects/PROJECT_ID/policies/CONSTRAINT_NAME spec: rules: - enforce: true
Reemplace lo siguiente:
Para aplicar la política de la organización que contiene la restricción, ejecute el siguiente comando:
gcloud org-policies set-policy POLICY_PATH
Reemplace
POLICY_PATH
con la ruta completa al archivo YAML de política de su organización. La política requiere hasta 15 minutos para entrar en vigor.Ejemplo: crear una restricción que restrinja a las máquinas virtuales el uso del tipo de máquina N2D
nube de gcloud
Ejemplos de restricciones personalizadas para casos de uso comunes
Las siguientes secciones proporcionan la sintaxis de algunas restricciones personalizadas que pueden resultarle útiles:
Disco
Caso de uso Sintaxis El tipo de disco persistente debe ser "Disco persistente extremo ( pd-extreme
)"name: organizations/ORGANIZATION_ID/customConstraints/custom.createDisksPDExtremeOnly resource_types: compute.googleapis.com/Disk condition: "resource.type.contains('pd-extreme')" action_type: ALLOW method_types: CREATE display_name: Create pd-extreme disks only description: Only the extreme persistent disk type is allowed to be created.
El tamaño del disco debe ser menor o igual a 250 GB name: organizations/ORGANIZATION_ID/customConstraints/custom.createDisksLessThan250GB resource_types: compute.googleapis.com/Disk condition: "resource.sizeGb <= 250" action_type: ALLOW method_types: CREATE display_name: Disks size maximum is 250 GB description: Restrict the boot disk size to 250 GB or less for all VMs.
Imagen
Caso de uso Sintaxis Las imágenes de origen deben ser solo de Cloud Storage test_bucket
name: organizations/ORGANIZATION_ID/customConstraints/custom.createDisksfromStoragebucket resource_types: compute.googleapis.com/Image condition: "resource.rawDisk.source.contains('storage.googleapis.com/test_bucket/')" action_type: ALLOW method_types: CREATE display_name: Source image must be from Cloud Storage test_bucket only description: Source images used in this project must be imported from the Cloud Storage test_bucket.
instancia de máquina virtual
Caso de uso Sintaxis La máquina virtual debe tener una etiqueta con la clave configurada en cost center
name: organizations/ORGANIZATION_ID/customConstraints/custom.createVMWithLabel resource_types: compute.googleapis.com/Instance condition: "'cost_center' in resource.labels" action_type: ALLOW method_types: CREATE display_name: 'cost_center' label required description: Requires that all VMs created must have the a 'cost_center' label that can be used for tracking and billing purposes.
La máquina virtual debe tener una etiqueta con la clave establecida en cost center
y el valor establecido eneCommerce
name: organizations/ORGANIZATION_ID/customConstraints/custom.createECommerceVMOnly resource_types: compute.googleapis.com/Instance condition: "'cost_center' in resource.labels and resource.labels['cost_center'] == 'eCommerce'" action_type: ALLOW method_types: CREATE display_name: Label (cost_center/eCommerce) required description: Label required and Key/value must be cost_center/eCommerce.
La VM debe utilizar el tipo de máquina N2D name: organizations/ORGANIZATION_ID/customConstraints/custom.createOnlyN2DVMs resource_types: compute.googleapis.com/Instance condition: "resource.machineType.contains('/machineTypes/n2d')" action_type: ALLOW method_types: CREATE display_name: Only N2D VMs allowed description: Restrict all VMs created to only use N2D machine types.
La VM debe utilizar el tipo de máquina e2-highmem-8
name: organizations/ORGANIZATION_ID/customConstraints/custom.createOnlyE2highmem8 resource_types: compute.googleapis.com/Instance condition: "resource.machineType.endsWith('-e2-highmem-8')" action_type: ALLOW method_types: CREATE display_name: Only "e2-highmem-8" VMs allowed description: Restrict all VMs created to only use the E2 high-memory machine types that have 8 vCPUs.
Garantiza que las máquinas virtuales estén programadas en el grupo de nodos "foo" name: organizations/ORGANIZATION_ID/customConstraints/custom.createOnlySTVM resource_types: compute.googleapis.com/Instance condition: "resource.scheduling.nodeAffinities.exists(n, n.key == 'foo')" action_type: ALLOW method_types: CREATE display_name: Only VMs scheduled on node group "foo" allowed description: Restrict all VMs created to use the node group "foo".
¿Qué sigue?
A menos que se indique lo contrario, el contenido de esta página está sujeto a la licencia Reconocimiento 4.0 de Creative Commons y las muestras de código están sujetas a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio web de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-04-17 (UTC).
-