VPC Flow Logs - Amazon Virtual Private Cloud

VPC Flow Logs

O VPC Flow Logs é um recurso que possibilita que você capture informações sobre o tráfego de IP para e proveniente de interfaces de rede da VPC. Os dados do log de fluxo podem ser publicados no Amazon CloudWatch Logs ou no Amazon S3. Após criar um log de fluxo, você poderá recuperar e visualizar seus dados no destino selecionado.

Os logs de fluxo podem ajudar em diversas tarefas, como:

  • Diagnosticar regras de grupo de segurança excessivamente restritivas

  • Monitorar o tráfego que chega à sua instância

  • Determinar a direção de entrada e saída do tráfego das interfaces de rede

Os dados do log de fluxo são coletados fora do caminho do tráfego de rede e, portanto, não afetam a taxa de transferência nem a latência da rede. É possível criar ou excluir logs de fluxo sem qualquer risco de impacto no desempenho da rede.

Noções básicas de logs de fluxo

É possível criar um log de fluxo para VPC, sub-rede ou interface de rede. Se você criar um log de fluxo para uma sub-rede ou VPC, toda interface de rede na sub-rede ou VPC será monitorada.

Os dados de log de fluxo para uma interface de rede monitorada são registrados como registros de log de fluxo, que são eventos de log que consistem em campos que descrevem o fluxo de tráfego. Para obter mais informações, consulte Registros de log de fluxo.

Para criar um log de fluxo, especifique:

  • O recurso para o qual criar o log de fluxo

  • O tipo de tráfego a ser capturado (tráfego aceito, tráfego rejeitado ou todo o tráfego)

  • Os destinos em que você quer publicar os dados de log de fluxo

No exemplo a seguir, crie um log de fluxo (fl-aaa) que captura o tráfego aceito para a interface de rede da instância A1 e publica os registros de log de fluxo em um bucket do Amazon S3. Criar um segundo log de fluxo que captura todo o tráfego para a sub-rede B e publica os registros de log de fluxo em Amazon CloudWatch Logs. O log de fluxo (fl-bbb) captura o tráfego para todas as interfaces de rede na sub-rede B. Não há logs de fluxo que capturam o tráfego para a interface de rede da instância A2.


                Flow logs for a subnet and an instance (Logs de fluxo para uma sub-rede e uma instância)

Depois que você criar um log de fluxo, pode demorar alguns minutos para começar a coletar e publicar dados nos destinos selecionados. Os logs de fluxo não capturam streams de logs em tempo real para suas interfaces de rede. Para obter mais informações, consulte Criar um log de fluxo.

Se você executar mais instâncias em sua sub-rede depois de criar um log de fluxo para a sub-rede ou a VPC, um novo fluxo de logs (para o CloudWatch Logs) ou objeto de arquivo de log (para o Amazon S3) será criado para cada nova interface de rede. Isso ocorre assim que algum tráfego de rede é registrado para essa interface de rede.

Você pode criar logs de fluxo para interfaces de rede que são criadas por outros serviços da AWS, como:

  • Elastic Load Balancing

  • Amazon RDS

  • Amazon ElastiCache

  • Amazon Redshift

  • Amazon WorkSpaces

  • Gateways NAT

  • Gateways de trânsito

Independentemente do tipo de interface de rede, você deve usar o console do Amazon EC2 ou a API do Amazon EC2 para criar um log de fluxo para uma interface de rede.

É possível aplicar tags aos logs de fluxo. Cada tag consiste em uma chave e um valor opcional, ambos definidos por você. As tags podem ajudar você a organizar seus logs de fluxo. Por exemplo, por finalidade ou proprietário.

Caso não precise mais de um log de fluxo, você pode excluí-lo. A exclusão de um log de fluxo desabilita o serviço de log de fluxo para o recurso, e novos registros de log de fluxo não são criados nem publicados no CloudWatch Logs ou no Amazon S3. A exclusão do log de fluxo não exclui nenhum registro de log de fluxo, fluxo de log (para o CloudWatch Logs) ou objeto de arquivo de log (para o Amazon S3) existente para uma interface de rede. Para excluir um fluxo de logs existente, use o console do CloudWatch Logs. Para excluir objetos dos arquivos de log existentes, use o console do Amazon S3. Depois que você exclui um log de fluxo, pode levar vários minutos para a coleta de dados se encerrar. Para obter mais informações, consulte Excluir um log de fluxo.

