Configurar a integração no mesmo canal para um modelo produtor-consumidor

A Integração de Segurança de Rede usa o modelo produtor-consumidor para inspecionar e monitorar dados. Ele usa a integração na banda com a tecnologia de interceptação de pacotes para inserir dispositivos de rede de terceiros no fluxo de tráfego de rede e realizar uma inspeção profunda de pacotes.

Neste tutorial, descrevemos como criar e configurar recursos de produtor e consumidor para configurar a integração em banda.

Objetivos

Neste tutorial, mostramos como concluir as seguintes tarefas em um projeto:

  • Crie redes VPC personalizadas com sub-redes para o produtor e o consumidor no mesmo projeto.
  • Para o produtor, crie e configure recursos, como um balanceador de carga de rede de passagem interna, um serviço de interceptação e recursos de implantação de interceptação.
  • Para o consumidor, crie e configure instâncias de máquina virtual (VM) de cliente e servidor, recursos de endpoint do consumidor e políticas de firewall para interceptar o tráfego cliente-servidor.
  • Teste a conexão e verifique se os pacotes de tráfego de rede são interceptados pelos recursos de endpoint do consumidor e inspecionados pelos recursos de interceptação do produtor.

Antes de começar

  1. Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  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. Ative a API Compute Engine no projeto.
  7. Ative a API Network Security no projeto Google Cloud que você quer usar para faturamento.
  8. Verifique se você tem o papel de Administrador de rede do Compute (roles/compute.networkAdmin) concedido no nível do projeto e o papel de Administrador de perfil de segurança (roles/networksecurity.securityProfileAdmin) concedido no nível da organização.
  9. Se você preferir trabalhar na linha de comando, instale a Google Cloud CLI. Para informações conceituais e de instalação sobre a ferramenta, consulte visão geral da CLI gcloud.

    Observação:se você ainda não executou a Google Cloud CLI, primeiro execute gcloud init para inicializar o diretório gcloud.

  10. Consiga o ID do projeto. Ele é necessário para criar recursos de interceptação e endpoint.

    Se você estiver usando a CLI gcloud, substitua o PROJECT_ID aqui ou mais tarde nos respectivos comandos.

  11. Consiga o ID da sua organização. Você precisa dele para criar recursos no nível da organização, como perfis e grupos de perfis de segurança.

    Se você estiver usando a CLI gcloud, substitua o ORG_ID aqui ou mais tarde nos respectivos comandos.

Criar recursos do produtor

Nesta seção, você vai criar os seguintes recursos para o produtor:

  • Uma rede VPC personalizada com uma sub-rede.
  • Um grupo de instâncias não gerenciadas com uma instância de VM executando um servidor de eco de encapsulamento de virtualização de rede genérica (GENEVE).
  • Um balanceador de carga de rede de passagem interna com um serviço de back-end e uma regra de encaminhamento.
  • Uma regra de firewall para permitir verificações de integridade Google Cloud .
  • Um grupo de implantação de interceptação e uma implantação de interceptação.

Criar uma rede VPC personalizada

Nesta seção, você cria uma rede VPC com uma sub-rede.

Console

  1. No console do Google Cloud , acesse a página Redes VPC.

    Acessar redes VPC

  2. Clique em Criar rede VPC.

  3. Em Nome, insira producer-network.

  4. Em Descrição, insira Producer VPC network.

  5. Na seção Sub-rede, faça o seguinte:

    1. Em Modo de criação da sub-rede, escolha Custom.
    2. Na seção Nova sub-rede, insira as informações a seguir:
      • Name: producer-subnet
      • Região: us-west1
      • Tipo de pilha de IP: IPv4 (pilha única)
      • Intervalo IPv4: 10.10.0.0/16
    3. Clique em Concluído.
  6. Clique em Criar.

  7. Abra a Google Cloud CLI e execute o comando a seguir para aumentar a unidade máxima de transmissão (MTU) da rede VPC.

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

    No comando, você especifica a MTU de 1.768 bytes, que é a soma da MTU padrão de uma rede VPC (1.460 bytes) e do overhead de encapsulamento GENEVE da integração de segurança de rede (308 bytes).

