Acceso seguro a aplicaciones web privadas

En este documento se describe cómo configurar una pasarela segura de Chrome Enterprise Premium para proteger el acceso a tus aplicaciones web privadas.

Una pasarela segura de Chrome Enterprise Premium funciona como un proxy de reenvío, lo que permite aplicar un framework de acceso de confianza cero y ofrecer un control detallado y contextual sobre quién accede a tus aplicaciones web privadas.

Cómo funciona la protección del acceso a aplicaciones web privadas

Al establecer un túnel seguro y aplicar políticas de acceso contextual, la pasarela segura mantiene la privacidad de las aplicaciones privadas y las protege de la exposición a Internet pública. Una configuración del navegador del lado del cliente dirige el tráfico de estas aplicaciones a través del endpoint del proxy de pasarela segura. A continuación, la pasarela segura aplica la política de acceso pertinente y, si se permite, dirige la solicitud a la aplicación de destino.

La pasarela segura puede proteger las aplicaciones web privadas alojadas en los siguientes entornos:

  • Google Cloud project: la pasarela segura puede dirigir el acceso a las aplicaciones que se ejecutan en tu red de VPC. Google Cloud

  • NoGoogle Cloud (centros de datos on-premise u otras nubes): primero debes establecer una conexión entre tu red de VPC privada enGoogle Cloud y la red que no esGoogle Cloud . Normalmente, esto se hace mediante Cloud VPN o Cloud Interconnect. A continuación, la pasarela segura usa la conexión para enviar el tráfico a tu red de VPC privada, que a su vez lo dirige al entorno que no esGoogle Cloud .

Antes de empezar

Antes de configurar la pasarela segura, comprueba que tienes lo siguiente:

Configurar el entorno de shell

Para simplificar el proceso de configuración e interactuar con las APIs de la pasarela segura, define las siguientes variables de entorno en tu shell de trabajo.

  • Parámetros generales

    API="beyondcorp.googleapis.com"
    API_VERSION=v1
    PROJECT_ID=PROJECT_ID

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto en el que se crea la pasarela segura.
  • Parámetros de pasarela segura

    SECURITY_GATEWAY_ID=SECURITY_GATEWAY_ID
    SECURITY_GATEWAY_DISPLAY_NAME="SECURITY_GATEWAY_DISPLAY_NAME"

    Haz los cambios siguientes:

    • SECURITY_GATEWAY_ID: el ID de la pasarela segura que quieres crear. El ID puede tener hasta 63 caracteres y puede contener letras minúsculas, números y guiones. El primer carácter debe ser una letra y el último puede ser una letra o un número.
    • SECURITY_GATEWAY_DISPLAY_NAME: nombre legible de la pasarela segura. El nombre puede tener hasta 63 caracteres e incluir caracteres imprimibles.

Crear una pasarela segura

Una pasarela segura de Chrome Enterprise Premium es un componente fundamental para establecer conexiones seguras con tus aplicaciones.

gcloud

gcloud beyondcorp security-gateways create ${SECURITY_GATEWAY_ID} \
  --project=${PROJECT_ID} \
  --location=global \
  --display-name="${SECURITY_GATEWAY_DISPLAY_NAME}"
      

REST

curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-X POST \
-d '{ "display_name": "SECURITY_GATEWAY_DISPLAY_NAME" }' \
"https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways?security_gateway_id=${SECURITY_GATEWAY_ID}"
      

Configurar una aplicación web privada

Para poder definir recursos de aplicaciones específicos en la pasarela segura, debes configurar los permisos y los ajustes de red necesarios para habilitar la conectividad y el enrutamiento adecuado.

Conceder permisos a la cuenta de servicio

Para enviar tráfico a tu red de VPC correctamente, la pasarela de seguridad necesita que se le concedan determinados permisos de gestión de identidades y accesos a su cuenta de servicio de delegación. De esta forma, la pasarela segura puede acceder a tus aplicaciones privadas, tanto si están alojadas en una Google Cloud VPC como en un entorno que no sea deGoogle Cloud y que esté conectado a través de Cloud VPN o Cloud Interconnect.

  1. Obtén los detalles de tu pasarela segura para identificar el correo de la cuenta de servicio de delegación. El correo se encuentra en el campo delegatingServiceAccount de la respuesta.

    gcloud

    gcloud beyondcorp security-gateways describe ${SECURITY_GATEWAY_ID} \
       --project=${PROJECT_ID} \
       --location=global
                   

    REST

    curl \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}"
                   
  2. Define las variables de entorno de la cuenta de servicio y del proyecto de VPC de destino.
    DELEGATING_SERVICE_ACCOUNT="security-gateway@my-gateway-service-account.iam.gserviceaccount.com" # Replace with actual value
          
  3. Concede el rol roles/beyondcorp.upstreamAccess de gestión de identidades y accesos a la cuenta de servicio delegada en tu proyecto de VPC privada.
    gcloud projects add-iam-policy-binding PRIVATE_VPC_PROJECT_ID \
       --role=roles/beyondcorp.upstreamAccess \
       --member=serviceAccount:${DELEGATING_SERVICE_ACCOUNT}
        
    Sustituye PRIVATE_VPC_PROJECT_ID por el ID del proyecto de la red VPC en la que se ha desplegado la aplicación web privada o en la que se ha configurado Cloud VPN o Interconnect.