Registros de log de fluxo

Um registro de log de fluxo representa um fluxo de rede na VPC. Por padrão, cada registro captura um fluxo de tráfego de protocolo de Internet (IP) da rede (caracterizado por 5 tuplas em uma base de interface de rede) que ocorre dentro de um intervalo de agregação, também referido como uma janela de captura.

Por padrão, o registro inclui valores para os diferentes componentes do fluxo IP, incluindo a origem, o destino e o protocolo.

Ao criar um log de fluxo, é possível usar o formato padrão do registro de log de fluxo ou especificar um formato personalizado.

Intervalo de agregação

O intervalo de agregação é o período durante o qual um fluxo específico é capturado e agregado em um registro de log de fluxo. Por padrão, o intervalo de agregação máximo é de dez minutos. Ao criar um log de fluxo, você pode especificar um intervalo de agregação máximo de 1 minuto, opcionalmente. Os logs de fluxo com um intervalo de agregação máximo de 1 minuto geram um volume mais alto de registros de log de fluxo que os logs de fluxo com um intervalo de agregação máximo de 10 minutos.

Quando uma interface de rede é anexada a uma instância baseada em Nitro, o intervalo de agregação será sempre 1 minuto ou menos, independentemente do intervalo de agregação máximo especificado.

Depois que os dados forem capturados em um intervalo de agregação, será necessário tempo adicional para processar e publicar os dados no CloudWatch Logs e no Amazon S3. Esse tempo adicional pode ser de até 5 minutos para publicar no CloudWatch Logs e de até 10 minutos para publicar no Amazon S3.

Formato padrão

Por padrão, o formato de linha de um registro de log de fluxo é uma string separada por espaço que possui o seguinte conjunto de campos nesta ordem.

<version> <account-id> <interface-id> <srcaddr> <dstaddr> <srcport> <dstport> <protocol> <packets> <bytes> <start> <end> <action> <log-status>

Para obter mais informações sobre os campos, consulte Campos disponíveis. O formato padrão captura somente um subconjunto de todos os campos disponíveis para um registro de log de fluxo. Para capturar todos os campos disponíveis ou um subconjunto de campos diferentes, especifique um formato personalizado. Não é possível personalizar ou alterar o formato padrão.

Formato personalizado

Se desejar, você pode especificar um formato personalizado para o registro de log de fluxo. No formato personalizado, você especifica quais campos devem ser retornados no registro de log de fluxo e a ordem em que eles devem aparecer. Isso permite criar logs de fluxo específicos para suas necessidades e omitir campos que não são relevantes para você. Um formato personalizado também pode diminuir a necessidade de processos separados para extrair informações específicas dos logs de fluxo publicados. É possível especificar qualquer quantidade de campos disponíveis do log de fluxo, mas você deve especificar pelo menos um.

Campos disponíveis

A tabela a seguir descreve todos os campos disponíveis para um registro de log de fluxo. A coluna Versão indica a versão do VPC Flow Logs na qual o campo foi introduzido.

Campo Descrição Versão

version

A versão dos logs de fluxo da VPC. Se você usar o formato padrão, a versão será 2. Se você usar um formato personalizado, a versão será a versão mais alta entre os campos especificados. Por exemplo, se você especificar apenas os campos da versão 2, a versão será 2. Se você especificar uma mistura de campos das versões 2, 3 e 4, a versão será 4.

2

account-id

O ID da conta da AWS do proprietário da interface de rede de origem para a qual o tráfego é registrado. Se a interface de rede for criada por um serviço da AWS, por exemplo, ao criar um VPC endpoint ou Load balancer de rede, o registro poderá exibir unknown para esse campo.

2

interface-id

O ID da interface de rede para a qual o tráfego é registrado.

2

srcaddr

O endereço de origem do tráfego de entrada ou o endereço IPv4 ou IPv6 da interface de rede do tráfego de saída na interface de rede. O endereço IPv4 da interface de rede sempre é o respectivo endereço IPv4 privado. Consulte também pkt-srcaddr.

2

dstaddr

O endereço de destino do tráfego de saída ou o endereço IPv4 ou IPv6 da interface de rede do tráfego de entrada na interface de rede. O endereço IPv4 da interface de rede sempre é o respectivo endereço IPv4 privado. Consulte também pkt-dstaddr.

2

srcport