gcloud

  1. Criar uma rede VPC.

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

    No comando, você especifica a unidade máxima de transmissão (MTU) de 1.768 bytes, que é a soma da MTU padrão de uma rede VPC (1.460 bytes) e da sobrecarga de encapsulamento GENEVE da integração de segurança de rede (308 bytes).

  2. Na rede VPC, crie uma sub-rede.

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

Criar um grupo de instâncias não gerenciadas

Nesta seção, você vai criar um grupo de instâncias não gerenciadas.

Console

  1. No console, do Google Cloud , acesse a página Grupos de instâncias.

    Acesse grupo de instâncias

  2. Clique em Criar grupo de instâncias.

  3. Clique em Novo grupo de instâncias não gerenciadas.

  4. Em Nome, insira producer-instance-group.

  5. Na seção Local, selecione us-west1 para Região e us-west1-b para Zona.

  6. Em Rede, selecione producer-network.

  7. Em Sub-rede, selecione producer-subnet.

  8. Clique em Criar.

gcloud

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

Configurar componentes do balanceador de carga

Nesta seção, você cria os componentes de um balanceador de carga de rede de passagem interno, incluindo um serviço de back-end e uma regra de encaminhamento.

Console

Iniciar a configuração

  1. No console do Google Cloud , acesse a página Balanceamento de carga.

    Acessar o "Balanceamento de carga"

  2. Clique em Criar balanceador de carga.
  3. Em Tipo de balanceador de carga, selecione Balanceador de carga de rede (TCP/UDP/SSL) e clique em Próxima.
  4. Em Proxy ou passagem, selecione Balanceador de carga de passagem e clique em Próxima.
  5. Em Voltado ao público ou interno, selecione Interno e clique em Próxima.
  6. Clique em Configurar.

Configuração básica

Na página Criar balanceador de carga de rede de passagem interna, digite as seguintes informações:

  • Nome do balanceador de carga: producer-ilb
  • Região: us-west1
  • Rede: producer-network

Configurar os back-ends

  1. Clique em Configuração de back-end.
  2. Em Protocolo, selecione UDP.
  3. Na lista Verificação de integridade, selecione Criar verificação de integridade, insira as informações a seguir e clique em Criar.
    • Nome: producer-health-check
    • Escopo: regional
    • Porta: 80
    • Protocolo de proxy:NONE
  4. Na seção Novo back-end de Back-ends, selecione o Tipo de pilha de IP como IPv4 (pilha única).
  5. Em Grupo de instâncias, selecione o grupo de instâncias producer-instance-group e clique em Concluído.
  6. Verifique se há uma marca de seleção azul ao lado de Configuração do back-end antes de continuar.

Configurar o front-end

Na seção Novo IP e nova porta de front-end, faça o seguinte:

  1. Em Nome, insira producer-ilb-fr.
  2. Em Sub-rede, selecione producer-subnet.
  3. Em Portas, selecione Individual e, em Número da porta, insira 6081.
  4. Verifique se há uma marca de seleção azul ao lado de Configuração do front-end antes de continuar.

Analise a configuração

  1. Clique em Analisar e finalizar.
  2. Revise suas configurações do balanceador de carga.
  3. Clique em Criar.

gcloud

  1. Criar uma verificação de integridade regional

    gcloud compute health-checks create tcp producer-health-check \
        --region=us-west1 \
        --port=80
    
  2. Crie o serviço de back-end:

    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. Crie uma regra de encaminhamento do serviço de back-end.

    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
    

Criar uma instância de VM e adicioná-la ao grupo de instâncias

Nesta seção, você vai criar uma instância de VM com um script de inicialização que configura um servidor de eco para pacotes encapsulados do GENEVE.

Antes de criar a instância de VM, extraia o endereço IP da regra de encaminhamento e do gateway da sub-rede do balanceador de carga de rede de passagem interno. Você precisa dos endereços IP para o script de inicialização.

Console

