Como usar o espelhamento de pacotes

Use o espelhamento de pacotes para espelhar o tráfego de e para determinadas instâncias de VM. É possível usar o tráfego coletado para ajudar a detectar ameaças à segurança e monitorar o desempenho do aplicativo. Para ver detalhes sobre o espelhamento de pacotes, consulte a Visão geral do espelhamento de pacotes.

As seções a seguir descrevem como criar e gerenciar políticas de espelhamento de pacotes.

Antes de começar

Antes de criar uma política de espelhamento de pacotes, é necessário ter as permissões apropriadas. Também é necessário criar um balanceador de carga interno, que é o destino do coletor, na mesma região das instâncias a serem espelhadas.

Permissões

Para criar e gerenciar políticas de espelhamento de pacotes, o Google Cloud oferece dois papéis relacionados ao espelhamento de pacotes:

  • O compute.packetMirroringUser concede aos usuários permissão para criar, atualizar e excluir políticas de espelhamento de pacotes. Para usarem o espelhamento de pacotes, é necessário que os usuários tenham esse papel nos projetos em que criam políticas de espelhamento de pacotes.

  • O compute.packetMirroringAdmin concede aos usuários permissão para espelhar recursos específicos. Mesmo que os usuários tenham permissão para criar uma política de espelhamento de pacotes, eles ainda precisam de permissão para espelhar origens relacionadas. Use esse papel em projetos em que o proprietário de uma política pode não ter outras permissões, como em situações de VPC compartilhada, por exemplo.

Para mais informações sobre o uso de papéis do IAM, consulte Como atribuir, alterar e revogar o acesso a recursos na documentação do IAM.

Balanceador de carga interno

É necessário ter um balanceador de carga TCP/UDP interno configurado para espelhamento de pacotes e localizado na mesma região das instâncias espelhadas. Todo o tráfego de origens espelhadas é enviado às instâncias do coletor que estão por trás do balanceador de carga.

Para configurar o balanceador de carga interno para o espelhamento de pacotes, é necessário configurar a regra de encaminhamento como um coletor de espelhamento de pacotes. O tráfego não espelhado enviado ao balanceador de carga é descartado. Além disso, se uma política de espelhamento de pacotes puder ser aplicada às instâncias do coletor, elas serão ignoradas pelo espelhamento de pacotes, que não espelhará o tráfego delas.

Recomendamos o uso de um modelo de instância e um grupo de instâncias gerenciadas para as instâncias do coletor. Um grupo de instâncias gerenciadas fornece recursos de recuperação e escalonamento automáticos para atender às demandas de tráfego e aos requisitos de disponibilidade. Se usado, não se baseie em discos de inicialização como dados permanentes. Para reter seus dados, faça o backup em outro local central.

Para detalhes sobre grupos de instâncias e balanceadores de carga internos, consulte as documentações: como criar um modelo de instância , como criar um grupo de instâncias gerenciadas e como configurar componentes do balanceador de carga.

Regras de firewall

É necessário permitir que o tráfego espelhado vá das instâncias de origem para as instâncias de destino que fazem parte do balanceador de carga interno. É possível que já existam regras que permitem esse tráfego.

  • Verifique se as instâncias espelhadas têm uma regra de saída que permite que elas enviem tráfego para a regra de encaminhamento do balanceador de carga interno.
  • Verifique se as instâncias do coletor no grupo de instâncias do balanceador de carga têm uma regra de entrada que permite que elas recebam tráfego de instâncias espelhadas ou do intervalo de endereços IP de instâncias espelhadas. Por exemplo, é possível especificar um intervalo de origem 0.0.0.0/0 para coletar todo o tráfego de entrada de instâncias espelhadas. Para impedir que o tráfego da Internet atinja as instâncias do coletor, atribua a elas apenas endereços IP internos.

Se você não tiver regras que permitam esse tráfego, consulte Como usar regras de firewall para criá-las.

Como criar uma política de espelhamento de pacotes

Crie uma política de espelhamento de pacotes para começar a espelhar o tráfego de e para instâncias específicas.

