

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Habilitar os logs de acesso para seu Application Load Balancer
<a name="enable-access-logging"></a>

Ao habilitar os logs de acesso para seu balanceador de carga, você deve especificar o nome do bucket do S3 no qual o balanceador de carga armazenará os logs. O bucket deve ter uma política de bucket que conceda permissão para o Elastic Load Balancing gravar no bucket.

**Topics**
+ [Etapa 1: Crie um bucket do S3](#access-log-create-bucket)
+ [Etapa 2: Anexe uma política ao seu bucket do S3](#attach-bucket-policy)
+ [Etapa 3: Configurar logs de acesso](#enable-access-logs)
+ [Etapa 4: Verificar permissões do bucket](#verify-bucket-permissions)
+ [Solução de problemas](#bucket-permissions-troubleshooting)

## Etapa 1: Crie um bucket do S3
<a name="access-log-create-bucket"></a>

Quando você habilitar os logs de acesso, deverá especificar um bucket do S3 para os logs de acesso. É 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.
+ A única opção de criptografia compatível no lado do servidor são as chaves gerenciadas pelo Amazon S3 (SSE-S3). Para obter mais informações, consulte [Chaves de criptografia gerenciadas pelo Amazon S3 (SSE-S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html).

**Para criar um bucket do S3 usando o console do Amazon S3**

1. Abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Selecione **Criar bucket**.

1. Na página **Criar bucket**, faça o seguinte:

   1. Para **Nome do bucket**, insira um nome para o bucket. Esse nome deve ser exclusivo entre todos os nomes de buckets existentes no Amazon S3. Em algumas regiões, talvez haja restrições adicionais quanto a nomes de buckets. Para obter mais informações, consulte [Restrições de bucket e limitações](https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html) no *Guia do usuário do Amazon S3*.

   1. Em **Região da AWS **, selecione a região em que você criou seu balanceador de carga.

   1. Em **Criptografia padrão**, escolha **Chaves gerenciadas pelo Amazon S3 (SSE-S3)**.

   1. Selecione **Criar bucket**.

## Etapa 2: Anexe uma política ao seu bucket do S3
<a name="attach-bucket-policy"></a>

O bucket do S3 deve ter uma política de bucket que conceda permissão para que o Elastic Load Balancing grave os logs de acesso no 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. Cada instrução inclui informações sobre uma única permissão e contém uma série de elementos.

Se estiver usando um bucket que já tem uma política anexada, você poderá adicionar a instrução para os logs de acesso do Elastic Load Balancing à política. Se você fizer isso, recomendamos que avalie o conjunto resultante de permissões para garantir que eles são apropriadas para os usuários que precisam de acesso ao bucket para logs de acesso.

### Política de bucket
<a name="bucket-policy-logdelivery"></a>

Esta política concede permissões ao serviço de entrega de logs.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "logdelivery.elasticloadbalancing.amazonaws.com"
      },
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/prefix/AWSLogs/123456789012/*"
    }
  ]
}
```

Para `Resource`, insira o ARN do local para os logs de acesso, usando o formato demonstrado no exemplo de política. Sempre inclua o ID da conta com o balanceador de carga no caminho do recurso do ARN do bucket do S3. Isso garante que somente os balanceadores de carga da conta especificada possam gravar logs de acesso no bucket do S3.

O ARN especificado dependerá de você planejar ou não incluir um prefixo ao habilitar os logs de acesso na [etapa 3](#enable-access-logs).

**Exemplo de ARN do bucket do S3 com um prefixo**  
O nome do bucket do S3 é amzn-s3-demo-logging-bucket e o prefixo é logging-prefix.

```
arn:aws:s3:::amzn-s3-demo-logging-bucket/logging-prefix/AWSLogs/123456789012/*
```

**AWS GovCloud (US)** — O exemplo a seguir usa a sintaxe ARN para as AWS GovCloud (US) Regions.

```
arn:aws-us-gov:s3:::amzn-s3-demo-logging-bucket/logging-prefix/AWSLogs/123456789012/*
```

**Exemplo de ARN do bucket do S3 sem prefixo**  
O nome do bucket do S3 é amzn-s3-demo-logging-bucket. Não há parte do prefixo no ARN do bucket do S3.

```
arn:aws:s3:::amzn-s3-demo-logging-bucket/AWSLogs/123456789012/*
```

**AWS GovCloud (US)** — O exemplo a seguir usa a sintaxe ARN para as AWS GovCloud (US) Regions.

```
arn:aws-us-gov:s3:::amzn-s3-demo-logging-bucket/AWSLogs/123456789012/*
```

### Política de bucket legada
<a name="legacy-bucket-policy"></a>

No passado, para regiões disponíveis antes de agosto de 2022, exigíamos uma política que concedesse permissões a uma conta do Elastic Load Balancing específica para a região. Embora essa política legada ainda seja compatível, recomendamos que você a substitua pela política mais recente acima. Se preferir, você pode continuar usando a política legada, que não é mostrada aqui.

 Para referência, aqui estão as contas IDs do Elastic Load Balancing a serem especificadas `Principal` na política legada. Note que as regiões que não aparecem nessa lista não oferecem suporte à política legada.
+ Leste dos EUA (N. da Virgínia): 127311923021
+ Leste os EUA (Ohio): 033677994240
+ Oeste dos EUA (N. da Califórnia): 027434742980
+ Oeste dos EUA (Oregon): 797873946194
+ África (Cidade do Cabo): 098369216593
+ Ásia-Pacífico (Hong Kong): 754344448648
+ Ásia-Pacífico (Jacarta) — 589379963580
+ Ásia-Pacífico (Mumbai): 718504428378
+ Ásia-Pacífico (Osaka): 383597477331
+ Ásia-Pacífico (Seul): 600734575887
+ Ásia-Pacífico (Singapura): 114774131450
+ Ásia-Pacífico (Sydney): 783225319266
+ Ásia-Pacífico (Tóquio): 582318560864
+ Canadá (Central): 985666609251
+ Europa (Frankfurt): 054676820928
+ Europa (Irlanda): 156460612806
+ Europa (Londres): 652711504416
+ Europa (Milão): 635631232127
+ Europa (Paris): 009996457667
+ Europa (Estocolmo): 897822967062
+ Oriente Médio (Bahrein): 076674570225
+ América do Sul (São Paulo): 507241528517
+ AWS GovCloud (Leste dos EUA) — 190560391635
+ AWS GovCloud (Oeste dos EUA) — 048591011584

### Zonas de Outposts
<a name="bucket-policy-outposts"></a>

A política a seguir concede permissões ao serviço de entrega de logs especificado. Use essa política para balanceadores de carga em zonas de Outposts.

```
{
    "Effect": "Allow",
    "Principal": {
        "Service": "logdelivery.elb.amazonaws.com"
    },
    "Action": "s3:PutObject",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/prefix/AWSLogs/123456789012/*",
    "Condition": {
        "StringEquals": {
            "s3:x-amz-acl": "bucket-owner-full-control"
        }
    }
}
```

Para `Resource`, insira o ARN do local para os logs de acesso, usando o formato demonstrado no exemplo de política. Sempre inclua o ID da conta com o balanceador de carga no caminho do recurso do ARN do bucket do S3. Isso garante que somente os balanceadores de carga da conta especificada possam gravar logs de acesso no bucket do S3.

O ARN do bucket do S3 especificado dependerá de você planejar ou não incluir um prefixo ao habilitar os logs de acesso na [etapa 3](#enable-access-logs).

**Exemplo de ARN do bucket do S3 com um prefixo**  
O nome do bucket do S3 é amzn-s3-demo-logging-bucket e o prefixo é logging-prefix.

```
arn:aws:s3:::amzn-s3-demo-logging-bucket/logging-prefix/AWSLogs/123456789012/*
```

**Exemplo de ARN do bucket do S3 sem prefixo**  
O nome do bucket do S3 é amzn-s3-demo-logging-bucket. Não há parte do prefixo no ARN do bucket do S3.

```
arn:aws:s3:::amzn-s3-demo-logging-bucket/AWSLogs/123456789012/*
```

### Práticas recomendadas de segurança
<a name="bucket-policy-security-best-practices"></a>
+ Use o caminho completo do recurso, incluindo a parte do ID da conta do ARN do bucket do S3. Não use curingas (\$1) na parte do ID da conta do ARN do bucket do S3.

  ```
  "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/prefix/AWSLogs/123456789012/*"
  ```
+ Use `aws:SourceArn` para garantir que somente balanceadores de carga da região e da conta especificadas possam usar o seu bucket.

  ```
  "Condition": {
      "ArnLike": {
          "aws:SourceArn": "arn:aws:elasticloadbalancing:region:123456789012:loadbalancer/*"
      }
  }
  ```
+ Use `aws:SourceOrgId` com `aws:SourceArn` para garantir que somente balanceadores de carga da região e da conta especificadas possam usar seu bucket.

  ```
  "Condition": {
      "StringEquals": {
          "aws:SourceOrgId": "o-1234567890"
      },
      "ArnLike": {
          "aws:SourceArn": "arn:aws:elasticloadbalancing:*:*:loadbalancer/*"
      }
  }
  ```
+ Se você tiver uma declaração de `Deny` para impedir o acesso às entidades principais de serviço, exceto aquelas explicitamente permitidas, não se esqueça de adicionar `logdelivery.elasticloadbalancing.amazonaws.com` à lista de entidades principais de serviço permitidas. Por exemplo, se você usou a condição `aws:PrincipalServiceNamesList`, adicione `logdelivery.elasticloadbalancing.amazonaws.com` conforme mostrado a seguir:

  ```
  {
    "Effect": "Deny",
    "Principal": "*",
    "Condition": {
        "StringNotEqualsIfExists": {
            "aws:PrincipalServiceNamesList": [
                "logdelivery.elasticloadbalancing.amazonaws.com",
                "service.amazonaws.com"
            ]
        }
    }
  }
  ```

  Se você usou o elemento `NotPrincipal`, adicione `logdelivery.elasticloadbalancing.amazonaws.com` conforme mostrado a seguir. Note que recomendamos a utilização da chave de condição `aws:PrincipalServiceName` ou `aws:PrincipalServiceNamesList` para permitir explicitamente as entidades principais de serviço em vez de usar o elemento `NotPrincipal`. Para obter mais informações, consulte [NotPrincipal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_notprincipal.html).

  ```
  {
    "Effect": "Deny",
    "NotPrincipal": {
      "Service": [
         "logdelivery.elasticloadbalancing.amazonaws.com",
         "service.amazonaws.com"
      ]
    }
  },
  ```

Depois de criar sua política de bucket, use uma interface do Amazon S3, como o console AWS CLI ou os comandos do Amazon S3, para anexar sua política de bucket ao bucket do S3.

------
#### [ Console ]

**Para anexar sua política de bucket ao seu bucket do S3**

1. Abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Selecione o nome do bucket para abrir sua página de detalhes.

1. Escolha **Permissions** (Permissões) e, em seguida, escolha **Bucket policy** (Política de bucket), **Edit** (Editar).

1. Crie ou atualize a política de bucket para conceder as permissões necessárias.

1. Escolha **Salvar alterações**.

------
#### [ AWS CLI ]

**Para anexar sua política de bucket ao seu bucket do S3**  
Use o comando [put-bucket-policy](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-policy.html). Neste exemplo, a política de bucket foi salva no arquivo .json especificado.

```
aws s3api put-bucket-policy \
    --bucket amzn-s3-demo-bucket \
    --policy file://access-log-policy.json
```

------

## Etapa 3: Configurar logs de acesso
<a name="enable-access-logs"></a>

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

**Requisitos**  
O bucket deverá atender aos requisitos descritos na [etapa 1](#access-log-create-bucket) e você deverá anexar uma política de bucket, conforme descrito na [etapa 2](#attach-bucket-policy). Se você incluir um prefixo, ele não deverá incluir a string "AWSLogs”.

**Gerenciar o bucket do S3 para os logs de acesso**  
Certifique-se de desabilitar os registros de acesso antes de excluir o bucket que você configurou para os logs de acesso. Caso contrário, se houver um novo bucket com o mesmo nome e a política de bucket necessária criada em uma Conta da AWS que não seja de sua propriedade, o Elastic Load Balancing poderá gravar os logs de acesso do seu balanceador de carga nesse novo bucket.

------
#### [ Console ]

**Habilitar logs de acesso**

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

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

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

1. Na guia **Atributos**, escolha **Editar**.

1. Em **Monitoramento**, ative os **Logs de acesso**.

1. 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 prefixo: s3://*amzn-s3-demo-logging-bucket*

1. Escolha **Salvar alterações**.

------
#### [ AWS CLI ]

**Habilitar logs de acesso**  
Use o [modify-load-balancer-attributes](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-load-balancer-attributes.html)comando 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 [AWS::ElasticLoadBalancingV2::LoadBalancer](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-loadbalancer.html)recurso para incluir os atributos relacionados.

```
Resources:
  myLoadBalancer:
    Type: 'AWS::ElasticLoadBalancingV2::LoadBalancer'
    Properties:
      Name: my-alb
      Type: application
      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"
```

------

## Etapa 4: Verificar permissões do bucket
<a name="verify-bucket-permissions"></a>

Após o registro de acesso em logs ser habilitado para seu balanceador de carga, o Elastic Load Balancing validará o bucket do S3 e criará um arquivo de teste para garantir que a política do bucket especifique as permissões necessárias. Você pode usar o console do Amazon S3 para verificar se o arquivo de teste foi criado. O arquivo de teste não é um arquivo de log de acesso real; ele não contêm registros de exemplo.

**Para verificar se um arquivo de teste foi criado no bucket usando o console do Amazon S3**

1. Abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Selecione o nome do bucket que você especificou para logs de acesso.

1. Localize o arquivo de teste, `ELBAccessLogTestFile`. O local dependerá de você estar ou não usando um prefixo.
   + Localização com um prefixo:*amzn-s3-demo-logging-bucket*//*logging-prefix*/AWSLogs/*123456789012*ELBAccessLogTestFile
   + Localização sem prefixo:*amzn-s3-demo-logging-bucket*//AWSLogs/*123456789012*ELBAccessLogTestFile

## Solução de problemas
<a name="bucket-permissions-troubleshooting"></a>

Se você receber um erro de acesso negado, as possíveis causas serão:
+ A política do bucket não concede ao Elastic Load Balancing permissão para gravar logs de acesso no bucket. Confira se está usando a política de bucket correta para a região. Confira se o ARN do recurso usa o mesmo nome de bucket que você especificou ao habilitar os logs de acesso. Confira se o ARN do recurso não inclui um prefixo se você não tiver especificado um prefixo ao habilitar os logs de acesso.
+ O bucket usa uma opção de criptografia que não é aceita no lado do servidor. O bucket deve usar chaves gerenciadas pelo Amazon S3 (SSE-S3).