Receber o endereço IP do balanceador de carga de rede de passagem interna

  1. No console do Google Cloud , acesse a página Balanceamento de carga.

    Acessar o "Balanceamento de carga"

  2. Clique no balanceador de carga producer-ilb.

  3. Na seção Front-end, anote o endereço IP da regra de encaminhamento na coluna IP:portas.

Receber o endereço IP do gateway da sub-rede

  1. No console do Google Cloud , acesse a página Redes VPC.

    Acessar redes VPC

  2. Clique na rede VPC producer-network.

  3. Clique na guia Sub-redes.

  4. Na seção Sub-redes, anote o endereço IP do gateway na coluna Gateway.

Criar a instância de VM

  1. No console do Google Cloud , acesse a página Instâncias de VM.

    Acessar Instâncias de VM

    1. Clique em Criar instância.
    2. Em Nome, insira producer-instance.
    3. Em Região, selecione us-west1.
    4. Em Zona, selecione us-west1-b.
    5. Clique em Rede e configure os seguintes campos:

      Na seção Interfaces de rede, clique em default e edite a interface de rede.

      • Rede: producer-network
      • Sub-rede: producer-subnet
      • Endereço IPv4 externo: nenhum
    6. Clique em Avançado e insira o script a seguir em Script de inicialização:

      #!/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 &
      

      Substitua:

      • GATEWAY_IP: o endereço IP do gateway da sub-rede.
      • LOAD_BALANCER_IP: o endereço IP da regra de encaminhamento do balanceador de carga.
    7. Clique em Criar.

Adicionar a instância de VM ao grupo de instâncias

  1. No console, do Google Cloud , acesse a página Grupos de instâncias.

    Acesse grupo de instâncias

  2. Clique em producer-instance-group.

  3. Clique em Editar.

  4. Na seção Instâncias de VM, na lista Selecionar VMs, escolha a VM producer-instance.

  5. Clique em Salvar.

gcloud

  1. Consiga o endereço IP da regra de encaminhamento do balanceador de carga.

    ILB_IP=$(gcloud compute forwarding-rules describe producer-ilb-fr \
        --region=us-west1 \
        --format="get(IPAddress)")
    
  2. Consiga o endereço IP do gateway da sub-rede.

    GW_IP=$(gcloud compute networks subnets describe producer-subnet \
        --region=us-west1 \
        --format="get(gatewayAddress)")
    
  3. Crie uma instância 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. Adicione a instância de VM ao grupo de instâncias.

    gcloud compute instance-groups unmanaged add-instances producer-instance-group \
        --instances=producer-instance \
        --zone=us-west1-b
    
  5. Adicione o grupo de instâncias principal ao serviço de back-end.

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

Criar uma política de firewall e adicionar regras de firewall

Nesta seção, você vai criar uma política de firewall e adicionar regras para permitir conexões UDP, verificações de integridade Google Cloud e conexões SSH à instância de VM do produtor pelo Identity-Aware Proxy (IAP).

Console

  1. No console do Google Cloud , acesse a página Políticas de firewall.

    Acesse as políticas de firewall

  2. Clique em Criar política de firewall.

  3. No campo Nome, use producer-firewall-policy.

  4. Em Escopo da implantação, selecione Global e clique em Continuar.

  5. Crie as seguintes regras para sua política.

    Permitir conexão UDP com a porta GENEVE do endereço IP do gateway da VPC

    1. Clique em Criar regra de firewall e configure os seguintes campos:
      • Prioridade: 100
      • Direção do tráfego: entrada
      • Ação na correspondência: permitir
      • Filtros de origem > Intervalos de IP: GATEWAY_IP
      • Protocolo e portas: selecione Protocolo e portas especificados, marque a caixa de seleção UDP e especifique 6081 em Portas.
    2. Clique em Criar.

    Substitua GATEWAY_IP pelo endereço IP do gateway da sub-rede.

    Permitir verificações de integridade do Google Cloud

    1. Clique em Criar regra de firewall e configure os seguintes campos:
      • Prioridade: 101
      • Direção do tráfego: entrada
      • Ação na correspondência: permitir
      • Intervalos de IP: 35.191.0.0/16 e 130.211.0.0/22
      • Protocolo e portas: selecione Protocolo e portas especificados, marque a caixa de seleção TCP e especifique 80 em Portas.
    2. Clique em Criar.

    Permitir a conexão SSH com a instância de VM do produtor pelo Identity-Aware Proxy

    1. Clique em Criar regra de firewall e configure os seguintes campos:
      • Prioridade: 102
      • Direção do tráfego: entrada
      • Ação na correspondência: permitir
      • Intervalos de IP: 35.235.240.0/20
      • Protocolo e portas: selecione Protocolo e portas especificados, marque a caixa de seleção TCP e especifique 22 em Portas.
    2. Clique em Criar.
  6. Para associar a política a uma rede, clique em Continuar e em Associar.

  7. Marque a caixa de seleção producer-network.

  8. Clique em Continuar.

  9. Clique em Criar.

