Implementa Secure Web Proxy como un proxy explícito

En esta guía de inicio rápido, se explica cómo implementar y probar una instancia de Secure Web Proxy. En los pasos, se describe la implementación de Secure Web Proxy en el modo de enrutamiento explícito, que funciona como un proxy explícito.

Las instancias de Secure Web Proxy en modo de enrutamiento explícito se pueden implementar como un servicio de Private Service Connect. Como alternativa, puedes implementar Secure Web Proxy en el modo de enrutamiento de próximo salto.

La implementación de Secure Web Proxy en el modo de enrutamiento explícito incluye los siguientes pasos:

  1. Crear una política de Secure Web Proxy
  2. Crear reglas de Secure Web Proxy y agregarlas a la política
  3. Configura la instancia de Secure Web Proxy en el modo de enrutamiento explícito.
  4. Probar la conectividad desde una instancia de máquina virtual (VM) de Linux para confirmar que el proxy y sus políticas funcionen correctamente
Implementar Secure Web Proxy en el modo de enrutamiento de proxy explícito
Implementa Secure Web Proxy en el modo de enrutamiento de proxy explícito (haz clic para ampliar).

Antes de comenzar

  1. Completa los pasos de configuración inicial.

  2. Opcional: Para ejecutar los ejemplos de la línea de comandos de gcloud que se especifican en este documento, instala Google Cloud CLI en cualquiera de los siguientes entornos de desarrollo:

    Cloud Shell

    Para usar una terminal en línea con gcloud CLI ya configurada, activa Cloud Shell.

    Al final de esta página, se inicia una sesión de Cloud Shell y se muestra un prompt de línea de comandos. La sesión puede tardar unos segundos en inicializarse.

    Si ya instalaste gcloud CLI, asegúrate de tener la versión más reciente disponible ejecutando el comando gcloud components update.

    Shell local

    Para usar un entorno de desarrollo local, sigue estos pasos:

    1. Instala Google Cloud CLI
    2. Inicializa gcloud CLI
  3. Crea o selecciona un proyecto de Google Cloud existente.

    Si no planeas conservar los recursos que crearás en este procedimiento, te recomendamos que crees un proyecto en lugar de seleccionar uno existente. Después de completar los pasos de esta guía de inicio rápido, puedes borrar el proyecto para quitar todos los recursos asociados con él.

    Console

    En la consola de Google Cloud , en la página del selector de proyectos, crea un proyecto de Google Cloud o selecciona uno existente.

    Ir al selector de proyectos

    Cloud Shell

    1. Crea un proyecto de Google Cloud .

      gcloud projects create PROJECT_ID
      

      Reemplaza PROJECT_ID por el ID del proyecto que elijas.

    2. Selecciona el proyecto de Google Cloud que creaste.

      gcloud config set project PROJECT_ID
      
  4. Crea una instancia de VM de Linux.

    gcloud compute instances create swp-test-vm \
        --subnet=default \
        --zone=ZONE \
        --image-project=debian-cloud \
        --image-family=debian-11
    

    Reemplaza ZONE por la zona de tu instancia de VM de prueba.

    Compute Engine otorga el rol de Administrador de instancias de Compute (roles/compute.instanceAdmin) al usuario que crea la instancia de VM. Compute Engine también agrega ese usuario al grupo sudo.

  5. Crea una regla de firewall.

    gcloud compute firewall-rules create default-allow-ssh \
        --direction=INGRESS \
        --priority=1000 \
        --network=default \
        --action=ALLOW \
        --rules=tcp:22 \
        --source-ranges=0.0.0.0/0
    

Roles obligatorios

Asegúrate de tener los siguientes roles para completar las tareas de este instructivo:

Para obtener más información, consulta lo siguiente:

Crea una política de Secure Web Proxy

En esta sección, se explican los pasos para crear una política de Secure Web Proxy. Luego, la política puede servir como contenedor para todas las reglas de seguridad que rigen el flujo de tráfico a través del Secure Web Proxy. Después de crear la política, puedes crear reglas y agregarlas a la política.

Console

  1. En la consola de Google Cloud , ve a la página Políticas de SWP.

    Ir a Políticas de SWP

  2. Haz clic en Crear una política.

  3. En el campo Nombre, ingresa un nombre para la política, como myswppolicy.

  4. En el campo Descripción, ingresa una descripción para la política, como My new swp policy.

  5. En Regiones, selecciona la región en la que deseas crear la política, como us-central1.

  6. Si deseas crear reglas para tu política, haz clic en Agregar regla. Para obtener más información, consulta la sección Crea reglas de Secure Web Proxy.

  7. Haz clic en Crear.