Console

  1. Acesse a página do espelhamento de pacotes no Console do Google Cloud.
    Acessar a página do espelhamento de pacotes
  2. Clique em Criar política.
  3. Insira as seguintes informações sobre a política e clique em Continuar.

    1. Digite um nome para a política.
    2. Selecione a região que inclui as origens espelhadas e o destino do coletor. É necessário que a política de espelhamento de pacotes esteja na mesma região que a origem e o destino.
    3. Ignore o campo Prioridade. Ele não pode ser ajustado no momento.
    4. Selecione Ativado para ativar a política ao criá-la.
  4. Selecione as redes VPC em que a origem espelhada e o destino do coletor estão localizados e clique em Continuar.

    A origem e o destino podem estar na mesma rede VPC ou em redes VPC diferentes. Se estiverem na mesma rede VPC, selecione Origens espelhadas e destino estão na mesma rede VPC e, em seguida, selecione a rede. Se estiverem em redes diferentes, selecione A origem espelhada e o destino do coletor estão em redes VPC separadas com peering e, em seguida, selecione a rede de origem espelhada e a rede de destino do coletor.

  5. Selecione as origens espelhadas e clique em Continuar. É possível selecionar uma ou mais origens. O Google Cloud espelha qualquer instância que corresponda a pelo menos uma das origens selecionadas.

    • Sub-redes: selecione uma ou mais sub-redes. O Google Cloud espelha instâncias atuais e futuras em sub-redes selecionadas.
    • Tag de rede: especifique uma ou mais tags de rede. O Google Cloud espelha as instâncias que têm ao menos uma tag especificada.
    • Nome da instância: selecione instâncias específicas para espelhar.
  6. Selecione um balanceador de carga interno que tenha sido configurado para o espelhamento de pacotes e clique em Continuar. O Google Cloud envia tráfego espelhado para instâncias que estão por trás do balanceador de carga interno.

    Para a VPC compartilhada, se o destino do coletor e as origens espelhadas estiverem na mesma rede VPC compartilhada, selecione o projeto em que o destino do coletor está localizado e, em seguida, um balanceador de carga.

  7. Se quiser limitar o tráfego espelhado, selecione Tráfego filtrado por espelho. Por padrão, o Google Cloud espelha todo o tráfego.

    É possível optar por espelhar o tráfego com base em intervalos de endereços IP, protocolos ou ambos.

  8. Clique em Enviar para criar a política de espelhamento de pacotes.

gcloud

Crie uma política de espelhamento de pacotes e especifique uma ou mais origens para espelhar. O Google Cloud espelha qualquer instância que corresponda a pelo menos uma das origens especificadas.

gcloud compute packet-mirrorings create POLICY_NAME \
  --region=REGION \
  --network=NETWORK_NAME \
  --collector-ilb=FORWARDING_RULE_NAME \
  [--mirrored-subnets=SUBNET,[SUBNET,...]] \
  [--mirrored-tags=TAG,[TAG,...]] \
  [--mirrored-instances=INSTANCE,[INSTANCE,...]] \
  [--filter-cidr-ranges=ADDRESS_RANGE,[ADDRESS_RANGE,...]] \
  [--filter-protocols=PROTOCOL,[PROTOCOL,...]]

Substitua os marcadores por valores válidos:

  • POLICY_NAME é um nome para a política de espelhamento de pacotes.
  • REGION é a região em que as origens espelhadas e o destino do coletor estão localizados.
  • NETWORK_NAME é a rede em que as fontes espelhadas estão localizadas.
  • FORWARDING_RULE_NAME é o nome de uma regra de encaminhamento configurada como um coletor de espelhamento. O Google Cloud envia todo o tráfego espelhado ao balanceador de carga interno associado.
  • SUBNET é o nome de uma sub-rede a ser espelhada. O Google Cloud espelha instâncias atuais e futuras na sub-rede.
  • TAG é uma tag de rede. O Google Cloud espelha as instâncias que têm a tag de rede.
  • INSTANCE é o ID totalmente qualificado de uma instância a ser espelhada.
  • ADDRESS_RANGE é um intervalo de endereços IP (intervalo CIDR) a ser espelhado.
  • PROTOCOL é um protocolo de endereço IP a ser espelhado (TCP, UDP ou ICMP).