gcloud

  1. Crie uma política de firewall de rede global.

    gcloud compute network-firewall-policies create producer-firewall-policy \
        --global
    
  2. Associe a política de firewall à rede do produtor.

    gcloud compute network-firewall-policies associations create \
        --name=producer-firewall-policy-assoc \
        --firewall-policy=producer-firewall-policy \
        --global-firewall-policy \
        --network=producer-network
    
  3. Crie uma regra de firewall para permitir a conexão UDP com a porta GENEVE do endereço IP do gateway da 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. Crie uma regra de firewall para permitir verificações de integridade 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. Crie uma regra de firewall para permitir a conexão SSH com a instância de VM do produtor pelo 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
    

Criar recursos de interceptação do produtor

Nesta seção, você vai criar um grupo e uma implantação de interceptação.

Console

  1. No console do Google Cloud , acesse a página Grupos de implantação.

    Acessar grupos de implantação

  2. Clique em Criar grupo de implantação.

  3. Em Nome, insira producer-deployment-group.

  4. Em Rede, selecione producer-network.

  5. Em Finalidade, selecione NSI in-band.

  6. Na seção Interceptar implantações, clique em Criar implantação de interceptação, especifique os seguintes campos e clique em Criar:

    • Nome: producer-deployment.
    • Região: us-west1.
    • Zona: us-west1-b.
    • Balanceador de carga interno: producer-ilb.
  7. Clique em Criar.

gcloud

  1. Crie um grupo de implantação de interceptação.

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

    Substitua PROJECT_ID pelo ID do seu projeto.

  2. Crie uma implantação de interceptação.

    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
    

    Substitua PROJECT_ID pelo ID do seu projeto.

Criar recursos do consumidor

Nesta seção, você vai criar os seguintes recursos para o consumidor:

  • Uma rede VPC personalizada com uma sub-rede.
  • Um servidor e uma VM cliente.
  • Uma política de firewall e uma regra para interceptar o tráfego.
  • Um grupo de endpoints de interceptação e uma associação de grupo de endpoints de interceptação.
  • Um perfil de segurança e um grupo de perfis de segurança.

Criar uma rede VPC personalizada

Nesta seção, você cria uma rede VPC com uma sub-rede.

Console

  1. No console do Google Cloud , acesse a página Redes VPC.

    Acessar redes VPC

  2. Clique em Criar rede VPC.

  3. Em Nome, insira consumer-network.

  4. Em Descrição, insira Consumer VPC network.

  5. Na seção Sub-rede, faça o seguinte:

    1. Defina o Modo de criação de sub-rede como Personalizado.
    2. Na seção Nova sub-rede, insira as informações a seguir:
      • Name: consumer-subnet
      • Região: us-west1
      • Tipo de pilha de IP: IPv4 (pilha única)
      • Intervalo IPv4: 10.10.0.0/16
    3. Clique em Concluído.
  6. Clique em Criar.

gcloud

  1. Crie uma rede VPC do consumidor.

    gcloud compute networks create consumer-network \
        --subnet-mode=custom \
        --description="Consumer VPC network"
    
  2. Na rede VPC, crie uma sub-rede.

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

Criar VMs de servidor e cliente

Nesta seção, você vai criar uma VM de servidor e uma de cliente.

Console