Cloud Shell

  1. Usa un editor de texto para crear un archivo policy.yaml.

  2. Agrega el siguiente código al archivo policy.yaml:

      description: basic Secure Web Proxy policy
      name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/myswppolicy
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID de tu proyecto.
    • REGION: Es la región en la que se crea la política, como us-central1.
  3. Crear la política de Secure Web Proxy

    gcloud network-security gateway-security-policies import myswppolicy \
        --source=policy.yaml \
        --location=REGION
    

Crea reglas de Secure Web Proxy

En esta sección, se detallan los pasos para crear reglas de Secure Web Proxy. Las reglas ayudan a definir los controles de acceso reales para el tráfico web.

Dentro de la política que creaste antes, puedes definir reglas, como allow-wikipedia-org. Estas reglas especifican los criterios para hacer coincidir las sesiones web, por ejemplo, hacer coincidir un host específico como www.wikipedia.org, y, luego, permitir o denegar el tráfico web.

Console

  1. En la consola de Google Cloud , ve a la página Políticas de SWP.

    Ir a Políticas de SWP

  2. Haz clic en el nombre de tu política, como myswppolicy.

  3. Haz clic en Agregar regla.

  4. Para cada regla, haz lo siguiente:

    1. En Prioridad, ingresa un orden de evaluación numérico para la regla. Las reglas se evalúan de mayor a menor prioridad, en la que 0 es la prioridad más alta.

    2. En el campo Nombre, ingresa un nombre para la regla, como allow-wikipedia-org.

    3. En el campo Descripción, ingresa una descripción para la regla, como Allow wikipedia.org.

    4. En Acción, selecciona una de las siguientes opciones:

      • Permitir: para permitir las solicitudes de conexión que coincidan con la regla.
      • Rechazar: Rechaza las solicitudes de conexión que coinciden con la regla.
    5. En el campo Estado, selecciona una de las siguientes opciones para la aplicación de la regla:

      • Habilitada: para aplicar la regla en tu instancia de Secure Web Proxy.
      • Inhabilitada: para no aplicar la regla en tu instancia de Secure Web Proxy.
    6. En la sección Coincidencia de sesión, especifica los criterios para que coincida con la sesión, como host() == 'www.wikipedia.org'.

      Para obtener más información sobre la sintaxis de SessionMatcher, consulta la referencia del lenguaje de coincidencia de CEL.

    7. En la sección Coincidencia de aplicaciones, especifica los criterios para que coincidan con la solicitud. Como no habilitamos la regla para la inspección de TLS, la solicitud solo puede coincidir con el tráfico HTTP.

      Para obtener más información sobre la coincidencia del tráfico de TCP, consulta Configura reglas de proxy de TCP.

    8. Haz clic en Crear.

  5. Para agregar otra regla, haz clic en Agregar regla.

Cloud Shell

  1. Usa un editor de texto para crear el archivo rule.yaml.

  2. Agrega el siguiente código al archivo rule.yaml. Para obtener más información sobre la sintaxis de SessionMatcher, consulta la referencia del lenguaje de coincidencia de CEL.

    name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1/rules/RULE_NAME
    description: Allow wikipedia.org
    enabled: true
    priority: 1
    basicProfile: ALLOW
    sessionMatcher: host() == 'www.wikipedia.org'
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID de tu proyecto.
    • REGION: región de tu política
    • RULE_NAME: Es el nombre de la regla, como allow-wikipedia-org.
  3. Crea la regla de la política de seguridad.

    gcloud network-security gateway-security-policies rules import allow-wikipedia-org \
        --source=rule.yaml \
        --location=REGION \
        --gateway-security-policy=policy1
    

Configura un proxy web

En esta sección, se describe cómo implementar Secure Web Proxy en el modo de enrutamiento explícito, que funciona como un proxy explícito. También se explica cómo asociar la política y las reglas creadas con anterioridad con tu instancia de Secure Web Proxy, lo que garantiza que todo el tráfico que fluye a través de ella esté sujeto a los controles de acceso definidos.

