Publicar logs de fluxo no Amazon S3 - Amazon Virtual Private Cloud

Publicar logs de fluxo no Amazon S3

Os logs de fluxo podem publicar dados de log de fluxo no Amazon S3.

Quando é feita uma publicação no Amazon S3, os dados de log de fluxo são publicados no bucket existente do Amazon S3 especificado. Os registros de log de fluxo para todas as interfaces de rede monitoradas são publicados em uma série de objetos de arquivos de log armazenados no bucket. Se o log de fluxo captura dados para uma VPC, o log de fluxo publica registros de log de fluxo em todas as interfaces de rede da VPC selecionada.

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

Para criar um bucket do Amazon S3 para uso com logs de fluxo, consulte Criar um bucket no Guia do usuário do Amazon Simple Storage Service.

Para obter mais informações sobre o registro em log de várias contas, consulte Registro central na Biblioteca de soluções da AWS.

Para obter mais informações sobre o CloudWatch Logs, consulte Logs sent to Amazon S3 (Logs enviados ao Simple Storage Service [Amazon S3]) no Guia do usuário do Amazon CloudWatch Logs.

Arquivos de log de fluxo

O VPC Flow Logs coleta registros de log de fluxo, os consolida em arquivos de log e publica os arquivos de log no bucket do Amazon S3 em intervalos de cinco minutos. Cada arquivo de log contém os registros de log de fluxo para o tráfego de IP registrado nos últimos cinco minutos.

O tamanho máximo de um arquivo de log é de 75 MB. Se o arquivo de log atingir o limite de tamanho no período de 5 minutos, o log de fluxo deixará de adicionar registros de log de fluxo. Depois, ele publicará o log de fluxo no bucket do Amazon S3 e criará um novo arquivo de log.

No Amazon S3, o campo Last modified (Última modificação) do arquivo de log do fluxo indica a data e hora na qual o arquivo foi carregado para o bucket do Amazon S3. Isso é posterior à data/hora no nome do arquivo e difere pela quantidade de tempo necessária para carregar o arquivo para o bucket do Amazon S3.

Formato do arquivo de log

Você pode especificar um dos formatos a seguir para os arquivos de log. Cada arquivo é compactado em um único arquivo Gzip.

  • Texto: texto sem formatação. Esse é o formato padrão.

  • Parquet: Apache Parquet é um formato colunar de dados. Consultas sobre dados no formato Parquet são 10 a 100 vezes mais rápidas em comparação com consultas em dados em texto simples. Dados em formato Parquet com compressão Gzip ocupam 20% menos espaço de armazenamento do que o texto simples com compactação Gzip.

Opções do arquivo de log

Opcionalmente, você pode especificar as opções a seguir.

  • Prefixos S3 compatíveis com Hive: habilite prefixos compatíveis com o Hive em vez de importar partições para as ferramentas compatíveis com o Hive. Antes de executar consultas, use o comando MSCK REPAIR TABLE.

  • Partições por hora: se você tiver um grande volume de logs e tipicamente direcionar consultas para uma hora específica, poderá obter resultados mais rápidos e economizar em custos de consulta ao particionar os logs a cada hora.

Estrutura do arquivo de log do bucket do S3

Os arquivos de log são salvos no bucket do Amazon S3 especificado por meio de uma estrutura de pastas determinada pelo ID do log de fluxo, pela região, pela data de criação e pelas opções de destino.

Por padrão, os arquivos são entregues no local a seguir.

bucket-and-optional-prefix/AWSLogs/account_id/vpcflowlogs/region/year/month/day/

Se você habilitar prefixos S3 compatíveis com HIVE, os arquivos serão entregues no local a seguir.

bucket-and-optional-prefix/AWSLogs/aws-account-id=account_id/service=vpcflowlogs/aws-region=region/year=year/month=month/day=day/

Se você habilitar partições por hora, os arquivos serão entregues no local a seguir.

bucket-and-optional-prefix/AWSLogs/account_id/vpcflowlogs/region/year/month/day/hour/

Se você habilitar partições compatíveis com o Hive e particionar o log de fluxo por hora, os arquivos serão entregues no local a seguir.

bucket-and-optional-prefix/AWSLogs/aws-account-id=account_id/service=vpcflowlogs/aws-region=region/year=year/month=month/day=day/hour=hour/

Nomes do arquivo de log

O nome de um arquivo de log é baseado na ID do log de fluxo, na região e na data e na hora de criação. Os nomes de arquivo usam o seguinte formato.

aws_account_id_vpcflowlogs_region_flow_log_id_YYYYMMDDTHHmmZ_hash.log.gz

Veja a seguir um exemplo de arquivo de log para um log de fluxo criado pela conta 123456789012 da AWS para um recurso na região us-east-1 em June 20, 2018 às 16:20 UTC. O arquivo contém os registros de log de fluxo com um horário de término entre 16:20:00 e 16:24:59.

123456789012_vpcflowlogs_us-east-1_fl-1234abcd_20180620T1620Z_fe123456.log.gz