A porta de origem do tráfego.

2

dstport

A porta de destino do tráfego.

2

protocol

O número do protocolo IANA do tráfego. Para obter mais informações, consulte Assigned Internet Protocol Numbers.

2

packets

O número de pacotes transferidos durante o fluxo.

2

bytes

O número de bytes transferidos durante o fluxo.

2

start

O tempo, em segundos Unix, quando o primeiro pacote de fluxo foi recebido no intervalo de agregação. Isso pode ocorrer até 60 segundos após o pacote ter sido transmitido ou recebido na interface de rede

2

end

O tempo, em segundos Unix, quando o último pacote de fluxo foi recebido dentro do intervalo de agregação. Isso pode ocorrer até 60 segundos após o pacote ter sido transmitido ou recebido na interface de rede

2

action

A ação associada ao tráfego:

  • ACCEPT: o tráfego registrado foi permitido por grupos de segurança e network ACLs.

  • REJECT: O tráfego registrado não foi permitido por grupos de segurança nem Network ACLs.

2

log-status

O status de registro do log de fluxo:

  • OK: os dados são registrados em log normalmente nos destinos selecionados.

  • NODATA: não havia nenhum tráfego de rede para ou proveniente da interface de rede durante o intervalo de agregação.

  • SKIPDATA: alguns registros de log de fluxo foram ignorados durante o intervalo de agregação. Isso pode ocorrer em virtude de uma restrição de capacidade interna ou de um erro interno.

2

vpc-id

O ID da VPC que contém a interface de rede para a qual o tráfego é registrado.

3

subnet-id

O ID da sub-rede que contém a interface de rede para a qual o tráfego é registrado.

3

instance-id

O ID da instância associada à interface de rede para a qual o tráfego é registrado, caso a instância seja de sua propriedade. Retorna um símbolo "-" para uma interface de rede gerenciada pelo solicitante; por exemplo, a interface de rede de um gateway NAT.

3

tcp-flags

O valor da máscara de bits para os seguintes sinalizadores TCP:

  • SYN: 2

  • SYN-ACK: 18

  • FIN: 1

  • RST: 4

ACK é relatado somente quando acompanhado por SYN.

Os sinalizadores TCP podem ser processados com o operador OR durante o intervalo de agregação. Para conexões curtas, os sinalizadores podem ser definidos na mesma linha no registro de log de fluxo, por exemplo, 19 para SYN-ACK e FIN, e 3 para SYN e FIN. Para ver um exemplo, consulte Sequência de sinalizadores TCP.

3

type

O tipo de tráfego: IPv4, IPv6 ou EFA. Para obter mais informações sobre Elastic Fabric Adapter (EFA), consulte Elastic Fabric Adapter.

3

pkt-srcaddr

O endereço IP de origem (original) no nível do pacote do tráfego. Use esse campo com o campo srcaddr para diferenciar o endereço IP de uma camada intermediária pela qual o tráfego flui e o endereço IP de origem original do tráfego. Por exemplo, quando o tráfego flui por uma interface de rede para um gateway NAT ou quando o endereço IP de um dispositivo no Amazon EKS é diferente do endereço IP da interface de rede do nó da instância em que o dispositivo está em execução (para comunicação dentro de uma VPC).

3

pkt-dstaddr

O endereço IP de destino (original) no nível do pacote do tráfego. Use esse campo com o campo dstaddr para diferenciar o endereço IP de uma camada intermediária pela qual o tráfego flui e o endereço IP de destino final do tráfego. Por exemplo, quando o tráfego flui por uma interface de rede para um gateway NAT ou quando o endereço IP de um dispositivo no Amazon EKS é diferente do endereço IP da interface de rede do nó da instância em que o dispositivo está em execução (para comunicação dentro de uma VPC).

3

region

A região que contém a interface de rede para a qual o tráfego é registrado.

4

az-id

O ID da zona de disponibilidade que contém a interface de rede para a qual o tráfego é registrado. Se o tráfego for de uma sublocalização, o registro exibirá um símbolo '-' para este campo.

4

sublocation-type

O tipo de sublocalização que é retornado no campo sublocation-id:

Se o tráfego não for de uma sublocalização, o registro exibirá um símbolo '-' para este campo.

4

sublocation-id

O ID da sublocalização que contém a interface de rede para a qual o tráfego é registrado. Se o tráfego não for de uma sublocalização, o registro exibirá um símbolo '-' para este campo.