Espera unos dos minutos para que la política de gestión de identidades y accesos se aplique después de asignar el rol.

Configurar el enrutamiento de red y las reglas de cortafuegos

Para permitir que el tráfico de la pasarela segura llegue a tus aplicaciones web privadas, configura reglas de cortafuegos, el enrutamiento de red y los ajustes de DNS.

Reglas de cortafuegos de las aplicaciones en Google Cloud

Si tu aplicación web privada está alojada en tu red de Google Cloud VPC, como en una VM de Compute Engine, un servicio de Google Kubernetes Engine con una IP interna o detrás de un balanceador de carga TCP/UDP interno, configura reglas de cortafuegos deGoogle Cloud VPC. Esto permite el tráfico TCP de entrada desde los intervalos de IPs de la pasarela segura: 34.158.8.0/21 y 136.124.16.0/20.

Reglas de cortafuegos para aplicaciones en entornos que no son deGoogle Cloud

Si tu aplicación web privada reside en un centro de datos local o en la red de otro proveedor de la nube, y está conectada a tu Google CloudVPC mediante Cloud VPN o Cloud Interconnect, configura reglas de cortafuegos en tu cortafuegos local o en los controles de seguridad de red equivalentes, como grupos de seguridad y ACLs de red, en el otro entorno de nube. De este modo, se permite el tráfico TCP de entrada desde los intervalos de IPs de la pasarela segura.

Configurar el enrutamiento desde entornos que no son deGoogle Cloud a una pasarela segura

Para facilitar la comunicación bidireccional de las aplicaciones privadas alojadas en entornos que no son deGoogle Cloud , como entornos on-premise u otras nubes, tu red externa debe crear una ruta de retorno a los siguientes intervalos de IP de la pasarela segura: 34.158.8.0/21 y 136.124.16.0/20.

Verifica que tu red privada pueda acceder a los intervalos de IPs de la pasarela segura a través de tu Cloud VPN o Cloud Interconnect:

  • Enrutamiento dinámico: si utilizas el enrutamiento dinámico, como el protocolo de pasarela fronteriza (BGP) con Cloud Router, comprueba que tu Cloud Router Google Cloud anuncie explícitamente los intervalos de IPs de la pasarela segura a tu dispositivo BGP on‐premise. Aunque BGP intercambia muchas rutas de forma dinámica, los intervalos de IPs de la pasarela segura requieren un anuncio explícito.

  • Enrutamiento estático: si utilizas rutas estáticas, debes añadir manualmente rutas para cada uno de los intervalos de IPs de la pasarela segura en tu equipo de red local, como el router o el firewall. Estas rutas estáticas deben especificar que el tráfico destinado a los intervalos de IP de la pasarela segura se debe enviar a través de la conexión de Cloud VPN o Cloud Interconnect.

    Cuando se usa el enrutamiento estático, Cloud VPN debe estar en una de las siguientes regiones admitidas:

    • africa-south1
    • asia-east1
    • asia-south1
    • asia-south2
    • asia-southeast1
    • europe-central2
    • europe-north1
    • europe-southwest1
    • europe-west1
    • europe-west2
    • europe-west3
    • europe-west4
    • europe-west8
    • europe-west9
    • northamerica-northeast1
    • northamerica-northeast2
    • northamerica-south1
    • southamerica-east1
    • southamerica-west1
    • us-central1
    • us-east1
    • us-east4
    • us-east5
    • us-west1

Configuración de DNS para la resolución de nombres de host privados de la pasarela segura