Console

  1. En la consola de Google Cloud , ve a la página Proxies web.

    Ir a Proxies web

  2. Haz clic en Crear un proxy web seguro.

  3. En el campo Nombre, ingresa un nombre para el proxy web, como myswp.

  4. En el campo Descripción, ingresa una descripción para el proxy web, como My new swp.

  5. En Modo de enrutamiento, selecciona la opción Explícito.

  6. En Regiones, selecciona la región en la que deseas crear el proxy web, como us-central1.

  7. En Red, selecciona la red en la que deseas crear el proxy web.

  8. En Subred, selecciona la subred de VPC que creaste antes como parte de los pasos de configuración inicial.

  9. Opcional: En el campo Dirección IP del proxy web, ingresa la dirección IP del Secure Web Proxy.

    Puedes ingresar una dirección IP del rango de direcciones IP de Secure Web Proxy que residen en la subred que creaste en el paso anterior. Si no ingresas la dirección IP, tu instancia de Secure Web Proxy elige automáticamente una dirección IP de la subred seleccionada.

  10. En Puertos, ingresa los números de puerto, como 80 o 443, en los que deseas que escuche el proxy web.

  1. En Certificado, selecciona el certificado que quieres usar para crear el proxy web.

  2. En Política asociada, selecciona la política que creaste para asociar el proxy web.

  3. Haz clic en Crear.

Cloud Shell

  1. Usa un editor de texto para crear un archivo gateway.yaml.

  2. Agrega el siguiente código al archivo gateway.yaml:

    name: projects/PROJECT_ID/locations/REGION/gateways/myswp
    type: SECURE_WEB_GATEWAY
    addresses: ["IP_ADDRESS"]
    ports: [443]
    gatewaySecurityPolicy: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1
    network: projects/PROJECT_ID/global/networks/NETWORK
    subnetwork: projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK
    routingMode: EXPLICIT_ROUTING_MODE
    

    Opcional: Para permitir que las aplicaciones cliente de otras regiones de Google Cloud se conecten a tu proxy, habilita el acceso global cuando crees tu instancia de Secure Web Proxy.

    En el archivo gateway.yaml, agrega el campo allowGlobalAccess y configúralo como true.

    Importante: Solo puedes habilitar allowGlobalAccess cuando creas una instancia de Secure Web Proxy. No podrás modificar este parámetro de configuración más adelante.

    name: projects/PROJECT_ID/locations/REGION/gateways/swp1
    type: SECURE_WEB_GATEWAY
    addresses: ["IP_ADDRESS"]
    ports: [443]
    gatewaySecurityPolicy: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1
    network: projects/PROJECT_ID/global/networks/NETWORK
    subnetwork: projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK
    routingMode: EXPLICIT_ROUTING_MODE
    allowGlobalAccess: true
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID de tu proyecto.
    • REGION: Es la región en la que se crea tu instancia de Secure Web Proxy.
    • IP_ADDRESS: Es la dirección IP de tu instancia de Secure Web Proxy.
    • NETWORK: Es la red de tu instancia de Secure Web Proxy.
    • SUBNETWORK: Es la subred de tu instancia de Secure Web Proxy. Debes usar la subred de VPC que creaste antes como parte de los pasos de configuración inicial.
  3. Crea una instancia de Secure Web Proxy basada en el archivo gateway.yaml.

    gcloud network-services gateways import myswp \
        --source=gateway.yaml \
        --location=REGION
    

    Una instancia de Secure Web Proxy puede tardar varios minutos en implementarse.

Probar conectividad

Esta sección se enfoca en probar la conectividad de una VM de Linux para confirmar que el Secure Web Proxy recién implementado, sus políticas y sus reglas asociadas funcionen correctamente.

  1. Conéctate a la VM que aprovisionaste anteriormente.

    gcloud compute ssh swp-test-vm \
        --zone=ZONE
    

    Reemplaza ZONE por la zona de tu instancia de VM de prueba.

  2. Probar la instancia de Secure Web Proxy

    curl -s -o /dev/null -w "%{http_code}\\n" -x IP_ADDRESS:443 https://www.wikipedia.org
    

    Reemplaza IP_ADDRESS por la dirección IP de tu instancia de Secure Web Proxy.

    Este comando imprime el código de estado HTTP que se devuelve desde www.wikipedia.org. Si el comando se ejecuta de forma correcta, el código de estado es 200. Sin embargo, si hay un problema con el proxy, el comando devuelve un código de estado 000 para indicar un error de conexión. Para ver los mensajes de error detallados, agrega la opción -v al comando.

No configuramos la inspección de TLS en el ejemplo que se menciona en esta página. Para obtener más información sobre cómo configurar Secure Web Proxy para la inspección de TLS y, luego, probar tu instancia de Secure Web Proxy, consulta Habilita la inspección de TLS.

