Configura la integración dentro de la banda para un modelo de productor-consumidor

La integración de la seguridad de redes usa el modelo de productor-consumidor para inspeccionar y supervisar los datos. Utiliza la integración en banda con tecnología de interceptación de paquetes para insertar dispositivos de red de terceros en el flujo de tráfico de red y realizar una inspección profunda de paquetes.

En este instructivo, se describe cómo crear y configurar recursos de productor y consumidor para configurar la integración dentro de la banda.

Objetivos

En este instructivo, se muestra cómo completar las siguientes tareas en un proyecto:

  • Crea redes de VPC personalizadas con subredes para el productor y el consumidor en el mismo proyecto.
  • En el caso del productor, crea y configura recursos del productor, como un balanceador de cargas de red de transferencia interno, un servicio de intercepción y recursos de implementación de intercepción.
  • Para el consumidor, crea y configura instancias de máquina virtual (VM) de cliente y servidor, recursos de extremos del consumidor y políticas de firewall para interceptar el tráfico cliente-servidor.
  • Prueba la conexión y verifica que los paquetes de tráfico de red sean interceptados por los recursos de extremo del consumidor y que los recursos de interceptación del productor los inspeccionen.

Antes de comenzar

  1. Accede a tu cuenta de Google Cloud . Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Habilita la API de Compute Engine para tu proyecto.
  7. Habilita la API de Network Security en el proyecto Google Cloud que deseas usar para la facturación.
  8. Asegúrate de tener el rol de administrador de red de Compute (roles/compute.networkAdmin) otorgado a nivel del proyecto y el rol de administrador de perfiles de seguridad (roles/networksecurity.securityProfileAdmin) otorgado a nivel de la organización.
  9. Si prefieres trabajar desde la línea de comandos, instala Google Cloud CLI. Para obtener información conceptual y de instalación sobre la herramienta, consulta Descripción general de gcloud CLI.

    Nota: Si no ejecutaste Google Cloud CLI antes, primero ejecuta gcloud init para inicializar el directorio de gcloud CLI.

  10. Obtén el ID de tu proyecto. Lo necesitas para crear recursos de interceptación y de extremo.

    Si usas gcloud CLI, puedes reemplazar PROJECT_ID aquí o más adelante en los comandos respectivos.

  11. Obtén el ID de tu organización. Lo necesitas para crear recursos a nivel de la organización, como perfiles de seguridad y grupos de perfiles de seguridad.

    Si usas gcloud CLI, puedes reemplazar ORG_ID aquí o más adelante en los comandos respectivos.

Crea recursos de productores

En esta sección, crearás los siguientes recursos para el productor:

  • Una red de VPC personalizada con una subred
  • Un grupo de instancias no administrado con una instancia de VM que ejecuta un servidor de eco de encapsulación de virtualización de red genérica (GENEVE).
  • Un balanceador de cargas de red de transferencia interno con un servicio de backend y una regla de reenvío.
  • Una regla de firewall para permitir las Google Cloud verificaciones de estado.
  • Un grupo de implementación de intercepción y una implementación de intercepción

Crea una red de VPC personalizada

En esta sección, crearás una red de VPC con una subred.

Console

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

    Ir a Redes de VPC

  2. Haz clic en Crear red de VPC.

  3. En Nombre, ingresa producer-network.

  4. En Descripción, ingresa Producer VPC network.

  5. En la sección Subredes, haz lo siguiente:

    1. En Modo de creación de subredes, selecciona Custom.
    2. En la sección Nueva subred, ingresa la siguiente información:
      • Nombre: producer-subnet
      • Región: us-west1
      • Tipo de pila IP: IPv4 (pila única)
      • Rango IPv4: 10.10.0.0/16
    3. Haz clic en Listo.
  6. Haz clic en Crear.

  7. Abre Google Cloud CLI y ejecuta el siguiente comando para aumentar la unidad de transmisión máxima (MTU) de la red de VPC.

    gcloud compute networks update producer-network \
        --mtu=1768
    

    En el comando, especificas una MTU de 1,768 bytes, que es la suma de la MTU predeterminada de una red de VPC (1,460 bytes) y la sobrecarga de encapsulación GENEVE de la integración de seguridad de redes (308 bytes).

gcloud

  1. Crear una red de VPC.

    gcloud compute networks create producer-network \
        --subnet-mode=custom \
        --mtu=1768 \
        --description="Producer VPC network"
    

    En el comando, especificas una unidad de transmisión máxima (MTU) de 1,768 bytes, que es la suma de la MTU predeterminada de una red de VPC (1,460 bytes) y la sobrecarga de encapsulamiento de GENEVE de la integración de seguridad de redes (308 bytes).

  2. En la red de VPC, crea una subred.

    gcloud compute networks subnets create producer-subnet \
        --network=producer-network \
        --region=us-west1 \
        --range=10.10.0.0/16
    

Crea un grupo de instancias no administrado

En esta sección, crearás un grupo de instancias no administrado.

Console

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

    Ir a Grupos de instancias

  2. Haz clic en Crear grupo de instancias.

  3. Haz clic en Crear un nuevo grupo de instancias no administrado.

  4. En Nombre, ingresa producer-instance-group.

  5. En la sección Ubicación, selecciona us-west1 para Región y us-west1-b para Zona.

  6. En Red, selecciona producer-network.

  7. En Subred, selecciona producer-subnet.

  8. Haz clic en Crear.