Para que la pasarela segura resuelva los nombres de host de tu aplicación privada, tu red de VPC debe poder resolver los nombres de host mediante Cloud DNS.Google Cloud La configuración específica de Cloud DNS depende de dónde se alojen de forma autoritativa tus registros DNS privados:

  • Aplicaciones en Google Cloud que usan zonas privadas de Cloud DNS: si tus aplicaciones privadas están alojadas en Google Cloud y sus registros DNS se gestionan en zonas privadas de Cloud DNS asociadas a tu red de VPC, comprueba que las zonas estén configuradas correctamente y que se pueda acceder a ellas. La pasarela segura usa las funciones de resolución de Cloud DNS de tu VPC.

  • Aplicaciones en entornos que no son deGoogle Cloud o que usan servidores DNS externos: si tus aplicaciones privadas están en entornos que no son deGoogle Cloud(entornos locales u otras nubes) o si sus registros DNS se gestionan mediante servidores DNS externos a las zonas privadas de Cloud DNS de tu VPC, debes configurar Cloud DNS para que reenvíe las consultas de estos dominios privados. Normalmente, esto implica crear zonas de reenvío de Cloud DNS en tu VPC. Estas zonas dirigirán las consultas de DNS de los dominios privados que especifiques a tus servidores DNS privados autorizados, como los locales u otras nubes.

Para obtener instrucciones detalladas sobre la configuración de DNS, consulta Crear una zona de reenvío.

Crear un recurso de aplicación

Para proporcionar acceso a una aplicación web privada, debes establecer la aplicación en el marco de la pasarela segura creando un recurso de aplicación. En este recurso se define cómo identifica la pasarela segura el tráfico de tu aplicación (en función del nombre de host) y a dónde debe dirigirlo.

  1. Define las variables de entorno necesarias ejecutando el siguiente comando:
       APPLICATION_ID=APPLICATION_ID
       APP_DISPLAY_NAME="APP_DISPLAY_NAME"
       HOST_NAME=HOST_NAME
       PRIVATE_NETWORK_RESOURCE_NAME=PRIVATE_NETWORK_RESOURCE_NAME
       
    Sustituye lo siguiente:
    • APPLICATION_ID: ID único del recurso de aplicación.
    • APP_DISPLAY_NAME: el nombre legible por humanos que se va a mostrar.
    • HOST_NAME: el nombre de host principal al que acceden los usuarios (por ejemplo, private.local).
    • PRIVATE_NETWORK_RESOURCE_NAME: Nombre completo del recurso de la red de VPC (por ejemplo, projects/my-project/global/networks/my-network).
  2. Crea el recurso de aplicación.

    gcloud

    Ejecuta el siguiente comando para crear el recurso de aplicación.

    gcloud beyondcorp security-gateways applications create ${APPLICATION_ID} \
      --project=${PROJECT_ID} \
      --security-gateway=${SECURITY_GATEWAY_ID} \
      --location=global \
      --display-name="${APP_DISPLAY_NAME}" \
      --endpoint-matchers="hostname=${HOST_NAME},ports=[443]" \
      --upstreams=network=name="${PRIVATE_NETWORK_RESOURCE_NAME}"
            

    Para especificar una región de salida (por ejemplo, al usar rutas estáticas), añade la marca --egress-regions:

    gcloud beyondcorp security-gateways applications create ${APPLICATION_ID} \
      --project=${PROJECT_ID} \
      --security-gateway=${SECURITY_GATEWAY_ID} \
      --location=global \
      --display-name="${APP_DISPLAY_NAME}" \
      --endpoint-matchers="hostname=${HOST_NAME},ports=[443]" \
      --upstreams=network=name="${PRIVATE_NETWORK_RESOURCE_NAME}",egressPolicy=regions=us-central1
            

    Sustituye us-central1 por la Google Cloud región (como europe-west1 o asia-northeast1) que se corresponda con tu configuración de enrutamiento estático regional. Si no tienes requisitos específicos de enrutamiento estático regional, puedes omitir la política de salida de tu configuración.

    REST

    Para crear un recurso de aplicación con la API, sigue estos pasos:

    1. Crea un archivo llamado application.json.

      {
      "display_name": "APP_DISPLAY_NAME",
      "endpoint_matchers": [
         {"hostname": "HOST_NAME", "ports": [443]}
      ],
      "upstreams": [{
         "network": {
            "name": "PRIVATE_NETWORK_RESOURCE_NAME"
         }
      }]
      }
               

      Para especificar una región de salida (por ejemplo, al usar rutas estáticas), añade un egress_policy a la configuración upstream:

      {
      "display_name": "APP_DISPLAY_NAME",
      "endpoint_matchers": [
         {"hostname": "HOST_NAME", "ports": [443]}
      ],
      "upstreams": [{
         "network": {
            "name": "PRIVATE_NETWORK_RESOURCE_NAME"
         },
         "egress_policy": {
            "regions": [
            "us-central1"
            ]
         }
      }]
      }
                

      Sustituye us-central1 por la Google Cloud región (como europe-west1 o asia-northeast1) que se corresponda con tu configuración de enrutamiento estático regional. Si no tienes requisitos específicos de enrutamiento estático regional, puedes omitir la política de salida de tu configuración.

    2. Llama al método de API Create.

      curl \
      -H