Política do IAM para entidades principais do IAM que publicam logs de fluxo no Amazon S3

A entidade principal do IAM que cria o log de fluxo, como um usuário do IAM, deve ter as permissões a seguir, necessárias para publicar logs de fluxo no bucket de destino do Amazon S3.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "logs:DeleteLogDelivery" ], "Resource": "*" } ] }

Permissões do bucket do Amazon S3 para logs de fluxo

Por padrão, os buckets do Amazon S3 e os objetos que eles contêm são privados. Somente o proprietário do bucket pode acessá-los. No entanto, o proprietário do bucket pode conceder acesso a outros recursos e usuários por meio da criação de uma política de acesso.

Se o usuário que cria um log de fluxo for proprietário do bucket e tiver as permissões PutBucketPolicy e GetBucketPolicy para o mesmo, anexamos automaticamente as políticas a seguir para o bucket. Esta política substitui qualquer política existente anexada ao bucket.

Caso contrário, o proprietário do bucket deve adicionar essa política ao bucket, especificando o ID da conta da AWS do criador de log de fluxo ou falha na criação do log de fluxo. Para obter mais informações, consulte Uso de políticas de bucket no Guia do usuário do Amazon Simple Storage Service.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSLogDeliveryWrite", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "my-s3-arn", "Condition": { "StringEquals": { "aws:SourceAccount": account_id, "s3:x-amz-acl": "bucket-owner-full-control" }, "ArnLike": { "aws:SourceArn": "arn:aws:logs:region:account_id:*" } } }, { "Sid": "AWSLogDeliveryAclCheck", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::bucket_name", "Condition": { "StringEquals": { "aws:SourceAccount": account_id }, "ArnLike": { "aws:SourceArn": "arn:aws:logs:region:account_id:*" } } } ] }

