Habilitar logs de acesso do Network Load Balancer - Elastic Load Balancing

Habilitar logs de acesso do Network Load Balancer

Ao habilitar os registro de acesso em logs para o load balancer, você deve especificar o nome do bucket do S3 onde o load balancer armazenará os logs. O bucket deve ter uma política de bucket que conceda permissão para o Elastic Load Balancing gravar no bucket.

Importante

Os logs de acesso serão criados somente se o load balancer tiver um receptor TLS e os logs contiverem somente informações sobre solicitações TLS.

Requisitos do bucket

É possível usar um bucket existente ou criar um bucket especificamente para logs de acesso. O bucket deve atender aos seguintes requisitos:

Requisitos
  • O bucket deve estar localizado na mesma região que o load balancer. O bucket e o balanceador de carga podem pertencer a contas diferentes.

  • O prefixo especificado não deve incluir AWSLogs. Adicionamos a parte do nome do arquivo que começa com AWSLogs após o nome do bucket e o prefixo que você especificar.

  • O bucket deve ter uma política de bucket que conceda permissão para gravar os logs de acesso em seu bucket. As políticas de bucket são um conjunto de instruções JSON gravadas na linguagem de políticas de acesso para definir permissões de acesso para o seu bucket.

Exemplo de política de bucket

Veja abaixo um exemplo de política. Para os elementos Resource, substitua amzn-s3-demo-destination-bucket pelo nome do bucket do S3 para seus logs de acesso. Certifique-se de omitir o Prefix/ se não estiver usando um prefixo de bucket. Para aws:SourceAccount, especifique o ID da conta da AWS com o balanceador de carga. Para aws:SourceArn, substitua region e 012345678912 pela região e pelo ID da conta do balanceador de carga, respectivamente.

JSON
{ "Version":"2012-10-17", "Id": "AWSLogDeliveryWrite", "Statement": [ { "Sid": "AWSLogDeliveryAclCheck", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket", "Condition": { "StringEquals": { "aws:SourceAccount": [ "012345678912" ] }, "ArnLike": { "aws:SourceArn": [ "arn:aws:logs:us-east-1:012345678912:*" ] } } }, { "Sid": "AWSLogDeliveryWrite", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/Prefix/AWSLogs/account-ID/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": [ "012345678912" ] }, "ArnLike": { "aws:SourceArn": [ "arn:aws:logs:us-east-1:012345678912:*" ] } } } ] }
Criptografia

Você pode habilitar a criptografia do lado do servidor para o bucket do log de acesso do Amazon S3 de uma das seguintes formas:

  • Chaves gerenciadas pelo Amazon S3 (SSE-S3)

  • Chaves de AWS KMS armazenadas no AWS Key Management Service (SSE-KMS) †

† Com os logs de acesso do Network Load Balancer, você não pode usar chaves gerenciadas pela AWS, você deve usar chaves gerenciadas pelo cliente.

Para obter mais informações, consulte Especificar a criptografia do Amazon S3 (SSE-S3) e Especificar criptografia no lado do servidor com o AWS KMS (SSE-KMS) no Guia do usuário do Amazon S3.

A política de chave deve permitir que o serviço criptografe e descriptografe os logs. Veja abaixo um exemplo de política.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" } ] }

Configurar logs de acesso

Use o procedimento a seguir para configurar logs de acesso para capturar informações da solicitação e entregar arquivos de log ao seu bucket do S3.

Console
Habilitar logs de acesso
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, selecione Load Balancers.

  3. Selecione o nome do balanceador de carga para abrir sua página de detalhes.

  4. Na guia Atributos, escolha Editar.

  5. Em Monitoramento, ative os Logs de acesso.

  6. Para URI do S3, insira o URI do S3 para seus arquivos de log. O URI especificado dependerá de você estar ou não usando um prefixo.

    • URI com um prefixo: s3://amzn-s3-demo-logging-bucket/logging-prefix

    • URI sem um prefixo: s3://amzn-s3-demo-logging-bucket

  7. Escolha Salvar Alterações.

AWS CLI
Habilitar logs de acesso

Use o comando modify-load-balancer-attributes com os atributos relacionados.

aws elbv2 modify-load-balancer-attributes \ --load-balancer-arn load-balancer-arn \ --attributes \ Key=access_logs.s3.enabled,Value=true \ Key=access_logs.s3.bucket,Value=amzn-s3-demo-logging-bucket \ Key=access_logs.s3.prefix,Value=logging-prefix
CloudFormation
Habilitar logs de acesso

Atualize o recurso do AWS::ElasticLoadBalancingV2::LoadBalancer para incluir os atributos relacionados.

Resources: myLoadBalancer: Type: 'AWS::ElasticLoadBalancingV2::LoadBalancer' Properties: Name: my-nlb Type: network Scheme: internal Subnets: - !Ref subnet-AZ1 - !Ref subnet-AZ2 SecurityGroups: - !Ref mySecurityGroup LoadBalancerAttributes: - Key: "access_logs.s3.enabled" Value: "true" - Key: "access_logs.s3.bucket" Value: "amzn-s3-demo-logging-bucket" - Key: "access_logs.s3.prefix" Value: "logging-prefix"