gcloud

gcloud compute instance-groups unmanaged create producer-instance-group \
    --zone=us-west1-b

Configura los componentes del balanceador de cargas

En esta sección, crearás los componentes de un balanceador de cargas de red de transferencia interno, incluidos un servicio de backend y una regla de reenvío.

Console

Inicia tu configuración

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

    Ir a Balanceo de cargas

  2. Haz clic en Crear balanceador de cargas.
  3. En Tipo de balanceador de cargas, selecciona Balanceador de cargas de red (TCP/UDP/SSL) y haz clic en Siguiente.
  4. En Proxy o de transferencia, selecciona Balanceador de cargas de transferencia y haz clic en Siguiente.
  5. En Orientado al público o interno, selecciona Interno y haz clic en Siguiente.
  6. Haz clic en Configurar.

Configuración básica

En la página Crear un balanceador de cargas de red de transferencia interna, ingresa la siguiente información:

  • Nombre del balanceador de cargas: producer-ilb
  • Región: us-west1
  • Red: producer-network

Configura los backends

  1. Haz clic en Configuración de backend.
  2. En Protocolo, selecciona UDP.
  3. En la lista Verificación de estado, selecciona Crear una verificación de estado, ingresa la siguiente información y haz clic en Crear.
    • Nombre: producer-health-check.
    • Permiso: Regional
    • Puerto: 80
    • Protocolo de proxy: NONE
  4. En la sección Backend nuevo de Backends, selecciona el Tipo de pila de IP como IPv4 (pila única).
  5. En Grupo de instancias, selecciona el grupo de instancias producer-instance-group y haz clic en Listo.
  6. Verifica que haya una marca de verificación azul junto a Configuración de backend antes de continuar.

Configura el frontend

En la sección IP y puerto de frontend nuevos, haz lo siguiente:

  1. En Nombre, ingresa producer-ilb-fr.
  2. En Subred, selecciona producer-subnet.
  3. En Puertos, selecciona Único y, luego, en Número de puerto, ingresa 6081.
  4. Verifica que haya una marca de verificación azul junto a Configuración de frontend antes de continuar.

Revisa la configuración

  1. Haz clic en Revisar y finalizar.
  2. Revisa la configuración del balanceador de cargas.
  3. Haz clic en Crear.

gcloud

  1. Creación de una verificación de estado regional.

    gcloud compute health-checks create tcp producer-health-check \
        --region=us-west1 \
        --port=80
    
  2. Crea el servicio de backend.

    gcloud compute backend-services create producer-backend-service \
        --protocol=UDP \
        --region=us-west1 \
        --health-checks=producer-health-check \
        --health-checks-region=us-west1 \
        --load-balancing-scheme=INTERNAL
    
  3. Crea una regla de reenvío para el servicio de backend.

    gcloud compute forwarding-rules create producer-ilb-fr \
        --backend-service=producer-backend-service \
        --region=us-west1 \
        --network=producer-network \
        --subnet=producer-subnet \
        --ip-protocol=UDP \
        --load-balancing-scheme=INTERNAL \
        --ports=6081
    

Crea una instancia de VM y agrégala al grupo de instancias

En esta sección, crearás una instancia de VM con una secuencia de comandos de inicio que configura un servidor de eco para los paquetes encapsulados de GENEVE.

Antes de crear la instancia de VM, obtén la dirección IP de la regla de reenvío y la puerta de enlace de la subred del balanceador de cargas de red de transferencia interno. Necesitas las direcciones IP para la secuencia de comandos de inicio.

Console

Obtén la dirección IP del balanceador de cargas de red de transferencia interno

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

    Ir a Balanceo de cargas

  2. Haz clic en el balanceador de cargas producer-ilb.

  3. En la sección Frontend, anota la dirección IP de la regla de reenvío de la columna IP:ports.

Obtén la dirección IP de la puerta de enlace de la subred

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

    Ir a las redes de VPC

  2. Haz clic en la red de VPC producer-network.

  3. Haz clic en la pestaña Subredes.

  4. En la sección Subredes, anota la dirección IP de la puerta de enlace de la columna Puerta de enlace.