Criar uma VM do servidor

  1. No console do Google Cloud , acesse a página Instâncias de VM.

    Acessar Instâncias de VM

  2. Clique em Criar instância.

  3. Defina o Nome como consumer-server-vm.

  4. Defina a região como us-west1.

  5. Defina Zona como us-west1-b.

  6. Defina o Tipo de máquina como e2-micro.

  7. Clique em Rede e configure os seguintes campos:

  8. Na seção Interfaces de rede, clique em default e edite a interface de rede:

    • Rede: consumer-network
    • Sub-rede: consumer-subnet
    • Endereço IPv4 externo: nenhum
  9. Clique em Avançado e insira o script a seguir em Script de inicialização:

    echo success > /tmp/connection_test && nohup python3 -u -m http.server --directory /tmp 8000
    
  10. Clique em Criar.

Criar uma VM cliente

  1. No console do Google Cloud , acesse a página Instâncias de VM.

    Acessar Instâncias de VM

  2. Clique em Criar instância.

  3. Defina o Nome como consumer-client-vm.

  4. Defina a região como us-west1.

  5. Defina Zona como us-west1-b.

  6. Defina o Tipo de máquina como e2-micro.

  7. Clique em Rede e configure os seguintes campos:

  8. Na seção Interfaces de rede, clique em default e edite a interface de rede:

    • Rede: consumer-network
    • Sub-rede: consumer-subnet
    • Endereço IPv4 externo: nenhum
  9. Clique em Criar.

gcloud

  1. Criar a VM do 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. Criar a VM do 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"
    

Criar uma política de firewall para permitir o acesso SSH

Nesta seção, você vai criar uma política de firewall e adicionar uma regra de firewall para permitir o acesso SSH às VMs do consumidor.

Console

  1. No console do Google Cloud , acesse a página Políticas de firewall.

    Acesse as políticas de firewall

  2. Clique em Criar política de firewall.

  3. No campo Nome, use consumer-firewall-policy.

  4. Em Escopo da implantação, selecione Global e clique em Continuar.

  5. Clique em Criar regra de firewall, configure os seguintes campos e clique em Criar:

    • Prioridade: 100
    • Direção do tráfego: entrada
    • Ação na correspondência: permitir
    • Filtros de origem > Intervalos de IP: 35.235.240.0/20
    • Protocolo e portas: selecione Protocolo e portas especificados, marque a caixa de seleção TCP e especifique 22 em Portas.

    O intervalo IPv4 35.235.240.0/20 contém todos os endereços IP que o Identity-Aware Proxy usa para encaminhamento de TCP. Para mais informações, consulte Como preparar seu projeto para encaminhamento TCP.

  6. Para associar a política a uma rede, clique em Continuar e em Associar.

  7. Marque a caixa de seleção consumer-network.

  8. Clique em Continuar.

  9. Clique em Criar.

gcloud

  1. Crie uma política de firewall de rede global.

    gcloud compute network-firewall-policies create consumer-firewall-policy \
        --global
    
  2. Associe a política de firewall à rede do 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. Crie uma regra de permissão de SSH para permitir a conexão SSH com a instância de VM do cliente pelo 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
    

    O intervalo IPv4 35.235.240.0/20 contém todos os endereços IP que o Identity-Aware Proxy (IAP) usa para encaminhamento de TCP. Para mais informações, consulte Como preparar seu projeto para encaminhamento de TCP.

Criar grupo de endpoints do consumidor

Nesta seção, você vai criar um grupo de endpoints de interceptação e uma associação de grupo de endpoints de interceptação.

Console

  1. No console do Google Cloud , acesse a página Grupos de endpoints.

    Acessar "Grupos de endpoints"

  2. Clique em Criar grupo de endpoints.

  3. Em Nome, insira consumer-endpoint-group.

  4. Em Grupo de implantação, no menu Selecionar projeto, escolha Selecionar projeto atual.

  5. Em Grupo de implantação de interceptação, selecione producer-deployment-group.

  6. Clique em Continuar.

  7. Clique em Adicionar associação de grupo de endpoints.

  8. Em Projeto, selecione o projeto atual.

  9. Em Rede, selecione consumer-network.

  10. Clique em Criar.