Para mais informações e descrições de cada sinalização, consulte a documentação de referência do SDK.

API

Crie uma política de espelhamento de pacotes e especifique uma ou mais origens para espelhar. O Google Cloud espelha qualquer instância que corresponda a pelo menos uma das origens especificadas.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/packetMirrorings
{
  "name": "POLICY_NAME",
  "network": {
    "url": "NETWORK_URL"
  },
  "priority": PRIORITY,
  "mirroredResources": {
    "subnetworks": [
      {
        "url": "SUBNET_URL"
      }
    ],
    "tags": [
      "TAG"
    ],
    "instances": [
      {
        "url": "INSTANCE"
      }
    ]
  },
  "collectorIlb": {
    "url": "FORWARDING_RULE_URL"
  },
  "filter": {
    "IPProtocols": [
      "PROTOCOL"
    ],
    "cidrRanges": [
      "ADDRESS_RANGE"
    ]
  }
}

Substitua os marcadores por valores válidos:

  • PROJECT_ID é o ID do projeto em que a política é criada.
  • POLICY_NAME é um nome para a política de espelhamento de pacotes.
  • REGION é a região em que as origens espelhadas e o destino do coletor estão localizados.
  • NETWORK_URL é o URL da rede em que as fontes espelhadas estão localizadas.
  • FORWARDING_RULE_URL é o URL de uma regra de encaminhamento configurada como um coletor de espelhamento. O Google Cloud envia todo o tráfego espelhado ao balanceador de carga interno associado.
  • SUBNET_URL é o URL de uma sub-rede a ser espelhada. O Google Cloud espelha instâncias atuais e futuras na sub-rede.
  • TAG é uma tag de rede. O Google Cloud espelha as instâncias que têm a tag de rede.
  • INSTANCE é o ID totalmente qualificado de uma instância a ser espelhada.
  • ADDRESS_RANGE é um intervalo de endereços IP (intervalo CIDR) a ser espelhado.
  • PROTOCOL é um protocolo de endereço IP a ser espelhado (TCP, UDP ou ICMP).

Para mais informações e descrições de cada campo, consulte o método packetmirrorings.insert.

Para verificar se a política de espelhamento de pacote está em vigor, consulte Como monitorar as políticas de espelhamento de pacote.

Como modificar uma política de espelhamento de pacotes

Atualize uma política existente para alterar as origens espelhadas ou o destino do coletor.

Console

  1. Acesse a página do espelhamento de pacotes no Console do Google Cloud.
    Acessar a página do espelhamento de pacotes
  2. Na lista de políticas de espelhamento de pacotes, clique na que você quer editar.
  3. Na página de detalhes da política, clique em Editar.
  4. Edite os campos que você quer atualizar. O console segue o mesmo fluxo de quando você cria uma política. Para ver informações sobre cada campo, consulte Como criar uma política de espelhamento de pacotes

gcloud

Atualize uma política de espelhamento de pacotes existente.

gcloud compute packet-mirrorings update POLICY_NAME \
  --region=REGION \
  [--collector-ilb=FORWARDING_RULE_NAME] \
  [--mirrored-subnets=SUBNET,[SUBNET,...]] \
  [--mirrored-tags=TAG,[TAG,...]] \
  [--mirrored-instances=INSTANCE,[INSTANCE,...]] \
  [--filter-cidr-ranges=ADDRESS_RANGE,[ADDRESS_RANGE,...]] \
  [--filter-protocols=PROTOCOL,[PROTOCOL,...]]

Substitua os marcadores por valores válidos:

  • POLICY_NAME é o nome da política de espelhamento de pacotes a ser modificada.
  • REGION é a região em que a política está localizada.
  • FORWARDING_RULE_NAME é o nome de uma regra de encaminhamento configurada como um coletor. O Google Cloud envia todo o tráfego espelhado ao balanceador de carga interno associado.
  • SUBNET é o nome de uma sub-rede a ser espelhada. O Google Cloud espelha instâncias atuais e futuras na sub-rede.
  • TAG é uma tag de rede. O Google Cloud espelha as instâncias que têm a tag de rede.
  • INSTANCE é o ID totalmente qualificado de uma instância a ser espelhada.
  • ADDRESS_RANGE é um intervalo de endereços IP (intervalo CIDR) a ser espelhado.
  • PROTOCOL é um protocolo de endereço IP a ser espelhado (TCP, UDP ou ICMP).

