Restricciones de las políticas de la organización para Cloud Load Balancing

El Servicio de políticas de la organización te brinda un control centralizado y programático sobre los recursos de tu organización. Como administrador de políticas de la organización, puedes definir una política de la organización, que es un conjunto de limitaciones llamadas restricciones que se aplican a los recursos de Google Cloud y a sus descendientes en la jerarquía de recursos de Google Cloud.

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 aplicaciones

    • GLOBAL_EXTERNAL_MANAGED_HTTP_HTTPS para el balanceador de cargas de aplicaciones externo global
    • EXTERNAL_HTTP_HTTPS para el balanceador de cargas de aplicaciones clásico
    • GLOBAL_INTERNAL_MANAGED_HTTP_HTTPS para el balanceador de cargas de aplicaciones interno entre regiones
    • EXTERNAL_MANAGED_HTTP_HTTPS para el balanceador de cargas de aplicaciones externo regional
    • INTERNAL_HTTP_HTTPS para el balanceador de cargas de aplicaciones interno regional
  • Balanceadores de cargas de red de proxy

    • GLOBAL_EXTERNAL_MANAGED_TCP_PROXY para el balanceador de cargas de red global del proxy externo con un proxy TCP
    • GLOBAL_EXTERNAL_MANAGED_SSL_PROXY para el balanceador de cargas de red global del proxy externo con un proxy SSL
    • EXTERNAL_TCP_PROXY para el balanceador de cargas de red del proxy externo con un proxy TCP
    • EXTERNAL_SSL_PROXY para el balanceador de cargas de red del proxy externo con un proxy SSL
    • GLOBAL_INTERNAL_MANAGED_TCP_PROXY para el balanceador de cargas de red de proxy interno entre regiones con un proxy TCP
    • REGIONAL_EXTERNAL_MANAGED_TCP_PROXY para el balanceador de cargas de red global del proxy externo con un proxy TCP
    • REGIONAL_INTERNAL_MANAGED_TCP_PROXY para el balanceador de cargas de red de proxy interno regional con un proxy TCP
  • Balanceadores de cargas de red de transferencia

    • EXTERNAL_NETWORK_TCP_UDP para el balanceador de cargas de red de transferencia externo
    • INTERNAL_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 permites in:INTERNAL, se permitirán 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 o service.
  • 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 implementaciones de reenvío de protocolos

Usa una política de la organización para restringir los tipos de implementaciones de reenvío de protocolos (internos o externos) 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

Para configurar la restricción compute.restrictProtocolForwardingCreationForTypes, especificas una lista de entidades permitidas o una lista de bloqueo del tipo de implementación de reenvío de protocolos que se permitirá o se rechazará. La lista de valores permitidos o denegados solo puede incluir los siguientes valores:

  • INTERNAL
  • EXTERNAL

De forma predeterminada, las organizaciones recién creadas tienen esta política configurada para permitir solo el reenvío de protocolos INTERNAL. Es decir, cualquier regla de reenvío asociada con instancias de destino se limita a usar solo direcciones IP internas. Si quieres usar el reenvío de protocolos con direcciones IP externas o si quieres prohibir que los usuarios usen el reenvío de protocolos con direcciones IP internas, debes actualizar esta política de la organización.

Después de actualizar la política, los cambios se aplican cuando creas reglas de reenvío nuevas asociadas con instancias de destino. La restricción no se aplica de forma retroactiva a las configuraciones de reenvío de protocolos existentes.

Para obtener instrucciones de muestra sobre cómo usar esta restricción, consulta Configura restricciones de listas con políticas de la organización.

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 que los usuarios pueden configurar implementaciones de VPC compartida.

Restringe los proyectos host de VPC compartida

Esta restricción de lista te permite restringir los proyectos host de VPC compartida a los que puede adjuntarse 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 lista 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 que se encuentran debajo 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 entra en vigencia la próxima vez que uses el comando gcloud compute url-maps para conectar 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 lista 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 tus propias restricciones personalizadas para los campos de la política de SSL, puedes crear restricciones adaptadas a tus implementaciones. Por ejemplo, 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 una 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.

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:

  1. 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

  2. En el campo Filtro, busca la restricción por Nombre o por ID.
  3. Haz clic en el nombre de la restricción.
  4. Haz clic en Editar para editar la restricción.
  5. En la página Editar, selecciona Personalizar.
  6. 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).
  7. 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, haz lo siguiente:

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:

  1. 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

  2. En el campo Filtro, busca la restricción por Nombre o por ID. Por ejemplo, para restringir los proyectos host de VPC compartida, busca el ID: constraints/compute.restrictSharedVpcHostProjects.
  3. Haz clic en el nombre de la restricción.
  4. Haz clic en Editar para editar la restricción.
  5. 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.
  6. 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 lista. Para obtener instrucciones más detalladas sobre cómo trabajar con restricciones de listas y políticas de la organización en gcloud, consulta Cómo usar restricciones.

  1. Crea el archivo de políticas. Usa los siguientes ejemplos 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",
            "EXTERNAL_NETWORK_TCP_UDP"
          ]
        }
        }
        
      • 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"
          ]
        }
        }
        
  2. Aplica la restricción a un recurso: 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:

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:

  1. 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

  2. En el campo Filtro, busca la restricción por Nombre o por ID.

  3. Haz clic en el nombre de la restricción.

  4. Haz clic en Editar para editar la restricción.

  5. Para crear una política personalizada, selecciona Personalizar y especifica la lista de entidades permitidas o la lista de bloqueo de recursos.

  6. 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:

  • 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
    

Para configurar restricciones personalizadas, consulta Usa restricciones personalizadas.

¿Qué sigue?