En esta página, se proporciona información complementaria sobre las restricciones de las políticas de la organización que se aplican a Cloud Load Balancing. Usa restricciones de las políticas de la organización para aplicar la configuración en un proyecto, una carpeta o una organización en su totalidad.
Las políticas de la organización solo se aplican a los recursos nuevos. Las restricciones no se aplican de forma retroactiva. Si tienes recursos de balanceo de cargas preexistentes que infringen una política de la organización nueva, deberás abordar esas infracciones de forma manual.
Para obtener una lista completa de las restricciones disponibles, consulta las restricciones de las políticas de la organización.
Restringe los tipos de balanceadores de cargas
Usa una política de la organización para restringir los tipos de Cloud Load Balancing que se pueden crear en tu organización. Establece la siguiente restricción de política de la organización:
- Nombre: Restringir la creación de balanceadores de cargas según sus tipos
- ID:
constraints/compute.restrictLoadBalancerCreationForTypes
Cuando configuras la restricción compute.restrictLoadBalancerCreationForTypes
, debes especificar una lista de entidades permitidas o una lista de bloqueo de los tipos de Cloud Load Balancing. La lista de valores permitidos o denegados solo puede incluir los de la siguiente lista:
- Balanceadores de cargas de la aplicación
GLOBAL_EXTERNAL_MANAGED_HTTP_HTTPS
para el balanceador de cargas de aplicaciones externo globalEXTERNAL_HTTP_HTTPS
para el balanceador de cargas de aplicaciones clásicoEXTERNAL_MANAGED_HTTP_HTTPS
para el balanceador de cargas de aplicaciones externo regionalGLOBAL_INTERNAL_MANAGED_HTTP_HTTPS
para el balanceador de cargas de aplicaciones interno entre regionesINTERNAL_HTTP_HTTPS
para el balanceador de cargas de aplicaciones interno regional
- Balanceadores de cargas de red del proxy
GLOBAL_EXTERNAL_MANAGED_TCP_PROXY
para el balanceador de cargas de red global del proxy externo con un proxy TCPGLOBAL_EXTERNAL_MANAGED_SSL_PROXY
para el balanceador de cargas de red global del proxy externo con un proxy SSLEXTERNAL_TCP_PROXY
para el balanceador de cargas de red del proxy externo con un proxy TCPEXTERNAL_SSL_PROXY
para el balanceador de cargas de red del proxy externo con un proxy SSLREGIONAL_EXTERNAL_MANAGED_TCP_PROXY
para el balanceador de cargas de red global del proxy externo con un proxy TCPREGIONAL_INTERNAL_MANAGED_TCP_PROXY
para el balanceador de cargas de red de proxy interno regional con un proxy TCPGLOBAL_INTERNAL_MANAGED_TCP_PROXY
para el balanceador de cargas de red de proxy interno entre regiones con un proxy TCP
- Balanceadores de cargas de red de transferencia
EXTERNAL_NETWORK_TCP_UDP
para el balanceador de cargas de red de transferencia externoINTERNAL_TCP_UDP
para el balanceador de cargas de red de transferencia interno
Para incluir todos los tipos de balanceadores de cargas internos o externos, usa el prefijo in:
seguido de INTERNAL
o EXTERNAL
. Por ejemplo, si se permite in:INTERNAL
, se permiten todos los balanceadores de cargas internos de la lista anterior.
Para obtener instrucciones de muestra sobre cómo usar esta restricción, consulta Configura restricciones de listas con políticas de la organización.
Después de configurar la política, esta se aplica cuando se agregan las reglas de reenvío correspondientes de Google Cloud. La restricción no se aplica a la configuración existente de Cloud Load Balancing.
Si intentas crear un tipo de balanceador de cargas que infrinja la restricción, el intento fallará y se generará un mensaje de error. El mensaje de error tiene el siguiente formato:
Constraint constraints/compute.restrictLoadBalancerCreationForTypes violated for projects/PROJECT_NAME. Forwarding Rule projects/PROJECT_NAME/region/REGION/forwardingRules/FORWARDING_RULE_NAME of type SCHEME is not allowed.
Si configuras varias restricciones restrictLoadBalancerCreationForTypes
en diferentes niveles de recursos, estas se aplican de manera jerárquica.
Por este motivo, se recomienda establecer el campo inheritFromParent
en true
, lo que garantiza que también se consideran las políticas de las capas superiores.
Mensajes de error de GKE
Si usas los objetos Ingress y Service de Google Kubernetes Engine (GKE), el uso de esta política de la organización para restringir la creación del balanceador de cargas da como resultado un mensaje de error similar al siguiente:
Warning Sync 28s loadbalancer-controller Error during sync: error running load balancer syncing routine: loadbalancer FORWARDING_RULE_NAME does not exist: googleapi: Error 412: Constraint constraints/compute.restrictLoadBalancerCreationForTypes violated for projects/PROJECT_ID. Forwarding Rule projects/PROJECT_ID/global/forwardingRules/FORWARDING_RULE_NAME of type LOAD_BALANCER_TYPE is not allowed, conditionNotMet
Puedes ver los mensajes de error de GKE si ejecutas los siguientes comandos:
kubectl get events -w
kubectl describe RESOURCE_KIND NAME
Reemplaza lo siguiente:
- RESOURCE_KIND: Es el tipo de balanceador de cargas,
ingress
oservice
. - NAME: Es el nombre del balanceador de cargas.
Inhabilita el balanceo de cargas global
Esta restricción booleana inhabilita la creación de productos de balanceo de cargas global. Cuando se aplica, solo se pueden crear productos de balanceo de cargas regional sin dependencias globales.
- Nombre: Inhabilita el balanceo de cargas global.
- ID:
constraints/compute.disableGlobalLoadBalancing
De forma predeterminada, los usuarios pueden crear productos de balanceo de cargas global.
Para obtener instrucciones de muestra sobre cómo usar esta restricción, consulta Configura restricciones booleanas con políticas de la organización.
Restringe los tipos de reenvío de protocolos
Usa una política de la organización para restringir los tipos de reenvío de protocolos que se pueden crear en tu organización. Establece la siguiente restricción de política de la organización:
- Nombre: Restringir el reenvío de protocolo en función del tipo de dirección IP
- ID:
constraints/compute.restrictProtocolForwardingCreationForTypes
Cuando estableces la restricción compute.restrictProtocolForwardingCreationForTypes
, especificas una lista de entidades permitidas o una lista de bloqueo de los tipos de reenvío de protocolos. La lista de valores permitidos o denegados solo puede incluir los de la siguiente lista:
INTERNAL
EXTERNAL
Para obtener instrucciones de muestra sobre cómo usar esta restricción, consulta Configura restricciones de listas con políticas de la organización.
Después de configurar la política, esta se aplica cuando se agregan las reglas de reenvío correspondientes de Google Cloud. La restricción no se aplica en las opciones de configuración de reenvío de protocolos existentes.
Si intentas crear una implementación de reenvío de protocolos de un tipo que infringe la restricción, el intento falla y se genera un mensaje de error. El mensaje de error tiene el siguiente formato:
Constraint constraints/compute.restrictProtocolForwardingCreationForTypes violated for projects/PROJECT_NAME. Forwarding Rule projects/PROJECT_NAME/region/REGION/forwardingRules/FORWARDING_RULE_NAME of type SCHEME is not allowed.
Si configuras varias restricciones restrictProtocolForwardingCreationForTypes
en diferentes niveles de recursos y si estableces el campo inheritFromParent
en true
, las restricciones se aplicarán de manera jerárquica.
Aplica restricciones de VPC compartida
Usa las siguientes políticas de la organización para restringir la forma en la que los usuarios pueden configurar implementaciones de VPC compartida.
Restringe los proyectos host de VPC compartida
En esta restricción de lista, puedes restringir los proyectos host de VPC compartida a los que se puede adjuntar un recurso.
- Nombre: Restringir proyectos host de VPC compartida
- ID:
constraints/compute.restrictSharedVpcHostProjects
De forma predeterminada, un proyecto puede adjuntarse a cualquier proyecto de host dentro de la misma organización, lo que lo convierte en un proyecto de servicio. Cuando configuras la restricción compute.restrictSharedVpcHostProjects
, debes especificar una lista de entidades permitidas o una lista de bloqueo de proyectos de host de las maneras siguientes:
- Especifica un proyecto en el siguiente formato:
- projects/PROJECT_ID
- Especifica un proyecto, una carpeta o una organización. La restricción se aplica a todos los proyectos del recurso especificado en la jerarquía de recursos. Usa el siguiente formato:
- .
- under:organizations/ORGANIZATION_ID
- under:folders/FOLDER_ID
Para obtener instrucciones de muestra sobre cómo usar esta restricción, consulta Configura restricciones de listas con políticas de la organización.
Restringe las subredes de VPC compartidas
En esta restricción de lista, se define el conjunto de subredes de VPC compartidas que pueden usar los recursos aptos. Esta restricción no se aplica a los recursos dentro del mismo proyecto.
- Nombre: Restringir subredes de VPC compartida
- ID:
constraints/compute.restrictSharedVpcSubnetworks
De forma predeterminada, los recursos aptos pueden usar cualquier subred de VPC compartida. Cuando configuras la restricción compute.restrictSharedVpcSubnetworks
, debes especificar una lista restringida de subredes de las siguientes maneras:
- Especifica una subred con el siguiente formato:
- projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME.
- Especifica un proyecto, una carpeta o una organización. La restricción se aplica a todas las subredes del recurso especificado en la jerarquía de recursos. Usa el siguiente formato:
- .
- under:organizations/ORGANIZATION_ID
- under:folders/FOLDER_ID
- under:projects/PROJECT_ID
Para obtener instrucciones de muestra sobre cómo usar esta restricción, consulta Configura restricciones de listas con políticas de la organización.
Restringe los servicios de backend entre proyectos
Puedes usar esta restricción para limitar los servicios de backend a los que puede hacer referencia un mapa de URL. Esta restricción no se aplica a los servicios de backend dentro del mismo proyecto que el mapa de URL.
- Nombre: Restringir servicios de backend entre proyectos
- ID:
constraints/compute.restrictCrossProjectServices
De forma predeterminada, los mapas de URL en todos los proyectos host o de servicio pueden hacer referencia a los servicios de backend compatibles de otros proyectos de servicio o al proyecto host en la misma implementación de VPC compartida, siempre que el usuario que realice la acción tenga el permiso compute.backendServices.use
. Cuando configuras la restricción restrictCrossProjectServices
, debes especificar una lista de entidades permitidas o una lista de bloqueo de los servicios de backend de las maneras siguientes:
- Especifica los servicios de backend en el siguiente formato:
- projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE_NAME
- Especifica un proyecto, una carpeta o una organización. La restricción se aplica a todos los servicios de backend del recurso especificado en la jerarquía de recursos. Usa el siguiente formato:
- .
- under:organizations/ORGANIZATION_ID
- under:folders/FOLDER_ID
- under:projects/PROJECT_ID
Después de configurar una política de la organización con esta restricción, esta se aplicará la próxima vez que uses el comando gcloud compute url-maps
para vincular un servicio de backend a un mapa de URL. La restricción no afecta de forma retroactiva las referencias existentes a ningún servicio de backend entre proyectos.
Para obtener instrucciones de muestra sobre cómo usar esta restricción, consulta Configura restricciones de listas con políticas de la organización.
Restringe la eliminación de la retención del proyecto de VPC compartida
En esta restricción booleana, se limita el conjunto de usuarios mediante el cual se puede quitar una retención de proyecto host de VPC compartida sin el permiso de nivel de organización en el que esta restricción ya se establece en True
.
- Nombre: Restringe la eliminación de la retención del proyecto de VPC compartida
- ID:
constraints/compute.restrictXpnProjectLienRemoval
De forma predeterminada, cualquier usuario con permiso para actualizar retenciones puede quitar una retención de proyecto host de VPC compartida. Para aplicar esta restricción, se debe otorgar permiso a nivel de la organización.
Para obtener instrucciones de muestra sobre cómo usar esta restricción, consulta Configura restricciones booleanas con políticas de la organización.
Restringe las capacidades de TLS con restricciones personalizadas
Para satisfacer los requisitos de cumplimiento y restringir ciertas funciones de seguridad de la capa de transporte (TLS), puedes crear la siguiente restricción de política de la organización y usarla junto con restricciones personalizadas para los recursos de la política de SSL:
- Nombre: Exigir política de SSL
- ID:
constraints/compute.requireSslPolicy
Si usas la restricción constraints/compute.requireSslPolicy
junto con las restricciones personalizadas, puedes hacer lo siguiente:
- Restringe el uso de versiones anteriores de TLS (como 1.0 y 1.1) y conjuntos de algoritmos de cifrado para mejorar la seguridad y cumplir con los requisitos de cumplimiento.
- Mejora el rendimiento mediante la reducción de la cantidad de protocolos de enlace necesarios y la mejora de la compatibilidad del balanceador de cargas con los clientes.
- Aplica la restricción a un nodo de recursos específico y a sus elementos secundarios. Por ejemplo, si rechazas la versión 1.0 de TLS para una organización, también se denegará en todas las carpetas y proyectos (secundarios) que descienden de esa organización.
- Define un conjunto de proxies HTTPS de destino y proxies SSL de destino que tengan una política de SSL adjunta.
Cuando usas una restricción personalizada para las políticas de SSL, puedes definir tus propias restricciones en los siguientes campos:
- Perfil de la política de SSL:
resource.profile
- Versión mínima de TLS de la política de SSL:
resource.minTlsVersion
- Características de la política de SSL:
resource.customFeatures
Si quieres aplicar una política de SSL para un balanceador de cargas de aplicaciones o un balanceador de cargas de red del proxy, debes adjuntarla al proxy HTTPS o SSL de destino del balanceador de cargas.
Para actualizar las políticas de SSL existentes, consulta Actualiza las políticas de SSL existentes adjuntas a los proxies de destino.
Configura restricciones booleanas con políticas de la organización
Console
Para establecer una política de la organización desde la consola, completa los siguientes pasos:
- En la consola de Google Cloud, ve a la página Políticas de la organización.
- En el campo Filtro, busca la restricción por Nombre o ID.
- Haz clic en el nombre de la restricción.
- Haz clic en Editar para editar la restricción.
- En la página Editar, selecciona Personalizar.
- En Aplicación, selecciona una opción de aplicación:
- Para habilitar la aplicación forzosa de esta restricción, selecciona Habilitado.
- Para inhabilitar la aplicación forzosa de esta restricción, selecciona Inhabilitar (Off).
- Después de realizar cambios, haz clic en Guardar para aplicar la configuración de la restricción.
Si deseas obtener instrucciones detalladas para personalizar las políticas de la organización mediante la consola de Google Cloud, consulta Personaliza las políticas de restricciones booleanas.
gcloud
A fin de habilitar la aplicación de una restricción booleana para una política de la organización, usa el comando gcloud resource-manager org-policies
enable-enforce
de la siguiente manera.
Para habilitar la restricción de la eliminación de la retención del proyecto de VPC compartida, sigue estos pasos:
gcloud resource-manager org-policies enable-enforce \ --organization ORGANIZATION_ID \ constraints/compute.restrictXpnProjectLienRemoval
Para inhabilitar el balanceo de cargas global, sigue estos pasos:
gcloud resource-manager org-policies enable-enforce \ --organization ORGANIZATION_ID \ constraints/compute.disableGlobalLoadBalancing
A fin de obtener instrucciones detalladas para trabajar con restricciones booleanas en gcloud
, consulta Usa restricciones.
Configura restricciones de listas con políticas de la organización
Console
Para establecer una política de la organización desde la consola, completa los siguientes pasos:
- En la consola de Google Cloud, ve a la página Políticas de la organización.
- En el campo Filtro, busca la restricción por Nombre o ID. Por ejemplo, para restringir los proyectos host de VPC compartida, busca el ID:
constraints/compute.restrictSharedVpcHostProjects
. - Haz clic en el nombre de la restricción.
- Haz clic en Editar para editar la restricción.
- Para crear una política personalizada, selecciona Personalizar y especifica la lista de entidades permitidas o la lista de bloqueo de recursos. Si deseas obtener instrucciones más detalladas sobre cómo personalizar las políticas de la organización mediante la consola de Google Cloud, consulta Personaliza las políticas de restricciones de listas.
- Después de realizar cambios, haz clic en Guardar para aplicar la configuración de la restricción.
gcloud
En esta sección, se proporcionan algunos ejemplos de configuración para mostrarte cómo crear y configurar un archivo de políticas de la organización con restricción de listas. Para obtener instrucciones más detalladas sobre cómo trabajar con restricciones de listas y políticas de la organización en gcloud
, consulta Usa restricciones.
Crea el archivo de políticas. Usa las siguientes muestras de configuración JSON para crear tu propio archivo de políticas según tus requisitos.
Restringir los tipos de balanceadores de cargas
Permite solo un subconjunto de balanceadores de cargas
{ "constraint": "constraints/compute.restrictLoadBalancerCreationForTypes", "listPolicy": { "allowedValues": [ "INTERNAL_TCP_UDP", "INTERNAL_HTTP_HTTPS", "EXTERNAL_NETWORK_TCP_UDP", "EXTERNAL_TCP_PROXY", "EXTERNAL_SSL_PROXY", "EXTERNAL_HTTP_HTTPS" ] } }
Rechaza todos los balanceadores de cargas externos
{ "constraint": "constraints/compute.restrictLoadBalancerCreationForTypes", "listPolicy": { "deniedValues": [ "in:EXTERNAL" ] } }
Rechaza todos los balanceadores de cargas
{ "constraint": "constraints/compute.restrictLoadBalancerCreationForTypes", "listPolicy": { "allValues": "DENY" } }
Restringir los tipos de reenvío de protocolos
Rechazar todo el reenvío de protocolos
{ "constraint": "constraints/compute.restrictProtocolForwardingCreationForTypes", "listPolicy": { "allValues": "DENY" } }
Solo permitir el reenvío de protocolo interno
{ "constraint": "constraints/compute.restrictProtocolForwardingCreationForTypes", "listPolicy": { "deniedValues": [ "EXTERNAL" ] } }
Restringir las configuraciones de VPC compartida
Restringir los proyectos host de VPC compartida
{ "constraint": "constraints/compute.restrictSharedVpcHostProjects", "listPolicy": { "allowedValues": [ "under:folders/FOLDER_ID", "under:projects/PROJECT_ID" ] } }
Restringir las subredes de VPC compartidas
{ "constraint": "constraints/compute.restrictSharedVpcSubnetworks", "listPolicy": { "deniedValues": [ "under:organizations/ORGANIZATION_ID", "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME" ] } }
Restringir los servicios de backend de VPC compartida
{ "constraint": "constraints/compute.restrictCrossProjectServices", "listPolicy": { "allowedValues": [ "under:folders/FOLDER_ID", "under:projects/PROJECT_ID", "projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE_NAME" ] } }
Aplica la restricción a un recurso: ya sea una organización, una carpeta o un proyecto.
Para las organizaciones, ejecuta el siguiente comando:
gcloud resource-manager org-policies set-policy POLICY_FILE \ --organization=ORGANIZATION_ID
Para las carpetas, ejecuta el siguiente comando:
gcloud resource-manager org-policies set-policy POLICY_FILE \ --folder=FOLDER_ID
Para los proyectos, ejecuta el siguiente comando:
gcloud resource-manager org-policies set-policy POLICY_FILE \ --project=PROJECT_ID
Reemplaza lo siguiente:
ORGANIZATION_ID
: Es el ID de tu organización.FOLDER_ID
: El ID de la carpeta.PROJECT_ID
: El ID del proyecto.
Configura una política de la organización para aplicar una política de SSL a los proxies HTTPS y SSL de destino
Console
Para establecer una política de la organización desde la consola, completa los siguientes pasos:
En la consola de Google Cloud, ve a la página Políticas de la organización.
En el campo Filtro, busca la restricción por Nombre o ID.
Haz clic en el nombre de la restricción.
Haz clic en Editar para editar la restricción.
Para crear una política personalizada, selecciona Personalizar y especifica la lista de entidades permitidas o la lista de bloqueo de recursos.
Después de realizar cambios, haz clic en Guardar para aplicar la configuración de la restricción.
gcloud
En esta sección, se proporcionan algunos ejemplos de configuración que muestran cómo crear y configurar un archivo de políticas de la organización con la restricción constraints/compute.requireSslPolicy
.
Crea un archivo de política para inhabilitar el uso de políticas de SSL.
{ "constraint": "constraints/compute.requireSslPolicy", "listPolicy": { "allValues": "DENY" } }
Crea un archivo de política para aplicar una política de SSL a todos los proxies HTTPS y SSL de destino del recurso especificado en la jerarquía de recursos:
{ "constraint": "constraints/compute.requireSslPolicy", "listPolicy": { "allowedValues": [ "under:folders/FOLDER_ID", "under:projects/PROJECT_ID" ] } }
Aplica la restricción a los proxies HTTPS y SSL de destino: ya sea una organización, una carpeta o un proyecto.
Para las organizaciones, ejecuta el siguiente comando:
gcloud resource-manager org-policies set-policy PATH_TO_POLICY_FILE \ --organization=ORGANIZATION_ID
Para las carpetas, ejecuta el siguiente comando:
gcloud resource-manager org-policies set-policy PATH_TO_POLICY_FILE \ --folder=FOLDER_ID
Para los proyectos, ejecuta el siguiente comando:
gcloud resource-manager org-policies set-policy PATH_TO_POLICY_FILE \ --project=PROJECT_ID
Reemplaza lo siguiente:
PATH_TO_POLICY_FILE
: la ruta de acceso al archivo de política.ORGANIZATION_ID
: el ID de la organizationFOLDER_ID
: el ID de la carpetaPROJECT_ID
: el ID del proyecto
Para obtener la política vigente para verificar el comportamiento predeterminado del recurso (organización, carpeta o proyecto), ejecuta los siguientes comandos:
Para organizaciones:
gcloud resource-manager org-policies describe compute.requireSslPolicy \ --effective \ --organization=ORGANIZATION_ID
Para carpetas:
gcloud resource-manager org-policies describe compute.requireSslPolicy \ --effective \ --folder=FOLDER_ID
Para los proyectos:
gcloud resource-manager org-policies describe compute.requireSslPolicy \ --effective \ --project=PROJECT_ID
Para borrar la política del recurso (organización, carpeta o proyecto), ejecuta los siguientes comandos:
Para organizaciones:
gcloud resource-manager org-policies delete compute.requireSslPolicy \ --organization=ORGANIZATION_ID
Para carpetas:
gcloud resource-manager org-policies delete compute.requireSslPolicy \ --folder=FOLDER_ID
Para los proyectos:
gcloud resource-manager org-policies delete compute.requireSslPolicy \ --project=PROJECT_ID
A fin de configurar restricciones personalizadas, consulta Usa restricciones personalizadas para restringir las capacidades de TLS.
¿Qué sigue?
- Para obtener información sobre la jerarquía de recursos que se aplica a las políticas de la organización, consulta Jerarquía de recursos.
- Para obtener una descripción general de las políticas y restricciones de la organización, consulta Introducción al servicio de las políticas de la organización.
- Si quieres obtener instrucciones para trabajar con restricciones y políticas de la organización en la consola de Google Cloud, consulta Crea y administra políticas de la organización.
- A fin de obtener instrucciones para trabajar con restricciones y políticas de la organización en
gcloud
, consulta Usa restricciones. - Para obtener una lista completa de las restricciones disponibles, consulta las restricciones de las políticas de la organización.
- Para conocer los métodos de la API relevantes para las políticas de la organización, consulta la documentación de referencia de la API de Resource Manager.