4

nota

Se um campo não for aplicável a um registro específico, o registro exibirá o símbolo '-' para essa entrada.

Limitações do log de fluxo

Para usar logs de fluxo, você precisa estar atento às seguintes limitações:

  • Não é possível ativar logs de fluxo para interfaces de rede que estejam na plataforma EC2-Classic. Isso inclui instâncias do EC2-Classic que estão vinculadas a uma VPC por meio do ClassicLink.

  • Você não pode habilitar logs de fluxo para VPCs emparelhadas com a sua VPC, a menos que a VPC emparelhada esteja em sua conta.

  • Depois de criar um log de fluxo, não é possível alterar a configuração dele ou o formato do registro de log de fluxo. Por exemplo, não é possível associar uma função do IAM diferente ao log de fluxo, nem adicionar ou remover campos no registro do log de fluxo. Em vez disso, você pode excluir o log de fluxo e criar um novo com a configuração necessária.

  • Se sua interface de rede tiver vários endereços IPv4 e o tráfego for enviado para um endereço IPv4 privado secundário, o log de fluxo exibirá o endereço IPv4 privado primário no campo dstaddr. Para capturar o endereço IP de destino original, crie um log de fluxo com o campo pkt-dstaddr.

  • Se o tráfego for enviado para uma interface de rede e o destino não for nenhum dos endereços IP da interface de rede, o log de fluxo exibirá o endereço IPv4 privado principal no campo dstaddr. Para capturar o endereço IP de destino original, crie um log de fluxo com o campo pkt-dstaddr.

  • Se o tráfego for enviado de uma interface de rede e a origem não for nenhum dos endereços IP da interface de rede, o log de fluxo exibirá o endereço IPv4 privado principal no campo srcaddr. Para capturar o endereço IP de origem original, crie um log de fluxo com o campo pkt-srcaddr.

  • Se o tráfego for enviado para ou por uma interface de rede, os campos srcaddr e dstaddr no log de fluxo sempre exibirão o endereço IPv4 privado primário, independentemente da origem ou destino do pacote. Para capturar a origem ou o destino do pacote, crie um log de fluxo com os campos pkt-srcaddr e pkt-dstaddr.

  • Quando uma interface de rede é anexada a uma instância baseada em Nitro, o intervalo de agregação será sempre 1 minuto ou menos, independentemente do intervalo de agregação máximo especificado.

Os logs de fluxo não capturam todo o tráfego de IP. Os tipos de tráfego a seguir não são registrados:

  • O tráfego gerado por instâncias quando elas entram em contato com o servidor de DNS da Amazon. Se você usar seu próprio servidor de DNS, todo tráfego para esse servidor de DNS será registrado.

  • O tráfego gerado por uma instância Windows para ativação de licença do Amazon Windows.

  • O tráfego para e proveniente de 169.254.169.254 para metadados de instância.

  • O tráfego para e proveniente de 169.254.169.123 para o Amazon Time Sync Service.

  • Tráfego DHCP.

  • Tráfego para o endereço IP reservado para o router padrão da VPC. Para obter mais informações, consulte Dimensionamento da VPC e da sub-rede.

  • Trafegue entre uma interface de rede do endpoint e uma interface de rede do Load balancer de rede. Para obter mais informações, consulte Serviços do VPC endpoint (AWS PrivateLink).

Definição de preço de logs de fluxo

As cobranças de ingestão e de arquivamento de dados para logs vendidos se aplicam quando você publica logs de fluxo no CloudWatch Logs ou no Amazon S3. Para obter mais informações e exemplos, consulte Definição de preço do Amazon CloudWatch.

Para monitorar as cobranças da publicação de logs de fluxo nos buckets do Amazon S3, é possível aplicar tags de alocação de custos às assinaturas do log de fluxo. Para monitorar as cobranças da publicação de logs de fluxo no CloudWatch Logs, é possível aplicar tags de alocação de custos ao grupo de logs de destino do CloudWatch Logs. Depois disso, o relatório de alocação de custos da AWS incluirá o uso e os custos agregados por essas tags. É possível aplicar tags que representem categorias de negócios (como centros de custos, nomes de aplicativos ou proprietários) para organizar os custos. Para obter mais informações, consulte Usar tags de alocação de custos no Guia do usuário do AWS Billing and Cost Management.