Crea la instancia de VM

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

    Ir a Instancias de VM

    1. Haz clic en Crear instancia.
    2. En Nombre, ingresa producer-instance.
    3. En Región, selecciona us-west1.
    4. En Zona, selecciona us-west1-b.
    5. Haz clic en Herramientas de redes y configura los siguientes campos:

      En la sección Interfaces de red, haz clic en default y edita la interfaz de red.

      • Red: producer-network
      • Subred: producer-subnet
      • Dirección IPv4 externa: ninguna
    6. Haz clic en Avanzado y, luego, ingresa la siguiente secuencia de comandos en Secuencia de comandos de inicio:

      #!/bin/bash
      # Enable IP forwarding.
      echo 1 > /proc/sys/net/ipv4/ip_forward
      
      # Log incoming packets from the gateway IP and the GENEVE 6081
      # port.
      iptables -t nat -A PREROUTING -p udp -s GATEWAY_IP/32 --dport 6081 -j LOG --log-prefix="[NSI INTERCEPT] "
      
      # Apply DNAT (Destination NAT) on incoming packets from the gateway IP
      # and the GENEVE 6081 port.
      # Set the destination IP to the gateway IP so the packet is rerouted
      # back to the sender.
      iptables -t nat -A PREROUTING -p udp -s GATEWAY_IP/32 --dport 6081 -j DNAT --to-destination GATEWAY_IP
      
      # Apply SNAT (Source NAT) on outgoing packets that have the GENEVE 6081
      # port and source IP that equals the gateway IP.
      # Set the source IP to the internal load balancer IP which
      # effectively swaps the IPs of the original packet.
      iptables -t nat -A POSTROUTING -p udp -s GATEWAY_IP/32 --dport 6081 -j SNAT --to-source LOAD_BALANCER_IP
      
      # Spin up a simple server for health checks on port 80.
      nohup python3 -u -m http.server 80 &
      

      Reemplaza lo siguiente:

      • GATEWAY_IP: Es la dirección IP de la puerta de enlace de la subred.
      • LOAD_BALANCER_IP: Es la dirección IP de la regla de reenvío del balanceador de cargas.
    7. Haz clic en Crear.

Agrega la instancia de VM al grupo de instancias

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

    Ir a Grupos de instancias

  2. Haz clic en producer-instance-group.

  3. Haz clic en Editar.

  4. En la sección Instancias de VM, en la lista Seleccionar VMs, selecciona la VM producer-instance.

  5. Haz clic en Guardar.

gcloud

  1. Obtén la dirección IP de la regla de reenvío del balanceador de cargas.

    ILB_IP=$(gcloud compute forwarding-rules describe producer-ilb-fr \
        --region=us-west1 \
        --format="get(IPAddress)")
    
  2. Obtén la dirección IP de la puerta de enlace de la subred.

    GW_IP=$(gcloud compute networks subnets describe producer-subnet \
        --region=us-west1 \
        --format="get(gatewayAddress)")
    
  3. Cree una instancia de VM:

    gcloud compute instances create producer-instance \
        --image-project=debian-cloud \
        --image-family=debian-11 \
        --machine-type=e2-micro \
        --zone=us-west1-b \
        --network-interface="subnet=producer-subnet,no-address" \
        --metadata=startup-script='#!/bin/bash
        # Enable IP forwarding.
        echo 1 > /proc/sys/net/ipv4/ip_forward
    
        # Log incoming packets from the gateway IP and the GENEVE 6081 port.
        iptables -t nat -A PREROUTING -p udp -s '"$GW_IP"'/32 --dport 6081 -j LOG --log-prefix="[NSI INTERCEPT] "
    
        # Apply DNAT (Destination NAT) on incoming packets from the gateway
        # IP and the GENEVE 6081 port.
        # Set the destination IP to the gateway IP so the packet is rerouted
        # back to the sender.
        iptables -t nat -A PREROUTING -p udp -s '"$GW_IP"'/32 --dport 6081 -j DNAT --to-destination '"$GW_IP"'
    
        # Apply SNAT (Source NAT) on outgoing packets that have the GENEVE
        # 6081 port and source IP that equals the gateway IP.
        # Set the source IP to the internal load balancer IP which
        # effectively swaps the IPs of the original packet.
        iptables -t nat -A POSTROUTING -p udp -s '"$GW_IP"'/32 --dport 6081 -j SNAT --to-source '"$ILB_IP"'
    
        # Spin up a simple server for health checks on port 80.
        nohup python3 -u -m http.server 80 &'
    
  4. Agrega la instancia de VM al grupo de instancias.

    gcloud compute instance-groups unmanaged add-instances producer-instance-group \
        --instances=producer-instance \
        --zone=us-west1-b
    
  5. Agrega el grupo de instancias al servicio de backend.

    gcloud compute backend-services add-backend producer-backend-service \
        --region=us-west1 \
        --instance-group=producer-instance-group \
        --instance-group-zone=us-west1-b
    

Crea una política de firewall y agrega reglas de firewall

En esta sección, crearás una política de firewall y agregarás reglas de firewall para permitir conexiones UDP, Google Cloud verificaciones de estado y conexiones SSH a la instancia de VM del productor a través de Identity-Aware Proxy (IAP).