O ARN que você especificar para my-s3-arn depende do uso ou não de prefixos S3 compatíveis com Hive.

  • Prefixos padrão

    arn:aws:s3:::bucket_name/optional_folder/AWSLogs/account_id/*
  • Prefixos S3 compatíveis com Hive

    arn:aws:s3:::bucket_name/optional_folder/AWSLogs/aws-account-id=account_id/*

É uma prática recomendada conceder essas permissões à entidade principal do serviço de entrega de logs em vez de concedê-las a ARNs individuais da Conta da AWS. Outra prática recomendada é o uso das chaves de condição aws:SourceAccount e aws:SourceArn para se proteger contra O problema do agente confuso. A conta de origem é o proprietário do log de fluxo e o ARN de origem é o ARN curinga (*) do serviço de logs.

Política de chaves obrigatórias para uso com SSE-KMS

É possível proteger os dados no bucket do Amazon S3 habilitando a criptografia no lado do servidor com chaves gerenciadas pelo Amazon S3 (SSE-S3) ou a criptografia no lado do servidor com chaves do KMS (SSE-KMS). Para obter mais informações, consulte Proteger dados usando criptografia do lado do servidor no Manual do usuário do Amazon S3.

Se você escolher SSE-S3, nenhuma configuração adicional será necessária. O Amazon S3 lida com a chave de criptografia.

Se você escolher o SSE-KMS, deverá usar uma chave gerenciada pelo cliente. Você deve atualizar a política de chaves para a chave gerenciada pelo cliente para que a conta de entrega de logs possa gravar no bucket do S3. Para obter mais informações sobre a política de chaves exigida para uso com o SEE-KMS, consulte Criptografia no lado do servidor de buckets do Amazon S3 no Guia do usuário do Amazon CloudWatch Logs.

Permissões de arquivo de log do Amazon S3

Além das políticas de bucket necessárias, o Amazon S3 usa listas de controle de acesso (ACLs) para gerenciar o acesso aos arquivos de log criados por um log de fluxo. Por padrão, o proprietário do bucket tem permissões FULL_CONTROL em cada arquivo de log. O proprietário da entrega de logs, se é diferente do proprietário do bucket, não tem nenhuma permissão. A conta de entrega de logs tem permissões READ e WRITE. Para obter mais informações, consulte Visão geral da lista de controle de acesso (ACL) no Guia do usuário do Amazon Simple Storage Service.

Criar um log de fluxo para publicação no Amazon S3

Depois de criar e configurar o bucket do Amazon S3, você poderá criar logs de fluxo para as interfaces de rede, sub-redes e VPCs.

Para criar um log de fluxo para uma interface de rede usando o console

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, selecione Network Interfaces.

  3. Marque as caixas de seleção para uma ou mais interfaces de rede.

  4. Escolha Actions (Ações), Create flow log (Criar log de fluxo).

  5. Defina as configurações do log de fluxo. Para obter mais informações, consulte Para definir as configurações do log de fluxo.

Para criar um log de fluxo para uma sub-rede usando o console

  1. Abra o console da Amazon VPC em https://console.aws.amazon.com/vpc/.

  2. No painel de navegação, escolha Sub-redes.

  3. Marque as caixas de seleção para uma ou mais sub-redes.

  4. Escolha Actions (Ações), Create flow log (Criar log de fluxo).

  5. Defina as configurações do log de fluxo. Para obter mais informações, consulte Para definir as configurações do log de fluxo.

Para criar um log de fluxo para uma VPC usando o console

  1. Abra o console da Amazon VPC em https://console.aws.amazon.com/vpc/.

  2. No painel de navegação, escolha Your VPCs (Suas VPCs).

  3. Marque as caixas de seleção para uma ou mais VPCs.

  4. Escolha Actions (Ações), Create flow log (Criar log de fluxo).

  5. Defina as configurações do log de fluxo. Para obter mais informações, consulte Para definir as configurações do log de fluxo.

Para definir as configurações do log de fluxo usando o console

  1. Em Filter (Filtro), especifique o tipo de dados de tráfego de IP para registrar em log.

    • Aceito: registre somente o tráfego aceito.

    • Rejeitado: registre somente o tráfego rejeitado.

    • Todos: registre tráfego aceito e rejeitado.

  2. Em Maximum aggregation interval (Intervalo máximo de agregação), escolha o período máximo durante o qual um fluxo é capturado e agregado em um registro de log de fluxo.

  3. Em Destination (Destino), escolha Send to an S3 bucket (Enviar para um bucket do S3).

  4. Para S3 bucket ARN (ARN do bucket do S3), especifique o nome de recurso da Amazon (ARN) de um bucket existente do Amazon S3. Opcionalmente, é possível incluir uma subpasta. Por exemplo, para especificar uma subpasta chamada my-logs em um bucket chamado my-bucket, use o seguinte ARN:

    arn:aws::s3:::my-bucket/my-logs/

    O bucket não pode usar AWSLogs como um nome de subpasta, pois se trata de um termo reservado.

    Se você for o proprietário do bucket, criamos automaticamente uma política de recurso e a anexamos ao bucket. Para obter mais informações, consulte Permissões do bucket do Amazon S3 para logs de fluxo.

  5. Em Log record format (Formato de registro de log), selecione o formato para o registro de log de fluxo.

    • Para usar o formato de registro de log de fluxo padrão, escolha AWS default format (Formato padrão da ).

    • Para criar um formato personalizado, escolha Custom format (Formato personalizado). Em Log format (Formato de log), escolha os campos a serem incluídos no registro de log de fluxo.

  6. Em Log file format (Formato de registro de log), especifique o formato do arquivo de log.

    • Texto: texto sem formatação. Esse é o formato padrão.

    • Parquet: Apache Parquet é um formato colunar de dados. Consultas sobre dados no formato Parquet são 10 a 100 vezes mais rápidas em comparação com consultas em dados em texto simples. Dados em formato Parquet com compressão Gzip ocupam 20% menos espaço de armazenamento do que o texto simples com compactação Gzip.

  7. (Opcional) Para usar prefixos S3 compatíveis com o Hive, escolha Hive-compatible S3 prefix (Prefixo do S3 compatível com Hive), Enable (Habilitar).

  8. (Opcional) Para particionar seus logs de fluxo por hora, escolha Every 1 hour (60 mins) (A cada 1 hora [60 minutos]).

  9. (Opcional) Para adicionar uma etiqueta ao log de fluxo, escolha Add new tag (Adicionar nova etiqueta) e especifique a chave e o valor da etiqueta.

  10. Selecione Create flow log (Criar log de fluxo).

Como criar um log de fluxo publicado no Amazon S3 usando uma ferramenta de linha de comando

Use um dos seguintes comandos.

O exemplo de AWS CLI a seguir cria um log de fluxo que captura todo o tráfego da VPC vpc-00112233344556677 e fornece os logs de fluxo para um bucket do Amazon S3 chamado flow-log-bucket. O parâmetro --log-format especifica um formato personalizado para os registros de log de fluxo.

aws ec2 create-flow-logs --resource-type VPC --resource-ids vpc-00112233344556677 --traffic-type ALL --log-destination-type s3 --log-destination arn:aws:s3:::flow-log-bucket/my-custom-flow-logs/ --log-format '${version} ${vpc-id} ${subnet-id} ${instance-id} ${srcaddr} ${dstaddr} ${srcport} ${dstport} ${protocol} ${tcp-flags} ${type} ${pkt-srcaddr} ${pkt-dstaddr}'

Processar registros de log de fluxo no Amazon S3

Os arquivos de log são compactados. Se você abrir os arquivos de log usando o console do Amazon S3, eles serão descompactados, e os registros de log de fluxo serão exibidos. Se você baixar os arquivos, será necessário descompactá-los para visualizar os registros de log de fluxo.

Também é possível consultar os registros de log de fluxo nos arquivos de log usando o Amazon Athena. O Amazon Athena é um serviço de consultas interativas que facilita a análise de dados no Amazon S3 usando SQL padrão. Para obter mais informações, consulte Consultar os Amazon VPC Flow Logs no Manual do usuário do Amazon Athena.