Para mais informações e descrições de cada sinalização, consulte a documentação de referência do SDK.

API

Atualize uma política de espelhamento de pacotes existente.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/packetMirrorings/POLICY_NAME
{
  "priority": PRIORITY,
  "mirroredResources": {
    "subnetworks": [
      {
        "url": "SUBNET_URL"
      }
    ],
    "tags": [
      "TAG"
    ],
    "instances": [
      {
        "url": "INSTANCE"
      }
    ]
  },
  "collectorIlb": {
    "url": "FORWARDING_RULE_URL"
  },
  "filter": {
    "IPProtocols": [
      "PROTOCOL"
    ],
    "cidrRanges": [
      "ADDRESS_RANGE"
    ]
  }
}

Substitua os marcadores por valores válidos:

  • PROJECT_ID é o ID do projeto em que a política está localizada.
  • POLICY_NAME é o nome da política de espelhamento de pacotes a ser modificada.
  • REGION é a região em que a política está localizada.
  • FORWARDING_RULE_URL é o URL de uma regra de encaminhamento configurada como um coletor de espelhamento. O Google Cloud envia todo o tráfego espelhado ao balanceador de carga interno associado.
  • SUBNET_URL é o URL de uma sub-rede a ser espelhada. O Google Cloud espelha instâncias atuais e futuras na sub-rede.
  • TAG é uma tag de rede. O Google Cloud espelha as instâncias que têm a tag de rede.
  • INSTANCE é o ID totalmente qualificado de uma instância a ser espelhada.
  • ADDRESS_RANGE é um intervalo de endereços IP (intervalo CIDR) a ser espelhado.
  • PROTOCOL é um protocolo de endereço IP a ser espelhado (TCP, UDP ou ICMP).

Para mais informações e descrições de cada campo, consulte o método packetmirrorings.patch.

Como listar políticas de espelhamento de pacotes

Liste as políticas de espelhamento de pacotes para visualizar as políticas existentes.

Console

  1. Acesse a página do espelhamento de pacotes no Console do Google Cloud.
    Acessar a página do espelhamento de pacotes

    O Console do Cloud lista todas as políticas no seu projeto.

gcloud

Liste as políticas de espelhamento de pacotes atuais no seu projeto ou para uma região específica.

gcloud compute packet-mirrorings list \
  [--filter="region:(REGION...)"]

Substitua REGION pelo nome da região que contém as políticas a serem listadas.

Para mais informações e descrições de cada sinalização, consulte a documentação de referência do SDK.

API

Liste as políticas de espelhamento de pacote existentes no seu projeto.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/packetMirrorings

Liste as políticas de espelhamento de pacotes existentes para uma região específica.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/packetMirrorings

Substitua os marcadores por valores válidos:

  • PROJECT_ID é o ID do projeto que contém as políticas a serem listadas.
  • REGION é a região que contém as políticas a serem listadas.

Para mais informações e descrições de cada campo, consulte os métodos packetmirrorings.aggregatedList ou packetmirrorings.list.

Como descrever uma política de espelhamento de pacotes

Veja detalhes de uma política de espelhamento de pacotes existente para obter, por exemplo, os filtros dela.

Console

  1. Acesse a página do espelhamento de pacotes no Console do Google Cloud.
    Acessar a página do espelhamento de pacotes
  2. Na lista de políticas de espelhamento de pacotes, selecione aquela que você quer visualizar.

    O Console do Cloud mostra os detalhes da política que você selecionou.

gcloud

Descreva uma política de espelhamento de pacotes existente para visualizar os detalhes.

gcloud compute packet-mirrorings describe POLICY_NAME \
  --region=REGION \

Substitua os marcadores por valores válidos:

  • POLICY_NAME é o nome da política de espelhamento de pacotes a ser descrita.
  • REGION é a região em que a política está localizada.

Para mais informações e descrições de cada sinalização, consulte a documentação de referência do SDK.

API