Console

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

    Ir a Políticas de firewall

  2. Haz clic en Crear política de firewall.

  3. En el campo Nombre, ingresa producer-firewall-policy.

  4. En Permiso de la implementación, selecciona Global y haz clic en Continuar.

  5. Crea las siguientes reglas para tu política.

    Permite la conexión UDP con el puerto GENEVE desde la dirección IP de la puerta de enlace de la VPC

    1. Haz clic en Crear regla de firewall y configura los siguientes campos:
      • Prioridad: 100
      • Dirección del tráfico: Entrada
      • Acción en caso de coincidencia: Permitir
      • Filtros de origen > Rangos de IP: GATEWAY_IP
      • Protocolos y puertos: Selecciona Protocolos y puertos especificados, elige la casilla de verificación UDP y especifica 6081 en Puertos.
    2. Haz clic en Crear.

    Reemplaza GATEWAY_IP por la dirección IP de la puerta de enlace de la subred.

    Permitir Google Cloud verificaciones de estado

    1. Haz clic en Crear regla de firewall y configura los siguientes campos:
      • Prioridad: 101
      • Dirección del tráfico: Entrada
      • Acción en caso de coincidencia: Permitir
      • Rangos de IP: 35.191.0.0/16 y 130.211.0.0/22
      • Protocolos y puertos: Selecciona Protocolos y puertos especificados, elige la casilla de verificación TCP y especifica 80 en Puertos.
    2. Haz clic en Crear.

    Permite la conexión SSH a la instancia de VM del productor a través de Identity-Aware Proxy

    1. Haz clic en Crear regla de firewall y configura los siguientes campos:
      • Prioridad: 102
      • Dirección del tráfico: Entrada
      • Acción en caso de coincidencia: Permitir
      • Rangos de IP: 35.235.240.0/20
      • Protocolos y puertos: Selecciona Protocolos y puertos especificados, elige la casilla de verificación TCP y especifica 22 en Puertos.
    2. Haz clic en Crear.
  6. Para asociar la política a una red, haz clic en Continuar y, luego, en Asociar.

  7. Selecciona la casilla de verificación producer-network.

  8. Haz clic en Continuar.

  9. Haz clic en Crear.

gcloud

  1. Crea una política de firewall de red global.

    gcloud compute network-firewall-policies create producer-firewall-policy \
        --global
    
  2. Asocia la política de firewall con la red de productor.

    gcloud compute network-firewall-policies associations create \
        --name=producer-firewall-policy-assoc \
        --firewall-policy=producer-firewall-policy \
        --global-firewall-policy \
        --network=producer-network
    
  3. Crea una regla de firewall para permitir la conexión UDP con el puerto GENEVE desde la dirección IP de la puerta de enlace de la VPC.

    gcloud compute network-firewall-policies rules create 100 \
        --firewall-policy=producer-firewall-policy \
        --global-firewall-policy \
        --action=allow \
        --direction=INGRESS \
        --layer4-configs=udp:6081 \
        --src-ip-ranges=$GW_IP/32
    
  4. Crea una regla de firewall para permitir las verificaciones de estado de Google Cloud .

    gcloud compute network-firewall-policies rules create 101 \
        --firewall-policy=producer-firewall-policy \
        --global-firewall-policy \
        --action=allow \
        --direction=INGRESS \
        --layer4-configs=tcp:80 \
        --src-ip-ranges=35.191.0.0/16,130.211.0.0/22
    
  5. Crea una regla de firewall para permitir la conexión SSH a la instancia de VM del productor a través de Identity-Aware Proxy.

    gcloud compute network-firewall-policies rules create 102 \
        --firewall-policy=producer-firewall-policy \
        --global-firewall-policy \
        --action=allow \
        --direction=INGRESS \
        --layer4-configs=tcp:22 \
        --src-ip-ranges=35.235.240.0/20
    

Crea recursos de intercepción de productor

En esta sección, crearás un grupo de implementación de intercepción y una implementación de intercepción.

Console

  1. En la consola de Google Cloud , ve a la página Grupos de implementación.

    Ir a Deployment implementación

  2. Haz clic en Crear grupo de implementación.

  3. En Nombre, ingresa producer-deployment-group.

  4. En Red, selecciona producer-network.

  5. En Propósito, selecciona NSI in-band.

  6. En la sección Intercept deployments, haz clic en Create intercept deployment, especifica los siguientes campos y haz clic en Create:

    • Nombre: producer-deployment.
    • Región: us-west1.
    • Zona: us-west1-b.
    • Balanceador de cargas interno: producer-ilb.
  7. Haz clic en Crear.

gcloud

  1. Crea un grupo de implementación de intercepción.

    gcloud network-security intercept-deployment-groups create producer-deployment-group \
        --location=global \
        --network=projects/PROJECT_ID/global/networks/producer-network \
        --no-async
    

    Reemplaza PROJECT_ID por el ID de tu proyecto.

  2. Crea una implementación de intercepción.

    gcloud network-security intercept-deployments create producer-deployment \
        --location=us-west1-b \
        --forwarding-rule=producer-ilb-fr \
        --forwarding-rule-location=us-west1 \
        --intercept-deployment-group=projects/PROJECT_ID/locations/global/interceptDeploymentGroups/producer-deployment-group \
        --no-async
    

    Reemplaza PROJECT_ID por el ID de tu proyecto.

Crea recursos para el consumidor

En esta sección, crearás los siguientes recursos para el consumidor:

  • Una red de VPC personalizada con una subred
  • Una VM de servidor y una de cliente
  • Una política de firewall y una regla para interceptar el tráfico
  • Un grupo de extremos de intercepción y una asociación del grupo de extremos de intercepción
  • Un perfil de seguridad y un grupo de perfiles de seguridad

Crea una red de VPC personalizada

En esta sección, crearás una red de VPC con una subred.