gcloud

  1. Crie o grupo de endpoints de interceptação.

    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
    

    Substitua PROJECT_ID pelo ID do seu projeto.

  2. Crie a associação do grupo de endpoints de interceptação.

    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
    

    Substitua PROJECT_ID pelo ID do seu projeto.

Criar um perfil de segurança e um grupo de perfis de segurança

Crie um grupo de perfis de segurança e um perfil de segurança personalizado para interceptar o tráfego.

Console

Criar um perfil de segurança

  1. No console do Google Cloud , acesse a página Perfis de segurança.

    Acessar Perfis de segurança

  2. No seletor de organização, selecione sua organização.

  3. Na guia Perfis de segurança, clique em Criar perfil.

  4. Em Nome, insira consumer-security-profile.

  5. Em Finalidade do perfil de segurança, selecione NSI em banda.

  6. Em Projeto, selecione o projeto atual.

  7. Em Grupo de endpoints de interceptação, selecione consumer-endpoint-group.

  8. Clique em Criar.

Criar um grupo de perfis de segurança

  1. No console do Google Cloud , acesse a página Grupos de perfis de segurança.

    Acessar Grupos de perfis de segurança

  2. No seletor de organização, selecione sua organização.

  3. Na guia Grupos de perfis de segurança, clique em Criar grupo de perfis.

  4. Em Nome, insira consumer-security-profile-group.

  5. Em Finalidade do grupo de perfis de segurança, selecione NSI in-band.

  6. Em Perfil de interceptação personalizado, selecione consumer-security-profile.

  7. Clique em Criar.

gcloud

  1. Crie um perfil de segurança de interceptação.

    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
    

    Substitua:

    • ORG_ID: o ID da organização. Os perfis de segurança são recursos no nível da organização. Para criar esses perfis, você precisa do papel de administrador de perfil de segurança (networksecurity.securityProfileAdmin) no nível da organização.
    • PROJECT_ID: ID do projeto.
  2. Crie um grupo de perfis de segurança de interceptação.

    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
    

    Substitua:

    • ORG_ID: o ID da organização. Os grupos de perfis de segurança são recursos no nível da organização. Para criar perfis de segurança, você precisa do papel Administrador de perfil de segurança (networksecurity.securityProfileAdmin) no nível da organização.
    • PROJECT_ID: ID do projeto.

Criar uma política de firewall para interceptar o tráfego

Nesta seção, você vai criar uma política de firewall e uma regra de firewall para interceptar o tráfego.

Console

  1. No console do Google Cloud , acesse a página Políticas de firewall.

    Acesse as políticas de firewall

  2. Clique em consumer-firewall-policy.

  3. Clique em Criar regra de firewall e configure os seguintes campos:

    • Prioridade: 100
    • Direção do tráfego: entrada
    • Ação se houver correspondência: Prosseguir para a inspeção L7
    • Finalidade: NSI in-band
    • Grupo de perfis de segurança: consumer-security-profile-group
    • Intervalos de IP: 10.10.0.0/16
    • Protocolo e portas: selecione Protocolo e portas especificados, marque a caixa de seleção TCP e especifique 8000 em Portas.
  4. Clique em Criar.

gcloud

  1. Adicione uma regra de firewall para interceptar o tráfego na porta TCP 8000 na VM do 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
    

    Substitua ORG_ID pelo ID da organização.

Testar a conexão

Nesta seção, você envia algum tráfego de rede da instância de VM do cliente consumidor para a instância de VM do servidor consumidor e verifica os registros da instância de VM do produtor para verificar a interceptação.

  1. Execute o seguinte comando para se conectar à instância de VM do cliente consumidor via SSH e envie uma solicitação à instância de VM do 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"
    

    A mensagem success aparece quando você executa o comando anterior. Indica que o tráfego é enviado do cliente para o servidor.

  2. Execute o comando a seguir para verificar os registros da instância de VM do produtor.

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

    Você vê uma mensagem semelhante 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. Isso indica que o tráfego cliente-servidor é interceptado pela instância de VM produtora.