Realiza una limpieza

Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta página.

Borra la instancia de Secure Web Proxy de swp1

Console

  1. En la consola de Google Cloud , ve a la página Proxies web. Puedes ver la lista de todos los proxies web o solo los proxies web que están disponibles en una red en particular.

    Ir a Proxies web

  2. Selecciona el proxy web que deseas borrar. Aquí, el nombre del proxy web es swp1.

  3. Haz clic en Borrar y, luego, en Borrar de nuevo para confirmar.

Cloud Shell

gcloud network-services gateways delete swp1 \
    --location=REGION

Reemplaza REGION por la región de tu instancia de Secure Web Proxy.

Borra la puerta de enlace de Cloud NAT

Console

  1. En la consola de Google Cloud , ve a la página Cloud NAT.

    Ir a Cloud NAT

  2. Selecciona la puerta de enlace de Cloud NAT que se generó de forma automática para tu instancia de Secure Web Proxy. Por lo general, la puerta de enlace de Cloud NAT se llama swg-autogen-nat.

  3. Haz clic en Borrar y, luego, en Borrar de nuevo para confirmar.

Cloud Shell

  1. Opcional: Para identificar el nombre del Cloud Router generado de forma automática, enumera los routers de tu región.

    gcloud compute routers list \
        --region=REGION \
        --filter="name:(swg-autogen-router-*)" \
        --format="value(name)"
    

    Reemplaza REGION por la región de tu instancia de Secure Web Proxy.

  2. Borra la puerta de enlace de Cloud NAT.

    gcloud compute routers nats delete NAT_NAME \
        --router=ROUTER_NAME \
        --region=REGION
    

    Reemplaza lo siguiente:

    • NAT_NAME: Es el nombre de la puerta de enlace de Cloud NAT, por lo general, swg-autogen-nat.
    • ROUTER_NAME: Es el nombre del Cloud Router asociado a la puerta de enlace de Cloud NAT. El nombre del router suele comenzar con swg-autogen-router-.
    • REGION: Es la región de la puerta de enlace de Cloud NAT.

Borra Cloud Router

Console

  1. En la consola de Google Cloud , ve a la página Cloud Routers.

    Ir a Cloud Routers

  2. Selecciona el Cloud Router que se generó de forma automática para tu instancia de Secure Web Proxy. Por lo general, el nombre del router comienza con swg-autogen-router-.

  3. Haz clic en Borrar y, luego, en Borrar de nuevo para confirmar.

Cloud Shell

gcloud compute routers delete ROUTER_NAME \
    --region=REGION

Reemplaza lo siguiente:

  • ROUTER_NAME: Es el nombre del Cloud Router.
  • REGION: Es la región del Cloud Router.

Borra la regla allow-wikipedia-org

Console

  1. En la consola de Google Cloud , ve a la página Proxies web. Puedes ver la lista de todos los proxies web o solo los proxies web que están disponibles en una red en particular.

    Ir a Proxies web

  2. Haz clic en tu política. Aquí, el nombre de la política es policy1.

  3. Selecciona la regla que quieres borrar. Aquí, el nombre de la regla es allow-wikipedia-org.

  4. Haz clic en Borrar y, luego, en Borrar de nuevo para confirmar.

Cloud Shell

gcloud network-security gateway-security-policies rules delete allow-wikipedia-org \
    --location=REGION \
    --gateway-security-policy=policy1

Reemplaza REGION por la región de tu política.

Borra la política de Secure Web Proxy policy1

Console

  1. En la consola de Google Cloud , ve a la página Proxies web. Puedes ver la lista de todos los proxies web o solo los proxies web que están disponibles en una red en particular.

    Ir a Proxies web

  2. Selecciona la política que quieres borrar. Aquí, el nombre de la política es policy1.

  3. Haz clic en Borrar y, luego, en Borrar de nuevo para confirmar.

Cloud Shell

gcloud network-security gateway-security-policies delete policy1 \
    --location=REGION

Reemplaza REGION por la región de tu política.

Borra la instancia de VM de Linux swp-test-vm

Console

  1. En la consola de Google Cloud , ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. Selecciona las instancias que quieres borrar. Aquí, swp-test-vm es el nombre de la instancia de VM de Linux.

  3. Haz clic en Borrar.

Cloud Shell

gcloud compute instances delete swp-test-vm

¿Qué sigue?