Console

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

    Ir a Redes de VPC

  2. Haz clic en Crear red de VPC.

  3. En Nombre, ingresa consumer-network.

  4. En Descripción, ingresa Consumer VPC network.

  5. En la sección Subredes, haz lo siguiente:

    1. Establece Modo de creación de subred en Personalizado.
    2. En la sección Nueva subred, ingresa la siguiente información:
      • Nombre: consumer-subnet
      • Región: us-west1
      • Tipo de pila IP: IPv4 (pila única)
      • Rango IPv4: 10.10.0.0/16
    3. Haz clic en Listo.
  6. Haz clic en Crear.

gcloud

  1. Crea una red de VPC de consumidor.

    gcloud compute networks create consumer-network \
        --subnet-mode=custom \
        --description="Consumer VPC network"
    
  2. En la red de VPC, crea una subred.

    gcloud compute networks subnets create consumer-subnet \
        --network=consumer-network \
        --region=us-west1 \
        --range=10.10.0.0/16
    

Crea VMs de cliente y servidor

En esta sección, crearás una VM del servidor y una del cliente.

Console

Crear una VM de servidor

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

    Ir a Instancias de VM

  2. Haz clic en Crear instancia.

  3. Establece el Nombre como consumer-server-vm.

  4. Establece la Región en us-west1.

  5. Establece la Zona en us-west1-b.

  6. Establece el tipo de máquina en e2-micro.

  7. Haz clic en Herramientas de redes y configura los siguientes campos:

  8. En la sección Interfaces de red, haz clic en default y edita la interfaz de red:

    • Red: consumer-network
    • Subred: consumer-subnet
    • Dirección IPv4 externa: ninguna
  9. Haz clic en Avanzado y, luego, ingresa la siguiente secuencia de comandos en Secuencia de comandos de inicio:

    echo success > /tmp/connection_test && nohup python3 -u -m http.server --directory /tmp 8000
    
  10. Haz clic en Crear.

Crear una VM de cliente

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

    Ir a Instancias de VM

  2. Haz clic en Crear instancia.

  3. Establece el Nombre como consumer-client-vm.

  4. Establece la Región en us-west1.

  5. Establece la Zona en us-west1-b.

  6. Establece el tipo de máquina en e2-micro.

  7. Haz clic en Herramientas de redes y configura los siguientes campos:

  8. En la sección Interfaces de red, haz clic en default y edita la interfaz de red:

    • Red: consumer-network
    • Subred: consumer-subnet
    • Dirección IPv4 externa: ninguna
  9. Haz clic en Crear.

gcloud

  1. Crear la VM del servidor

    gcloud compute instances create consumer-server-vm \
        --image-project=debian-cloud \
        --image-family=debian-11 \
        --machine-type=e2-micro \
        --zone=us-west1-b \
        --network-interface="subnet=consumer-subnet,no-address" \
        --metadata=startup-script="echo success > /tmp/connection_test && nohup python3 -u -m http.server --directory /tmp 8000"
    
  2. Crear la VM del cliente

    gcloud compute instances create consumer-client-vm \
        --image-project=debian-cloud \
        --image-family=debian-11 \
        --machine-type=e2-micro \
        --zone=us-west1-b \
        --network-interface="subnet=consumer-subnet,no-address"
    

Crea una política de firewall para permitir el acceso SSH

En esta sección, crearás una política de firewall y agregarás una regla de firewall para permitir el acceso de SSH a las VMs del consumidor.

Console

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

    Ir a Políticas de firewall

  2. Haz clic en Crear política de firewall.

  3. En el campo Nombre, ingresa consumer-firewall-policy.

  4. En Permiso de la implementación, selecciona Global y haz clic en Continuar.

  5. Haz clic en Crear regla de firewall, configura los siguientes campos y haz clic en Crear:

    • Prioridad: 100
    • Dirección del tráfico: Entrada
    • Acción en caso de coincidencia: Permitir
    • Filtros de origen > Rangos de IP: 35.235.240.0/20
    • Protocolos y puertos: Selecciona Protocolos y puertos especificados, elige la casilla de verificación TCP y especifica 22 en Puertos.

    El rango IPv4 35.235.240.0/20 contiene todas las direcciones IP que Identity-Aware Proxy usa para el reenvío de TCP. Para obtener más información, consulta Prepara tu proyecto para el reenvío de TCP.

  6. Para asociar la política a una red, haz clic en Continuar y, luego, en Asociar.

  7. Selecciona la casilla de verificación consumer-network.

  8. Haz clic en Continuar.

  9. Haz clic en Crear.

gcloud

  1. Crea una política de firewall de red global.

    gcloud compute network-firewall-policies create consumer-firewall-policy \
        --global
    
  2. Asocia la política de firewall con la red de consumidor.

    gcloud compute network-firewall-policies associations create \
        --name=consumer-firewall-policy-assoc \
        --firewall-policy=consumer-firewall-policy \
        --global-firewall-policy \
        --network=consumer-network
    
  3. Crea una regla de permiso de SSH para permitir la conexión SSH a la instancia de VM del cliente a través de Identity-Aware Proxy.

    gcloud compute network-firewall-policies rules create 101 \
        --firewall-policy=consumer-firewall-policy \
        --global-firewall-policy \
        --action=allow \
        --direction=INGRESS \
        --layer4-configs=tcp:22 \
        --src-ip-ranges=35.235.240.0/20
    

    El rango de IPv4 35.235.240.0/20 contiene todas las direcciones IP que Identity-Aware Proxy (IAP) usa para el reenvío de TCP. Para obtener más información, consulta Prepara tu proyecto para el reenvío de TCP.