Limpar

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados no tutorial, exclua o projeto que os contém ou mantenha o projeto e exclua os recursos individuais.

Excluir os recursos do consumidor

  1. Desassocie a política de firewall da rede do consumidor e exclua a política de firewall.

    Console

    1. No console do Google Cloud , acesse a página Políticas de firewall.

      Acesse as políticas de firewall

    2. Clique na política consumer-firewall-policy.

    3. Clique na guia Associações.

    4. Marque a caixa de seleção da associação consumer-network.

    5. Clique em Remover associação.

    6. Clique em Remover.

    7. No topo da página, clique em Excluir.

    8. Clique em Excluir novamente para confirmar.

    gcloud

    1. Remova a associação.

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

      gcloud compute network-firewall-policies delete consumer-firewall-policy \
          --global
      
  2. Exclua o grupo de perfis de segurança.

    Console

    1. No console do Google Cloud , acesse a página Perfis de segurança.

      Acessar Perfis de segurança

    2. No seletor de organização, selecione sua organização.

    3. Na guia Grupos de perfis de segurança, selecione o grupo de perfis de segurança consumer-security-profile-group e clique em Excluir.

    4. Clique em Excluir novamente para confirmar.

    gcloud

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

    Substitua:

    • ORG_ID: o ID da organização
    • PROJECT_ID: ID do projeto
  3. Exclua o perfil de segurança.

    Console

    1. No console do Google Cloud , acesse a página Perfis de segurança.

      Acessar Perfis de segurança

    2. No seletor de organização, selecione sua organização.

    3. Na guia Perfis de segurança, selecione o perfil de segurança consumer-security-profile e clique em Excluir.

    4. Clique em Excluir novamente para confirmar.

    gcloud

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

    Substitua:

    • ORG_ID: o ID da organização
    • PROJECT_ID: ID do projeto
  4. Exclua a associação do grupo de endpoints de interceptação.

    Console

    1. No console do Google Cloud , acesse a página Grupos de endpoints.

      Acessar "Grupos de endpoints"

    2. Clique em consumer-endpoint-group.

    3. Selecione a associação consumer-network e clique em Excluir.

    4. Clique em Excluir novamente para confirmar.

    gcloud

    gcloud network-security intercept-endpoint-group-associations delete consumer-endpoint-group-association \
        --location=global \
        --no-async
    
  5. Exclua o grupo de endpoints de interceptação.

    Console

    1. No console do Google Cloud , acesse a página Grupos de endpoints.

      Acessar "Grupos de endpoints"

    2. Selecione consumer-endpoint-group e clique em Excluir.

    3. Clique em Excluir novamente para confirmar.

    gcloud

    gcloud network-security intercept-endpoint-groups delete consumer-endpoint-group \
        --location=global \
        --no-async
    
  6. Exclua as VMs de servidor e cliente.

    Console

    1. No console do Google Cloud , acesse a página Instâncias de VM.

      Acessar instâncias de VM

    2. Marque as caixas de seleção de consumer-client-vm e consumer-server-vm e clique em Excluir.

    3. Clique em Excluir novamente para confirmar.

    gcloud

    1. Exclua a VM do cliente.

      gcloud compute instances delete consumer-client-vm \
          --zone=us-west1-b \
          --quiet
      
    2. Exclua a VM do servidor.

      gcloud compute instances delete consumer-server-vm \
          --zone=us-west1-b \
          --quiet
      
  7. Exclua a rede e a sub-rede do consumidor.

    Console

    1. No console do Google Cloud , acesse a página Redes VPC.

      Acessar redes VPC

    2. Clique em consumer-network.

    3. Na guia Sub-redes, marque a caixa de seleção de consumer-subnet e clique em Excluir.

    4. Clique em Excluir novamente para confirmar.

    5. Clique em Excluir rede VPC.

    6. No campo de texto, digite consumer-network e clique em Excluir.

    gcloud

    1. Exclua a sub-rede.

      gcloud compute networks subnets delete consumer-subnet \
          --region=us-west1 \
          --quiet
      
    2. Exclua a rede VPC.

      gcloud compute networks delete consumer-network \
          --quiet
      