Descreva uma política de espelhamento de pacotes existente para visualizar os detalhes.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/packetMirrorings/POLICY_NAME

Substitua os marcadores por valores válidos:

  • PROJECT_ID é o ID do projeto em que a política está localizada.
  • POLICY_NAME é o nome da política de espelhamento de pacotes a ser descrita.
  • REGION é a região em que a política está localizada.

Para mais informações e descrições de cada campo, consulte o método packetmirrorings.get.

Como desativar ou ativar uma política de espelhamento de pacotes

Desative ou ative uma política de espelhamento de pacotes para interromper ou iniciar a coleta de tráfego espelhado.

Console

  1. Acesse a página do espelhamento de pacotes no Console do Google Cloud.
    Acessar a página do espelhamento de pacotes
  2. Na lista de políticas de espelhamento de pacotes, selecione a que quer desativar ou ativar.
  3. Clique em Desativar ou Ativar.
  4. Confirme clicando em Desativar ou Ativar

gcloud

Desative uma política de espelhamento de pacotes existente.

gcloud compute packet-mirrorings update POLICY_NAME \
  --region=REGION \
  --no-enable

Ative uma política de espelhamento de pacotes existente.

gcloud compute packet-mirrorings update POLICY_NAME \
  --region=REGION \
  --enable

Substitua os marcadores por valores válidos:

  • POLICY_NAME é o nome da política de espelhamento de pacotes a ser desativada ou ativada.
  • REGION é a região em que a política está localizada.

Para mais informações e descrições de cada sinalização, consulte a documentação de referência do SDK.

API

Desative ou ative uma política de espelhamento de pacote existente.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/packetMirrorings/POLICY_NAME
{
  "enable": "FALSE|TRUE"
}

Substitua os marcadores por valores válidos:

  • PROJECT_ID é o ID do projeto em que a política está localizada.
  • POLICY_NAME é o nome da política de espelhamento de pacotes a ser desativada.
  • REGION é a região em que a política está localizada.

Para mais informações e descrições de cada campo, consulte o método packetmirrorings.patch.

Como excluir uma política de espelhamento de pacotes

Exclua uma política de espelhamento de pacotes para removê-la do seu projeto. Depois que você exclui uma política, o Google Cloud para de espelhar todo o tráfego relacionado ela.

Console

  1. Acesse a página do espelhamento de pacotes no Console do Google Cloud.
    Acessar a página do espelhamento de pacotes
  2. Na lista de políticas de espelhamento de pacotes, selecione aquela que você quer desativar.
  3. Clique em Excluir.
  4. Confirme clicando em Excluir.

gcloud

Exclua uma política de espelhamento de pacote existente.

gcloud compute packet-mirrorings delete POLICY_NAME \
  --region=REGION \

Substitua os marcadores por valores válidos:

  • POLICY_NAME é o nome da política de espelhamento de pacotes a ser excluída.
  • REGION é a região em que a política está localizada.

Para mais informações e descrições de cada sinalização, consulte a documentação de referência do SDK.

API

Exclua uma política de espelhamento de pacote existente.

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/packetMirrorings/POLICY_NAME

Substitua os marcadores por valores válidos:

  • PROJECT_ID é o ID do projeto em que a política está localizada.
  • POLICY_NAME é o nome da política de espelhamento de pacotes a ser excluída.
  • REGION é a região em que a política está localizada.

Para mais informações e descrições de cada campo, consulte o método packetmirrorings.delete.

Como solucionar problemas

Se a política de espelhamento de pacotes não estiver coletando o tráfego espelhado pretendido, verifique as seguintes configurações:

  • Verifique se há regras de firewall que permitem o tráfego de instâncias espelhadas para as instâncias do coletor.

  • Verifique se as origens espelhadas incluem ou excluem as instâncias a serem espelhadas. Por exemplo, se você especificar uma sub-rede como uma origem espelhada, todas as instâncias existentes e futuras na sub-rede serão espelhadas. Se você especificar tags, apenas as instâncias que tiverem tags correspondentes serão espelhadas.

  • Verifique se os filtros de espelhamento de pacote não são muito abrangentes ou muito restritos. Você pode ter configurado, involuntariamente, filtros para incluir ou excluir determinado tráfego.