Crea un grupo de extremos del consumidor

En esta sección, crearás un grupo de extremos de intercepción y una asociación del grupo de extremos de intercepción.

Console

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

    Ir a Grupos de extremos

  2. Haz clic en Crear grupo de extremos.

  3. En Nombre, ingresa consumer-endpoint-group.

  4. En Grupo de implementación, en el menú Seleccionar proyecto, selecciona Seleccionar proyecto actual.

  5. En Intercept deployment group, selecciona producer-deployment-group.

  6. Haz clic en Continuar.

  7. Haz clic en Agregar asociación del grupo de extremos.

  8. En Proyecto, selecciona tu proyecto actual.

  9. En Red, selecciona consumer-network.

  10. Haz clic en Crear.

gcloud

  1. Crea el grupo de extremos de intercepción.

    gcloud network-security intercept-endpoint-groups create consumer-endpoint-group \
        --location=global \
        --intercept-deployment-group=projects/PROJECT_ID/locations/global/interceptDeploymentGroups/producer-deployment-group \
        --no-async
    

    Reemplaza PROJECT_ID por el ID de tu proyecto.

  2. Crea la asociación del grupo de extremos de interceptación.

    gcloud network-security intercept-endpoint-group-associations create consumer-endpoint-group-association \
        --location=global \
        --intercept-endpoint-group=projects/PROJECT_ID/locations/global/interceptEndpointGroups/consumer-endpoint-group \
        --network=consumer-network \
        --no-async
    

    Reemplaza PROJECT_ID por el ID de tu proyecto.

Crea un perfil de seguridad y un grupo de perfiles de seguridad

Crea un grupo de perfiles de seguridad y un perfil de seguridad personalizado para interceptar el tráfico.

Console

Crear un perfil de seguridad

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

    Ir a Perfiles de seguridad

  2. En el selector de organización, selecciona tu organización.

  3. En la pestaña Perfiles de seguridad, haz clic en Crear perfil.

  4. En Nombre, ingresa consumer-security-profile.

  5. En Propósito del perfil de seguridad, selecciona NSI en banda.

  6. En Proyecto, selecciona tu proyecto actual.

  7. En Intercept endpoint group, selecciona consumer-endpoint-group.

  8. Haz clic en Crear.

Crear un grupo de perfil de seguridad

  1. En la consola de Google Cloud , ve a la página Grupos de perfiles de seguridad.

    Ir a Grupos de perfiles de seguridad

  2. En el selector de organización, selecciona tu organización.

  3. En la pestaña Grupos de perfiles de seguridad, haz clic en Crear grupo de perfiles.

  4. En Nombre, ingresa consumer-security-profile-group.

  5. En Propósito del grupo de perfiles de seguridad, selecciona NSI in-band.

  6. En Perfil de intercepción personalizado, selecciona consumer-security-profile.

  7. Haz clic en Crear.

gcloud

  1. Crea un perfil de seguridad de intercepción.

    gcloud network-security security-profiles custom-intercept create consumer-security-profile \
        --location=global \
        --organization=ORG_ID \
        --intercept-endpoint-group=projects/PROJECT_ID/locations/global/interceptEndpointGroups/consumer-endpoint-group \
        --no-async
    

    Reemplaza lo siguiente:

    • ORG_ID: el ID de tu organización. Los perfiles de seguridad son recursos a nivel de la organización. Para crearlos, necesitas el rol de administrador de perfiles de seguridad (networksecurity.securityProfileAdmin) a nivel de la organización.
    • PROJECT_ID: el ID de tu proyecto.
  2. Crea un grupo de perfiles de seguridad de interceptación.

    gcloud network-security security-profile-groups create consumer-security-profile-group \
        --location=global \
        --organization=ORG_ID \
        --custom-intercept-profile=consumer-security-profile \
        --billing-project=PROJECT_ID \
        --no-async
    

    Reemplaza lo siguiente:

    • ORG_ID: el ID de tu organización. Los grupos de perfiles de seguridad son recursos a nivel de la organización. Para crearlos, necesitas el rol de administrador de perfiles de seguridad (networksecurity.securityProfileAdmin) a nivel de la organización.
    • PROJECT_ID: el ID de tu proyecto.

Crea una política de firewall para interceptar el tráfico

En esta sección, crearás una política de firewall y una regla de firewall para interceptar el tráfico.

Console

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

    Ir a Políticas de firewall

  2. Haz clic en consumer-firewall-policy.

  3. Haz clic en Crear regla de firewall y configura los siguientes campos:

    • Prioridad: 100
    • Dirección del tráfico: Entrada
    • Acción en caso de coincidencia: Continuar a la inspección de L7
    • Propósito: NSI in-band
    • Grupo de perfiles de seguridad: consumer-security-profile-group
    • Rangos de IP: 10.10.0.0/16
    • Protocolos y puertos: Selecciona Protocolos y puertos especificados, elige la casilla de verificación TCP y especifica 8000 en Puertos.
  4. Haz clic en Crear.