Excluir os recursos do produtor

  1. Desassocie a política de firewall da rede do produtor e exclua a política de firewall.

    Console

    1. No console do Google Cloud , acesse a página Políticas de firewall.

      Acesse as políticas de firewall

    2. Clique na política producer-firewall-policy.

    3. Clique na guia Associações.

    4. Marque a caixa de seleção da associação producer-network.

    5. Clique em Remover associação.

    6. Clique em Remover.

    7. No topo da página, clique em Excluir.

    8. Clique em Excluir novamente para confirmar.

    gcloud

    1. Remova a associação.

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

      gcloud compute network-firewall-policies delete producer-firewall-policy \
          --global
      
  2. Exclua a implantação de interceptação e o grupo de implantação de interceptação.

    Console

    1. No console do Google Cloud , acesse a página Grupos de implantação.

      Acessar grupos de implantação

    2. Clique em producer-deployment-group.

    3. Excluir producer-deployment.

      1. Marque a caixa de seleção producer-deployment e clique em Excluir.
      2. Clique em Excluir novamente para confirmar.
    4. Clique no botão Excluir na parte superior da página.

    5. Clique em Excluir novamente para confirmar.

    gcloud

    1. Exclua a implantação de interceptação.

      gcloud network-security intercept-deployments delete producer-deployment \
          --location=us-west1-b \
          --no-async
      
    2. Exclua o grupo de implantação de interceptação.

      gcloud network-security intercept-deployment-groups delete producer-deployment-group \
          --location=global \
          --no-async
      
  3. Exclua os recursos do balanceador de carga.

    Console

    1. No console do Google Cloud , acesse a página Balanceamento de carga.

      Acessar o "Balanceamento de carga"

    2. Marque a caixa de seleção producer-ilb.

    3. Clique no botão Excluir na parte superior da página.

    4. Marque a caixa de seleção producer-health-check e clique em Excluir balanceador de carga e recursos selecionados.

    gcloud

    1. Exclua a regra de encaminhamento.

      gcloud compute forwarding-rules delete producer-ilb-fr \
          --region=us-west1 \
          --quiet
      
    2. Remova o serviço de back-end.

      gcloud compute backend-services delete producer-backend-service \
          --region=us-west1 \
          --quiet
      
    3. Exclua a verificação de integridade.

      gcloud compute health-checks delete producer-health-check \
          --region=us-west1 \
          --quiet
      
  4. Exclua a instância de VM do produtor.

    Console

    1. No console do Google Cloud , acesse a página Instâncias de VM.

      Acessar instâncias de VM

    2. Marque a caixa de seleção de producer-instance e clique em Excluir.

    3. Clique em Excluir novamente para confirmar.

    gcloud

    gcloud compute instances delete producer-instance \
        --zone=us-west1-b \
        --quiet
    
  5. Exclua o grupo de instâncias.

    Console

    1. No console, do Google Cloud , acesse a página Grupos de instâncias.

      Acesse grupo de instâncias

    2. Marque a caixa de seleção producer-instance-group.

    3. Clique em Excluir.

    4. Na janela de confirmação, clique em Excluir.

    gcloud

    gcloud compute instance-groups unmanaged delete producer-instance-group \
        --zone=us-west1-b \
        --quiet
    
  6. Exclua a rede e a sub-rede do produtor.

    Console

    1. No console do Google Cloud , acesse a página Redes VPC.

      Acessar redes VPC

    2. Clique em producer-network.

    3. Na guia Sub-redes, marque a caixa de seleção de producer-subnet e clique em Excluir.

    4. Clique em Excluir novamente para confirmar.

    5. Clique em Excluir rede VPC.

    6. No campo de texto, digite producer-network e clique em Excluir.

    gcloud

    1. Exclua a sub-rede.

      gcloud compute networks subnets delete producer-subnet \
          --region=us-west1 \
          --quiet
      
    2. Exclua a rede.

      gcloud compute networks delete producer-network \
          --quiet
      

A seguir