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

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 global
    • EXTERNAL_HTTP_HTTPS para el balanceador de cargas de aplicaciones clásico
    • EXTERNAL_MANAGED_HTTP_HTTPS para el balanceador de cargas de aplicaciones externo regional
    • GLOBAL_INTERNAL_MANAGED_HTTP_HTTPS para el balanceador de cargas de aplicaciones interno entre regiones
    • INTERNAL_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 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
    • 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
    • GLOBAL_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 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 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 los siguientes elementos:

  • 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: Inhabilitar 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.

Configura restricciones booleanas con políticas de la organización

Consola

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 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, 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

Consola

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

  1. 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"
          ]
        }
        }
        
  2. 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:

¿Qué sigue?