gcloud

  1. Agrega una regla de firewall para interceptar el tráfico en el puerto TCP 8000 en la VM del servidor.

    gcloud compute network-firewall-policies rules create 100 \
        --firewall-policy=consumer-firewall-policy \
        --global-firewall-policy \
        --action=apply_security_profile_group \
        --security-profile-group=organizations/ORG_ID/locations/global/securityProfileGroups/consumer-security-profile-group \
        --direction=INGRESS \
        --layer4-configs=tcp:8000 \
        --src-ip-ranges=10.10.0.0/16
    

    Reemplaza ORG_ID por el ID de tu organización.

Prueba la conexión

En esta sección, enviarás tráfico de red desde la instancia de VM del cliente consumidor a la instancia de VM del servidor consumidor y, luego, verificarás los registros de la instancia de VM del productor para verificar la intercepción.

  1. Ejecuta el siguiente comando para conectarte a la instancia de VM del cliente consumidor a través de SSH y enviar una solicitud a la instancia de VM del servidor consumidor.

    gcloud compute ssh consumer-client-vm \
        --tunnel-through-iap \
        --zone=us-west1-b \
        --command="curl -m 3 -s http://consumer-server-vm:8000/connection_test || echo fail"
    

    Verás el mensaje success cuando ejecutes el comando anterior. Indica que el tráfico se envía del cliente al servidor.

  2. Ejecuta el siguiente comando para verificar los registros de la instancia de VM de productor.

    gcloud compute ssh producer-instance \
        --tunnel-through-iap \
        --zone=us-west1-b \
        --command="cat /var/log/syslog | grep 'NSI INTERCEPT'"
    

    Verás un mensaje similar a [NSI INTERCEPT] IN=ens4 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx SRC=10.10.0.1 DST=10.10.0.2 LEN=136 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=45554 DPT=6081 LEN=116. Indica que la instancia de VM del productor intercepta el tráfico cliente-servidor.

Realiza una limpieza

Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos usados en este instructivo, borra el proyecto que contiene los recursos o conserva el proyecto y borra los recursos individuales.

Borra los recursos de consumidor

  1. Desasocia la política de firewall de la red de consumidor y borra la política de firewall.

    Console

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

      Ir a Políticas de firewall

    2. Haz clic en la política consumer-firewall-policy.

    3. Haz clic en la pestaña Asociaciones.

    4. Selecciona la casilla de verificación de la asociación consumer-network.

    5. Haz clic en Quitar asociación.

    6. Haz clic en Quitar.

    7. En la parte superior de la página, haz clic en Borrar.

    8. Haga clic en Borrar nuevamente para confirmar.

    gcloud

    1. Quita la asociación.

      gcloud compute network-firewall-policies associations delete \
          --name=consumer-firewall-policy-assoc \
          --firewall-policy=consumer-firewall-policy \
          --global-firewall-policy
      
    2. Borra la política de firewall.

      gcloud compute network-firewall-policies delete consumer-firewall-policy \
          --global
      
  2. Borra el grupo de perfiles de seguridad.

    Console

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

      Ir a Perfiles de seguridad

    2. En el selector de organización, selecciona tu organización.

    3. En la pestaña Grupos de perfiles de seguridad, selecciona el grupo de perfiles de seguridad consumer-security-profile-group y, luego, haz clic en Borrar.

    4. Haga clic en Borrar nuevamente para confirmar.

    gcloud

    gcloud network-security security-profile-groups delete consumer-security-profile-group \
        --location=global \
        --organization=ORG_ID \
        --billing-project=PROJECT_ID \
        --quiet
    

    Reemplaza lo siguiente:

    • ORG_ID: el ID de tu organización
    • PROJECT_ID: Es el ID del proyecto.
  3. Borra el perfil de seguridad.

    Console

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

      Ir a Perfiles de seguridad

    2. En el selector de organización, selecciona tu organización.

    3. En la pestaña Perfiles de seguridad, selecciona el perfil de seguridad consumer-security-profile y, luego, haz clic en Borrar.

    4. Haga clic en Borrar nuevamente para confirmar.

    gcloud

    gcloud network-security security-profiles custom-intercept delete consumer-security-profile \
        --location=global \
        --organization=ORG_ID \
        --billing-project=PROJECT_ID \
        --quiet
    

    Reemplaza lo siguiente:

    • ORG_ID: el ID de tu organización
    • PROJECT_ID: Es el ID del proyecto.
  4. Borra la asociación del grupo de extremos de intercepción.

    Console

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

      Ir a Grupos de extremos

    2. Haz clic en consumer-endpoint-group.

    3. Selecciona la asociación consumer-network y haz clic en Borrar.

    4. Haga clic en Borrar nuevamente para confirmar.

    gcloud

    gcloud network-security intercept-endpoint-group-associations delete consumer-endpoint-group-association \
        --location=global \
        --no-async
    
  5. Borra el grupo de extremos de intercepción.

    Console

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

      Ir a Grupos de extremos

    2. Selecciona consumer-endpoint-group y haz clic en Borrar.

    3. Haga clic en Borrar nuevamente para confirmar.

    gcloud

    gcloud network-security intercept-endpoint-groups delete consumer-endpoint-group \
        --location=global \
        --no-async
    
  6. Borra las VMs de cliente y servidor.

    Console

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

      Ir a Instancias de VM

    2. Selecciona las casillas de verificación de consumer-client-vm y consumer-server-vm, y haz clic en Borrar.

    3. Haga clic en Borrar nuevamente para confirmar.

    gcloud

    1. Borra la VM del cliente.

      gcloud compute instances delete consumer-client-vm \
          --zone=us-west1-b \
          --quiet
      
    2. Borra la VM del servidor.

      gcloud compute instances delete consumer-server-vm \
          --zone=us-west1-b \
          --quiet
      
  7. Borra la red y la subred de consumidor.

    Console

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

      Ir a las redes de VPC

    2. Haz clic en consumer-network.

    3. En la pestaña Subredes, selecciona la casilla de verificación de consumer-subnet y haz clic en Borrar.

    4. Haga clic en Borrar nuevamente para confirmar.

    5. Haz clic en Borrar la red de VPC.

    6. En el campo de texto, ingresa consumer-network y haz clic en Borrar.

    gcloud

    1. Borra la subred.

      gcloud compute networks subnets delete consumer-subnet \
          --region=us-west1 \
          --quiet
      
    2. Borra la red de VPC.

      gcloud compute networks delete consumer-network \
          --quiet
      

Borra los recursos del productor

  1. Desasocia la política de firewall de la red de productor y borra la política de firewall.

    Console

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

      Ir a Políticas de firewall

    2. Haz clic en la política producer-firewall-policy.

    3. Haz clic en la pestaña Asociaciones.

    4. Selecciona la casilla de verificación de la asociación producer-network.

    5. Haz clic en Quitar asociación.

    6. Haz clic en Quitar.

    7. En la parte superior de la página, haz clic en Borrar.

    8. Haga clic en Borrar nuevamente para confirmar.

    gcloud

    1. Quita la asociación.

      gcloud compute network-firewall-policies associations delete \
          --name=producer-firewall-policy-assoc \
          --firewall-policy=producer-firewall-policy \
          --global-firewall-policy
      
    2. Borra la política de firewall.

      gcloud compute network-firewall-policies delete producer-firewall-policy \
          --global
      
  2. Borra la implementación de intercepción y el grupo de implementación de intercepción.

    Console

    1. En la consola de Google Cloud , ve a la página Grupos de implementación.

      Ir a Deployment implementación

    2. Haz clic en producer-deployment-group.

    3. Borrar producer-deployment.

      1. Selecciona la casilla de verificación producer-deployment y haz clic en Borrar.
      2. Haga clic en Borrar nuevamente para confirmar.
    4. Haz clic en el botón Borrar en la parte superior de la página.

    5. Haga clic en Borrar nuevamente para confirmar.

    gcloud

    1. Borra la implementación de la interceptación.

      gcloud network-security intercept-deployments delete producer-deployment \
          --location=us-west1-b \
          --no-async
      
    2. Borra el grupo de implementación de intercepción.

      gcloud network-security intercept-deployment-groups delete producer-deployment-group \
          --location=global \
          --no-async
      
  3. Borra los recursos del balanceador de cargas.

    Console

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

      Ir a Balanceo de cargas

    2. Selecciona la casilla de verificación producer-ilb.

    3. Haz clic en el botón Borrar en la parte superior de la página.

    4. Selecciona la casilla de verificación producer-health-check y haz clic en Borrar el balanceador de cargas y los recursos seleccionados.

    gcloud

    1. Borra la regla de reenvío.

      gcloud compute forwarding-rules delete producer-ilb-fr \
          --region=us-west1 \
          --quiet
      
    2. Quita el servicio de backend.

      gcloud compute backend-services delete producer-backend-service \
          --region=us-west1 \
          --quiet
      
    3. Borra la verificación de estado.

      gcloud compute health-checks delete producer-health-check \
          --region=us-west1 \
          --quiet
      
  4. Borra la instancia de VM del productor.

    Console

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

      Ir a Instancias de VM

    2. Selecciona la casilla de verificación de producer-instance y haz clic en Borrar.

    3. Haga clic en Borrar nuevamente para confirmar.

    gcloud

    gcloud compute instances delete producer-instance \
        --zone=us-west1-b \
        --quiet
    
  5. Borra el grupo de instancias.

    Console

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

      Ir a Grupos de instancias

    2. Selecciona la casilla de verificación producer-instance-group.

    3. Haz clic en Borrar.

    4. En la ventana de confirmación, haz clic en Borrar.

    gcloud

    gcloud compute instance-groups unmanaged delete producer-instance-group \
        --zone=us-west1-b \
        --quiet
    
  6. Borra la red y la subred del productor.

    Console

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

      Ir a las redes de VPC

    2. Haz clic en producer-network.

    3. En la pestaña Subredes, selecciona la casilla de verificación de producer-subnet y haz clic en Borrar.

    4. Haga clic en Borrar nuevamente para confirmar.

    5. Haz clic en Borrar la red de VPC.

    6. En el campo de texto, ingresa producer-network y haz clic en Borrar.

    gcloud

    1. Borra la subred.

      gcloud compute networks subnets delete producer-subnet \
          --region=us-west1 \
          --quiet
      
    2. Borra la red.

      gcloud compute networks delete producer-network \
          --quiet
      

¿Qué sigue?