

# Logs de acesso (logs padrão)
<a name="AccessLogs"></a>

Você pode configurar o CloudFront para criar arquivos de log que contenham informações detalhadas sobre todas as solicitações dos usuários (visualizadores) que ele recebe. Esses são chamados de *logs de acesso*, também conhecidos como *logs padrão*. 

Cada log contém informações, como a hora em que a solicitação foi recebida, tempo de processamento, caminhos de solicitação e respostas do servidor. Você pode usar esses logs de acesso para analisar os tempos de resposta e solucionar problemas.

O diagrama a seguir mostra como o CloudFront registra informações sobre as solicitações de seus objetos. Neste exemplo, as distribuições estão configuradas para enviar logs de acesso a um bucket do Amazon S3.

![\[Fluxo básico de logs de acesso\]](http://docs.aws.amazon.com/pt_br/AmazonCloudFront/latest/DeveloperGuide/images/Logging.png)


1. Neste diagrama, você tem dois sites, A e B, e duas distribuições do CloudFront correspondentes. Os usuários solicitam seus objetos usando URLs associados a suas distribuições.

1. O CloudFront encaminha cada solicitação para o ponto de presença adequado.

1. O CloudFront grava dados sobre cada solicitação em um arquivo de log específico a essa distribuição. Neste exemplo, informações sobre as solicitações relacionadas à Distribuição A são registradas em um arquivo de log exclusivo para ela. Da mesma forma, informações sobre as solicitações relacionadas à Distribuição B são registradas em um arquivo de log exclusivo para ela.

1. O CloudFront periodicamente salva o arquivo de log de uma distribuição no bucket do Amazon S3 especificado ao habilitar o registro. Depois, o CloudFront começa salvando as informações de solicitações subsequentes em um novo arquivo de log para a distribuição.

   Se nenhum visualizador acessar seu conteúdo em uma hora específica, você não receberá arquivos de log referentes a essa hora.

**nota**  
Recomendamos que você use os logs para compreender a natureza das solicitações do seu conteúdo, não como uma contabilidade completa de todas as solicitações. O CloudFront entrega logs de acesso com base no melhor esforço. A entrada do log de uma solicitação específica pode ser entregue muito depois do processamento da solicitação e, raramente, nunca ser entregue. Quando uma entrada de log for omitida dos logs de acesso, o número de entradas nos logs não corresponderá ao uso exibido nos relatórios de uso e faturamento da AWS.

O CloudFront é compatível com duas versões de registro em log padrão. O registro em log padrão (legado) permite o envio de logs de acesso *somente* ao Amazon S3. O registro em log padrão (v2) permite outros destinos de entrega. Você pode configurar ambos ou qualquer uma das opções de registro em log para sua distribuição. Para saber mais, consulte os seguintes tópicos:

**Topics**
+ [

# Configurar o registro em log padrão (v2)
](standard-logging.md)
+ [

# Configurar o registro em log padrão (legado)
](standard-logging-legacy-s3.md)
+ [

# Referência do registro em log padrão
](standard-logs-reference.md)

**dica**  
O CloudFront também oferece logs de acesso em tempo real, que fornecem informações sobre solicitações feitas a uma distribuição em tempo real (os logs são entregues em segundos após o recebimento das solicitações). É possível usar os logs de acesso em tempo real para monitorar, analisar e executar ações com base no desempenho da entrega de conteúdo. Para obter mais informações, consulte [Usar logs de acesso em tempo real](real-time-logs.md).

# Configurar o registro em log padrão (v2)
<a name="standard-logging"></a>

É possível habilitar os logs de acesso (logs padrão) ao criar ou atualizar uma distribuição. Os recurso do registro em log padrão (v2) permitem o seguinte:
+ Enviar logs de acesso ao Amazon CloudWatch Logs, Amazon Data Firehose e Amazon Simple Storage Service (Amazon S3).
+ Selecionar os campos de log desejados. Também é possível selecionar um [subconjunto de campos de log de acesso em tempo real](#standard-logging-real-time-log-selection).
+ Selecionar formatos adicionais de [arquivo de log de saída](#supported-log-file-format).

Se você estiver usando o Amazon S3, você tem recursos opcionais, como:
+ Enviar logs a Regiões da AWS habilitadas.
+ Organizar os logs com particionamento.
+ Habilitar nomes de arquivos compatíveis com o Hive.

Para obter mais informações, consulte [Enviar logs ao Amazon S3](#send-logs-s3).

Para começar a usar o registro em log padrão, conclua as seguintes etapas:

1. Configure as permissões necessárias para o AWS service (Serviço da AWS) especificado que receberá os logs.

1. Configure o registro em log padrão por meio do console do CloudFront ou da API do CloudWatch.

1. Visualize os logs de acesso.

**nota**  
Se você habilitar o registro em log padrão (v2), isso não afetará nem alterará o registro em log padrão (legado). Você pode continuar usando o registro em log padrão (legado) para sua distribuição, além de usar o registro em log padrão (v2). Para obter mais informações, consulte [Configurar o registro em log padrão (legado)](standard-logging-legacy-s3.md).
Se você já habilitou o registro em log padrão (legado) e deseja habilitar o registro em log padrão (v2) no Amazon S3, recomendamos que especifique um bucket do Amazon S3 *diferente* ou use um *caminho separado* no mesmo bucket (por exemplo, use um prefixo de log ou particionamento). Isso ajuda a controlar quais arquivos de log são associados a qual distribuição e evita que um substitua o outro.

## Permissões
<a name="permissions-standard-logging"></a>

O CloudFront usa os logs fornecidos pelo CloudWatch para entregar logs de acesso. Para habilitar a entrega de registro em log, você precisa de permissões para o AWS service (Serviço da AWS) especificado.

Para ver as permissões necessárias para cada destino de registro em log, escolha um dos tópicos a seguir no *Guia do usuário do Amazon CloudWatch Logs*.
+ [CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-V2-CloudWatchLogs)
+ [Firehose](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-V2-Firehose)
+ [Amazon S3](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-V2-S3)

Depois de configurar as permissões para seu destino de registro em log, você pode habilitar o registro em log padrão para sua distribuição.

**nota**  
O CloudFront permite o envio de logs de acesso a diferentes Contas da AWS (entre contas). Para permitir a entrega entre contas, ambas (sua conta e a conta de recebimento) devem ter as permissões necessárias. Para obter mais informações, consulte a seção [Habilitar o registro em log padrão para entrega entre contas](#enable-standard-logging-cross-accounts) ou [Cross-account delivery example](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#vended-logs-crossaccount-example) no *Guia do usuário do Amazon CloudWatch Logs*. 

## Habilitar o registro padrão
<a name="set-up-standard-logging"></a>

Para habilitar o registro em log padrão, você pode usar o console do CloudFront ou a API do CloudWatch.

**Contents**
+ [

### Habilitar o registro em log padrão (console do CloudFront)
](#access-logging-console)
+ [

### Habilitar o registro em log padrão (API do CloudWatch)
](#enable-access-logging-api)

### Habilitar o registro em log padrão (console do CloudFront)
<a name="access-logging-console"></a>

**Para habilitar o registro em log padrão para uma distribuição do CloudFront (console)**

1. Use o console do CloudFront para [atualizar uma distribuição existente](HowToUpdateDistribution.md#HowToUpdateDistributionProcedure).

1. Escolha a guia **Logging** (Registrar em log).

1. Escolha **Adicionar** e selecione o serviço para receber os logs:
   + CloudWatch Logs
   + Firehose
   + Amazon S3

1. Em **Destino**, selecione o recurso para seu serviço. Se você ainda não criou seu recurso, pode escolher **Criar** ou consultar a documentação a seguir.
   + Para o CloudWatch Logs, insira o **[nome do grupo de logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html)**.
   + Para o Firehose, insira o **[fluxo de entrega do Firehose](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html)**.
   + Para o Amazon S3, insira o **[nome do bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)**. 
**dica**  
Para especificar um prefixo, insira o prefixo após o nome do bucket, como `amzn-s3-demo-bucket.s3.amazonaws.com/MyLogPrefix`. Se você não especificar um prefixo, o CloudFront adicionará um automaticamente para você. Para obter mais informações, consulte [Enviar logs ao Amazon S3](#send-logs-s3).

1. Em **Configurações adicionais: *opcional***, você pode especificar as seguintes opções:

   1. Em **Seleção de campos**, escolha o nome dos campos de log que você deseja entregar ao seu destino. Você pode selecionar [campos de log de acesso](standard-logs-reference.md#BasicDistributionFileFormat) e um subconjunto de [campos de log de acesso em tempo real](#standard-logging-real-time-log-selection).

   1. (Somente para o Amazon S3) Em **Particionamento**, especifique o caminho para particionar os dados do arquivo de log. 

   1. (Somente para o Amazon S3) Em **Formato de arquivo compatível com o Hive**, você pode marcar a caixa de seleção para usar caminhos do S3 compatíveis com o Hive. Isso ajuda a simplificar o carregamento de novos dados em suas ferramentas compatíveis com o Hive.

   1. Em **Formato de saída**, especifique o formato de sua preferência.
**nota**  
Se você escolher **Parquet**, essa opção incorrerá em cobranças do CloudWatch pela conversão dos logs de acesso em Apache Parquet. Para ter mais informações, consulte a seção sobre logs fornecidos em [Definição de preço do Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing/).

   1. Em **Delimitador de campo**, especifique como separar os campos de log. 

1. Conclua as etapas para atualizar ou criar sua distribuição.

1. Para adicionar outro destino, repita as etapas de 3 a 6.

1. Na página **Logs**, verifique se o status dos logs padrão está **ativado** ao lado da distribuição.

1. (Opcional) Para habilitar o registro em log de cookies, escolha **Gerenciar** e **Configurações**, ative **Registro de cookies** e escolha **Salvar alterações**.
**dica**  
O registro em log de cookies é uma configuração global que se aplica a *todos *os registros em log padrão da sua distribuição. Você não pode substituir essa configuração para destinos de entrega separados.

Para ter mais informações sobre a entrega do registro em log padrão e os campos de log, consulte [Referência do registro em log padrão](standard-logs-reference.md).

### Habilitar o registro em log padrão (API do CloudWatch)
<a name="enable-access-logging-api"></a>

Você também pode usar a API do CloudWatch para habilitar o registro em log padrão para suas distribuições. 

**Observações**  
Ao chamar a API do CloudWatch para habilitar o registro em log padrão, você deve especificar a região Leste dos EUA (Norte da Virgínia) (`us-east-1`), mesmo que queira habilitar a entrega entre regiões para outro destino. Por exemplo, se você quiser enviar seus logs de acesso a um bucket do S3 na região Europa (Irlanda) (`eu-west-1`), use a API do CloudWatch na região `us-east-1`.
Há uma opção adicional para incluir cookies no registro em log padrão. Na API do CloudFront, é o parâmetro `IncludeCookies`. Se você configurar o registro em log de acesso usando a API do CloudWatch e especificar que deseja incluir cookies, deverá usar o console ou a API do CloudFront para atualizar sua distribuição e incluir cookies. Caso contrário, o CloudFront não poderá enviar cookies ao destino de log. Para obter mais informações, consulte [Registro em log de cookies](DownloadDistValuesGeneral.md#DownloadDistValuesCookieLogging).

**Como habilitar o registro em log padrão para uma distribuição (API do CloudWatch)**

1. Depois de criar uma distribuição, obtenha o nome de recurso da Amazon (ARN). 

   Você pode encontrar o ARN na página **Distribuição** no console do CloudFront ou usar a operação de API [GetDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_GetDistribution.html). Um ARN de distribuição segue o formato `arn:aws:cloudfront::123456789012:distribution/d111111abcdef8`. 

1. Em seguida, use a operação de API [PutDeliverySource](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliverySource.html) do CloudWatch para criar uma origem de entrega para a distribuição. 

   1. Insira um nome para a origem de entrega.

   1. Passe o `resourceArn` da distribuição. 

   1. Em `logType`, especifique `ACCESS_LOGS` como o tipo de log que será coletado. 

   1.   
**Example Exemplo do comando put-delivery-source da AWS CLI**  

      Veja abaixo um exemplo de configuração de origem de entrega para uma distribuição.

      ```
      aws logs put-delivery-source --name S3-delivery --resource-arn arn:aws:cloudfront::123456789012:distribution/d111111abcdef8 --log-type ACCESS_LOGS
      ```

      **Output**

      ```
      {
       "deliverySource": {
       "name": "S3-delivery",
       "arn": "arn:aws:logs:us-east-1:123456789012:delivery-source:S3-delivery",
       "resourceArns": [
       "arn:aws:cloudfront::123456789012:distribution/d111111abcdef8"
       ],
       "service": "cloudfront",
       "logType": "ACCESS_LOGS"
       }
      }
      ```

1. Use a operação de API [PutDeliveryDestination](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestination.html) para configurar onde armazenar os logs. 

   1. Em `destinationResourceArn`, especifique o ARN do destino. Isso pode ser um grupo de logs do CloudWatch Logs, a um fluxo de entrega do Firehose ou um bucket do Amazon S3.

   1. Em `outputFormat`, especifique o formato de saída para os logs.

   1.   
**Example Exemplo do comando put-delivery-destination da AWS CLI**  

      Veja abaixo um exemplo de configuração de destino de entrega para um bucket do Amazon S3.

      ```
      aws logs put-delivery-destination --name S3-destination --delivery-destination-configuration destinationResourceArn=arn:aws:s3:::amzn-s3-demo-bucket
      ```

      **Output**

      ```
      {
          "name": "S3-destination",
          "arn": "arn:aws:logs:us-east-1:123456789012:delivery-destination:S3-destination",
          "deliveryDestinationType": "S3",
          "deliveryDestinationConfiguration": {
              "destinationResourceArn": "arn:aws:s3:::amzn-s3-demo-bucket"
          }
      }
      ```
**nota**  
Se você estiver entregando logs entre contas, deverá usar a operação de API [PutDeliveryDestinationPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestinationPolicy.html) para atribuir uma política do AWS Identity and Access Management (IAM) à conta de destino. A política do IAM permite a entrega de uma conta para outra.

1. Use a operação de API [CreateDelivery](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateDelivery.html) para vincular a origem de entrega ao destino que você criou nas etapas anteriores. Essa operação de API associa a fonte de entrega ao destino final.

   1. Para `deliverySourceName`, especifique o nome da origem.

   1. Para `deliveryDestinationArn`, especifique o ARN do destino de entrega.

   1. Para `fieldDelimiter`, especifique a string para separar cada campo de log.

   1. Para `recordFields`, especifique os campos de log que você deseja.

   1. Se você estiver usando o S3, especifique se deseja usar `enableHiveCompatiblePath` e `suffixPath`.  
**Example Exemplo do comando create-delivery da AWS CLI**  

   Veja a seguir um exemplo de criação de entrega. 

   ```
   aws logs create-delivery --delivery-source-name cf-delivery --delivery-destination-arn arn:aws:logs:us-east-1:123456789012:delivery-destination:S3-destination
   ```

   **Output**

   ```
   {
       "id": "abcNegnBoTR123",
       "arn": "arn:aws:logs:us-east-1:123456789012:delivery:abcNegnBoTR123",
       "deliverySourceName": "cf-delivery",
       "deliveryDestinationArn": "arn:aws:logs:us-east-1:123456789012:delivery-destination:S3-destination",
       "deliveryDestinationType": "S3",
       "recordFields": [
           "date",
           "time",
           "x-edge-location",
           "sc-bytes",
           "c-ip",
           "cs-method",
           "cs(Host)",
           "cs-uri-stem",
           "sc-status",
           "cs(Referer)",
           "cs(User-Agent)",
           "cs-uri-query",
           "cs(Cookie)",
           "x-edge-result-type",
           "x-edge-request-id",
           "x-host-header",
           "cs-protocol",
           "cs-bytes",
           "time-taken",
           "x-forwarded-for",
           "ssl-protocol",
           "ssl-cipher",
           "x-edge-response-result-type",
           "cs-protocol-version",
           "fle-status",
           "fle-encrypted-fields",
           "c-port",
           "time-to-first-byte",
           "x-edge-detailed-result-type",
           "sc-content-type",
           "sc-content-len",
           "sc-range-start",
           "sc-range-end",
           "c-country",
           "cache-behavior-path-pattern"
       ],
        "fieldDelimiter": ""
   }
   ```

1. No console do CloudFront, na página **Logs**, verifique se o status dos logs padrão está **Habilitado** ao lado da distribuição.

   Para ter mais informações sobre a entrega do registro em log padrão e os campos de log, consulte [Referência do registro em log padrão](standard-logs-reference.md).

**nota**  
Para habilitar o registro em log padrão (v2) para o CloudFront usando o AWS CloudFormation, você pode usar as seguintes propriedades do CloudWatch Logs:  
[Delivery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-delivery.html)
[DeliveryDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-deliverydestination.html)
[DeliverySource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-deliverysource.html)
`ResourceArn` é a distribuição do CloudFront e `LogType` deve ser `ACCESS_LOGS` como o tipo de log compatível.

## Habilitar o registro em log padrão para entrega entre contas
<a name="enable-standard-logging-cross-accounts"></a>

Se você habilitar o registro em log padrão para sua Conta da AWS e quiser entregar os logs de acesso a outra conta, configure a conta de origem e a conta de destino corretamente. A *conta de origem* com a distribuição do CloudFront envia os logs de acesso à *conta de destino*.

No procedimento deste exemplo, a conta de origem *111.111.111.111*) envia os respectivos logs de acesso a um bucket do Amazon S3 na conta de destino (*222.222.222.222*). Para enviar logs de acesso a um bucket do Amazon S3 na conta de destino, use a AWS CLI. 

### Configurar a conta de destino
<a name="steps-destination-account"></a>

Para a conta de destino, conclua o procedimento a seguir.

**Como configurar a conta de destino**

1. Para criar o destino da entrega de logs, você pode inserir o comando da AWS CLI a seguir. Este exemplo usa a string `MyLogPrefix` para criar um prefixo para os logs de acesso.

   ```
   aws logs put-delivery-destination --name cloudfront-delivery-destination --delivery-destination-configuration "destinationResourceArn=arn:aws:s3:::amzn-s3-demo-bucket-cloudfront-logs/MyLogPrefix"
   ```

   **Output**

   ```
   {
       "deliveryDestination": {
           "name": "cloudfront-delivery-destination",
           "arn": "arn:aws:logs:us-east-1:222222222222:delivery-destination:cloudfront-delivery-destination",
           "deliveryDestinationType": "S3",
           "deliveryDestinationConfiguration": {"destinationResourceArn": "arn:aws:s3:::amzn-s3-demo-bucket-cloudfront-logs/MyLogPrefix"}
       }
   }
   ```
**nota**  
Se você especificar um bucket do S3 *sem* um prefixo, o CloudFront anexará automaticamente o `AWSLogs/<account-ID>/CloudFront` como um prefixo que aparece no `suffixPath` do destino de entrega do S3. Para ter mais informações, consulte [S3DeliveryConfiguration](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_S3DeliveryConfiguration.html).

1. Adicione a política de recursos para o destino de entrega de logs a fim de permitir que a conta de origem crie uma entrega de logs.

   Na política a seguir, substitua *111111111111* pelo ID da conta de origem e especifique o ARN do destino de entrega com base na saída da etapa 1. 

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowCreateDelivery",
               "Effect": "Allow",
               "Principal": {"AWS": "111111111111"},
               "Action": ["logs:CreateDelivery"],
               "Resource": "arn:aws:logs:us-east-1:222222222222:delivery-destination:cloudfront-delivery-destination"
           }
       ]
   }
   ```

------

1. Salve o arquivo, como `deliverypolicy.json`, por exemplo.

1. Para anexar a política anterior ao destino de entrega, digite o comando da AWS CLI a seguir.

   ```
   aws logs put-delivery-destination-policy --delivery-destination-name cloudfront-delivery-destination --delivery-destination-policy file://deliverypolicy.json
   ```

1. Adicione a declaração abaixo à política de bucket do Amazon S3 de destino, substituindo o ARN do recurso e o ID da conta de origem. Essa política permite que a entidade principal do serviço `delivery.logs.amazonaws.com` execute a ação `s3:PutObject`.

   ```
   {
       "Sid": "AWSLogsDeliveryWrite",
       "Effect": "Allow",
       "Principal": {"Service": "delivery.logs.amazonaws.com"},
       "Action": "s3:PutObject",
       "Resource": "arn:aws:s3:::amzn-s3-demo-bucket-cloudfront-logs/*",
       "Condition": {
           "StringEquals": {
               "s3:x-amz-acl": "bucket-owner-full-control",
               "aws:SourceAccount": "111111111111"
           },
           "ArnLike": {"aws:SourceArn": "arn:aws:logs:us-east-1:111111111111:delivery-source:*"}
       }
   }
   ```

1. Se você estiver usando o AWS KMS para seu bucket, adicione a declaração a seguir à política de chave do KMS para conceder permissões à entidade principal do serviço `delivery.logs.amazonaws.com`.

   ```
   {
       "Sid": "Allow Logs Delivery to use the key",
       "Effect": "Allow",
       "Principal": {"Service": "delivery.logs.amazonaws.com"},
       "Action": [
           "kms:Encrypt",
           "kms:Decrypt",
           "kms:ReEncrypt*",
           "kms:GenerateDataKey*",
           "kms:DescribeKey"
       ],
       "Resource": "*",
       "Condition": {
           "StringEquals": {"aws:SourceAccount": "111111111111"},
           "ArnLike": {"aws:SourceArn": "arn:aws:logs:us-east-1:111111111111:delivery-source:*"}
       }
   }
   ```

### Configurar a conta de origem
<a name="steps-source-account"></a>

Depois de configurar a conta de destino, siga este procedimento para criar a origem de entrega e habilitar o registro em log para a distribuição na conta de origem.

**Como configurar a conta de origem**

1. Crie uma origem de entrega para o registro em log padrão do CloudFront para que possa enviar arquivos de log ao CloudWatch Logs. 

   Você pode inserir o comando da AWS CLI a seguir, substituindo o nome e o ARN da sua distribuição.

   ```
   aws logs put-delivery-source --name s3-cf-delivery --resource-arn arn:aws:cloudfront::111111111111:distribution/E1TR1RHV123ABC --log-type ACCESS_LOGS
   ```

   **Output**

   ```
   {
       "deliverySource": {
           "name": "s3-cf-delivery",
           "arn": "arn:aws:logs:us-east-1:111111111111:delivery-source:s3-cf-delivery",
           "resourceArns": ["arn:aws:cloudfront::111111111111:distribution/E1TR1RHV123ABC"],
           "service": "cloudfront",
           "logType": "ACCESS_LOGS"
       }
   }
   ```

1. Crie uma entrega para associar a origem de entrega de logs da conta de origem e o destino de entrega de logs da conta de destino.

   No comando da AWS CLI a seguir, especifique o ARN do destino de entrega com base na saída da [Etapa 1: configurar a conta de destino](#steps-destination-account).

   ```
   aws logs create-delivery --delivery-source-name s3-cf-delivery --delivery-destination-arn arn:aws:logs:us-east-1:222222222222:delivery-destination:cloudfront-delivery-destination
   ```

   **Output**

   ```
   {
       "delivery": {
           "id": "OPmOpLahVzhx1234",
           "arn": "arn:aws:logs:us-east-1:111111111111:delivery:OPmOpLahVzhx1234",
           "deliverySourceName": "s3-cf-delivery",
           "deliveryDestinationArn": "arn:aws:logs:us-east-1:222222222222:delivery-destination:cloudfront-delivery-destination",
           "deliveryDestinationType": "S3",
           "recordFields": [
               "date",
               "time",
               "x-edge-location",
               "sc-bytes",
               "c-ip",
               "cs-method",
               "cs(Host)",
               "cs-uri-stem",
               "sc-status",
               "cs(Referer)",
               "cs(User-Agent)",
               "cs-uri-query",
               "cs(Cookie)",
               "x-edge-result-type",
               "x-edge-request-id",
               "x-host-header",
               "cs-protocol",
               "cs-bytes",
               "time-taken",
               "x-forwarded-for",
               "ssl-protocol",
               "ssl-cipher",
               "x-edge-response-result-type",
               "cs-protocol-version",
               "fle-status",
               "fle-encrypted-fields",
               "c-port",
               "time-to-first-byte",
               "x-edge-detailed-result-type",
               "sc-content-type",
               "sc-content-len",
               "sc-range-start",
               "sc-range-end",
               "c-country",
               "cache-behavior-path-pattern"
           ],
           "fieldDelimiter": "\t"
       }
   }
   ```

1. Verifique se a entrega entre contas foi bem-sucedida.

   1. Na conta de *origem*, faça login no console do CloudFront e escolha sua distribuição. Na guia **Registro em log**, em **Tipo**, você verá uma entrada criada para a entrega de logs entre contas do S3.

   1. Na conta de *destino*, faça login no console do Amazon S3 e escolha seu bucket do Amazon S3. Você verá o prefixo `MyLogPrefix` no nome do bucket e quaisquer logs de acesso entregues a essa pasta. 

## Formato do arquivo de saída
<a name="supported-log-file-format"></a>

Dependendo do destino de entrega escolhido, você pode especificar um dos seguintes formatos para arquivos de log:
+ JSON
+ Plain
+ w3c
+ Bruto
+ Parquet (somente para o Amazon S3)

**nota**  
Você só pode definir o formato de saída quando cria o destino de entrega pela primeira vez. Isso não pode ser atualizado mais tarde. Para alterar o formato de saída, exclua a entrega e crie outra.

Para ter mais informações, consulte [PutDeliveryDestination](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestination.html) na *Referência de API do Amazon CloudWatch Logs*.

## Editar as configurações do registro em log padrão
<a name="standard-logs-v2-edit-settings"></a>

Você pode habilitar ou desabilitar o registro em log e atualizar outras configurações de log usando o [console do CloudFront](https://console.aws.amazon.com/cloudfront/v4/home) ou a API do CloudWatch. As alterações feitas nas configurações de registro são aplicadas em até 12 horas.

Para saber mais, consulte os seguintes tópicos:
+ Para atualizar uma distribuição usando o console do CloudFront, consulte [Atualizar uma distribuição](HowToUpdateDistribution.md).
+ Para atualizar uma distribuição usando a API do CloudFront, consulte [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html) na *Referência de API do Amazon CloudFront*.
+ Para ter mais informações sobre as operações de API do CloudWatch Logs, consulte a [Referência de API do Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/Welcome.html).

## Acessar campos de log
<a name="standard-logging-real-time-log-selection"></a>

Você pode selecionar os mesmos campos de registro em log que o registro em log padrão (legado) oferece. Consulte mais informações em [Campos de arquivo de log](standard-logs-reference.md#BasicDistributionFileFormat).

Além disso, você pode selecionar os [campos de log de acesso em tempo real](real-time-logs.md#understand-real-time-log-config) a seguir.

1. `timestamp(ms)`: carimbo de data/hora em milissegundos.

1. `origin-fbl`: o número de segundos de latência de primeiro byte entre o CloudFront e a origem. 

1. `origin-lbl`: o número de segundos de latência de último byte entre o CloudFront e a origem. 

1. `asn`: o número de sistema autônomo (ASN) do visualizador. 

1. `c-country`: um código de país que representa a localização geográfica do visualizador, conforme determinado pelo endereço IP do visualizador. Para obter uma lista de códigos de país, consulte [ISO 3166-1 alfa-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).

1. `cache-behavior-path-pattern`: o padrão do caminho que identifica o comportamento de cache que correspondeu à solicitação do visualizador. 

## Enviar logs ao CloudWatch Logs
<a name="send-logs-cloudwatch-logs"></a>

Para enviar logs ao Amazon CloudWatch Logs, crie ou use um grupo de logs existente do CloudWatch Logs. Para ter mais informações sobre grupos de logs do CloudWatch Logs, consulte [Working with Log Groups and Log Streams](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html).

Depois de criar o grupo de logs, você deve ter as permissões necessárias para autorizar o registro em log padrão. Para ter mais informações sobre o CloudWatch Logs, consulte [Logs sent to CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-V2-CloudWatchLogs) no *Guia do usuário do Amazon CloudWatch Logs*. 

**Observações**  
Ao especificar o nome do grupo de logs do CloudWatch Logs, use somente o padrão regex `[\w-]`. Para ter mais informações, consulte a operação de API [PutDeliveryDestination](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestination.html#API_PutDeliveryDestination_RequestSyntax) na *Referência de API do Amazon CloudWatch Logs*.
Verifique se a política de recursos do grupo de logs não excede o limite de tamanho. Consulte a seção [Log group resource policy size limit considerations](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-V2-CloudWatchLogs) no tópico CloudWatch Logs.

### Exemplo de log de acesso enviado ao CloudWatch Logs
<a name="example-access-logs-cwl"></a>

```
{ 
"date": "2024-11-14", 
"time": "21:34:06", 
"x-edge-location": "SOF50-P2", 
"asn": "16509", 
"timestamp(ms)": "1731620046814", 
"origin-fbl": "0.251", 
"origin-lbl": "0.251", 
"x-host-header": "d111111abcdef8.cloudfront.net", 
"cs(Cookie)": "examplecookie=value" 
}
```

## Enviar logs ao Firehose
<a name="send-logs-kinesis"></a>

Para enviar logs ao Firehose, crie ou use um fluxo de entrega existente do Firehose. Identifica um fluxo de entrega do Amazon Firehose como o destino da entrega de logs. Você deve especificar um fluxo de entrega do Firehose na região Leste dos EUA (Norte da Virgínia) (us-east-1).

Para obter mais informações sobre criar seu fluxo de entrega, consulte [Criar um fluxo de entrega do Amazon Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html). 

Depois de criar o fluxo de entrega, você deve ter as permissões necessárias para autorizar o registro em log padrão. Para ter mais informações, consulte [Logs sent do Firehose](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-V2-Firehose) no *Guia do usuário do Amazon CloudWatch Logs*.

**nota**  
Ao especificar o nome do fluxo do Firehose, use somente o padrão regex `[\w-]`. Para ter mais informações, consulte a operação de API [PutDeliveryDestination](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestination.html#API_PutDeliveryDestination_RequestSyntax) na *Referência de API do Amazon CloudWatch Logs*.

### Exemplo de log de acesso enviado ao Firehose
<a name="example-access-logs-firehose"></a>

```
{"date":"2024-11-15","time":"19:45:51","x-edge-location":"SOF50-P2","asn":"16509","timestamp(ms)":"1731699951183","origin-fbl":"0.254","origin-lbl":"0.254","x-host-header":"d111111abcdef8.cloudfront.net","cs(Cookie)":"examplecookie=value"}
{"date":"2024-11-15","time":"19:45:52","x-edge-location":"SOF50-P2","asn":"16509","timestamp(ms)":"1731699952950","origin-fbl":"0.125","origin-lbl":"0.125","x-host-header":"d111111abcdef8.cloudfront.net","cs(Cookie)":"examplecookie=value"}
```

## Enviar logs ao Amazon S3
<a name="send-logs-s3"></a>

Para enviar logs de acesso ao Amazon S3, crie ou use um bucket do S3 existente. Ao habilitar o registro em log no CloudFront, especifique o nome do bucket. Para ter informações sobre como criar um bucket, consulte [Criação de um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html), no *Guia do usuário do Amazon Simple Storage Service*.

Depois de criar o bucket, você deve ter as permissões necessárias para autorizar o registro em log padrão. Para obter mais informações, consulte [Logs enviados ao Amazon S3](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-V2-S3) no *Guia do usuário do Amazon CloudWatch Logs*.
+ Após a habilitação do registro em log, a AWS adiciona automaticamente as políticas de bucket necessárias para você.
+ Você também pode usar buckets S3 nas [Regiões da AWS habilitadas](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html).

**nota**  
Se você já habilitou o registro em log padrão (legado) e deseja habilitar o registro em log padrão (v2) no Amazon S3, recomendamos que especifique um bucket do Amazon S3 *diferente* ou use um *caminho separado* no mesmo bucket (por exemplo, use um prefixo de log ou particionamento). Isso ajuda a controlar quais arquivos de log são associados a qual distribuição e evita que um substitua o outro.

**Topics**
+ [

### Especificar um bucket do S3
](#prefix-s3-buckets)
+ [

### Particionamento
](#partitioning)
+ [

### Formato de nome de arquivo compatível com o Hive
](#hive-compatible-file-name-format)
+ [

### Exemplo de caminhos para acessar logs
](#bucket-path-examples)
+ [

### Exemplo de log de acesso enviado ao Amazon S3
](#example-access-logs-s3)

### Especificar um bucket do S3
<a name="prefix-s3-buckets"></a>

Ao especificar um bucket do S3 como destino de entrega, observe os fatores a seguir.

O nome do bucket do S3 só pode usar o padrão regex `[\w-]`. Para ter mais informações, consulte a operação de API [PutDeliveryDestination](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestination.html#API_PutDeliveryDestination_RequestSyntax) na *Referência de API do Amazon CloudWatch Logs*.

Se você especificou um prefixo para o bucket do S3, os logs aparecerão sob esse caminho. Se você não especificar um prefixo, o CloudFront anexará automaticamente o prefixo `AWSLogs/{account-id}/CloudFront` para você. 

Para obter mais informações, consulte [Exemplo de caminhos para acessar logs](#bucket-path-examples).

### Particionamento
<a name="partitioning"></a>

Você pode usar o particionamento para organizar os logs de acesso quando o CloudFront os envia ao bucket do S3. Isso ajuda você a organizar e localizar os logs de acesso com base no caminho que você deseja.

Você pode usar as variáveis a seguir para criar um caminho de pasta.
+ `{DistributionId}` ou `{distributionid}`
+ `{yyyy}`
+ `{MM}`
+ `{dd}`
+ `{HH}`
+ `{accountid}`

Você pode usar qualquer número de variáveis e especificar nomes de pasta em seu caminho. O CloudFront então usa esse caminho para criar uma estrutura de pastas para você no bucket do S3.

**Exemplos**
+ `my_distribution_log_data/{DistributionId}/logs`
+ `/cloudfront/{DistributionId}/my_distribution_log_data/{yyyy}/{MM}/{dd}/{HH}/logs `

**nota**  
 Você pode usar qualquer uma das variáveis para o ID da distribuição no caminho do sufixo. No entanto, se você estiver enviando logs de acesso ao AWS Glue, use a variável `{distributionid}` porque o AWS Glue supõe que os nomes de partição estejam em minúsculas. Atualize a configuração de log existente no CloudFront para substituir `{DistributionId}` por `{distributionid}`. 

### Formato de nome de arquivo compatível com o Hive
<a name="hive-compatible-file-name-format"></a>

Você pode usar essa opção para que os objetos do S3 que contêm logs de acesso entregues usem uma estrutura de prefixo que permita a integração com o Apache Hive. Para ter mais informações, consulte a operação de API [CreateDelivery](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateDelivery.html).

**Example Exemplo**  

```
/cloudfront/DistributionId={DistributionId}/my_distribution_log_data/year={yyyy}/month={MM}/day={dd}/hour={HH}/logs
```

Para ter mais informações sobre particionamento e as opções compatíveis com o Hive, consulte o elemento [S3DeliveryConfiguration](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_S3DeliveryConfiguration.html) na *Referência de API do Amazon CloudWatch Logs*.

### Exemplo de caminhos para acessar logs
<a name="bucket-path-examples"></a>

Ao especificar um bucket do S3 como destino, você pode usar as seguintes opções para criar o caminho para os logs de acesso:
+ Um bucket do Amazon S3, com ou sem prefixo
+ Particionamento, usando uma variável fornecida pelo CloudFront ou inserindo sua própria
+ Habilitar a opção compatível com o Hive

As tabelas a seguir mostram como os logs de acesso aparecem no bucket, dependendo das opções que você escolher.

#### Bucket do Amazon S3 com um prefixo
<a name="bucket-with-prefix"></a>


| Nome do bucket do Amazon S3 | Partição que você especifica no caminho do sufixo | Caminho de sufixo atualizado | Compatibilidade com o Hive habilitada? | Os logs de acesso são enviados para | 
| --- | --- | --- | --- | --- | 
| amzn-s3-demo-bucket/MyLogPrefix | Nenhum | Nenhum | Não | amzn-s3-demo-bucket/MyLogPrefix/ | 
| amzn-s3-demo-bucket/MyLogPrefix | myFolderA/ | myFolderA/ | Não | amzn-s3-demo-bucket/MyLogPrefix/myFolderA/ | 
| amzn-s3-demo-bucket/MyLogPrefix | myFolderA/\$1yyyy\$1 | myFolderA/\$1yyyy\$1 | Sim | amzn-s3-demo-bucket/MyLogPrefix/myFolderA/year=2025 | 

#### Bucket do Amazon S3 com um prefixo
<a name="bucket-without-prefix"></a>


| Nome do bucket do Amazon S3 | Partição que você especifica no caminho do sufixo | Caminho de sufixo atualizado | Compatibilidade com o Hive habilitada? | Os logs de acesso são enviados para | 
| --- | --- | --- | --- | --- | 
| amzn-s3-demo-bucket | Nenhum | AWSLogs/\$1account-id\$1/CloudFront/ | Não | amzn-s3-demo-bucket/AWSLogs/<your-account-ID>/CloudFront/ | 
| amzn-s3-demo-bucket | myFolderA/ | AWSLogs/\$1account-id\$1/CloudFront/myFolderA/ | Não | amzn-s3-demo-bucket/AWSLogs/<your-account-ID>/CloudFront/myFolderA/ | 
| amzn-s3-demo-bucket | myFolderA/ | AWSLogs/\$1account-id\$1/CloudFront/myFolderA/ | Sim | amzn-s3-demo-bucket/AWSLogs/aws-account-id=<your-account-ID>/CloudFront/myFolderA/ | 
| amzn-s3-demo-bucket | myFolderA/\$1yyyy\$1 | AWSLogs/\$1account-id\$1/CloudFront/myFolderA/\$1yyyy\$1 | Sim | amzn-s3-demo-bucket/AWSLogs/aws-account-id=<your-account-ID>/CloudFront/myFolderA/year=2025 | 

#### ID da Conta da AWS como uma partição
<a name="bucket-account-id-partition"></a>


| Nome do bucket do Amazon S3 | Partição que você especifica no caminho do sufixo | Caminho de sufixo atualizado | Compatibilidade com o Hive habilitada? | Os logs de acesso são enviados para | 
| --- | --- | --- | --- | --- | 
| amzn-s3-demo-bucket | Nenhum | AWSLogs/\$1account-id\$1/CloudFront/ | Sim | amzn-s3-demo-bucket/AWSLogs/aws-account-id=<your-account-ID>/CloudFront/ | 
| amzn-s3-demo-bucket | myFolderA/\$1accountid\$1 | AWSLogs/\$1account-id\$1/CloudFront/myFolderA/\$1accountid\$1 | Sim | amzn-s3-demo-bucket/AWSLogs/aws-account-id=<your-account-ID>/CloudFront/myFolderA/accountid=<your-account-ID> | 

**Observações**  
A variável `{account-id}` é reservada para o CloudFront. O CloudFront adiciona automaticamente essa variável ao caminho de sufixo se você especificar um bucket do Amazon S3 *sem* um prefixo. Se os logs forem compatíveis com o Hive, essa variável aparecerá como `aws-account-id`.
Você pode usar a variável `{accountid}` para que o CloudFront adicione o ID da sua conta ao caminho do sufixo. Se os logs forem compatíveis com o Hive, essa variável aparecerá como `accountid`.
Para ter mais informações sobre o caminho do sufixo, consulte [S3DeliveryConfiguration](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_S3DeliveryConfiguration.html).

### Exemplo de log de acesso enviado ao Amazon S3
<a name="example-access-logs-s3"></a>

```
#Fields: date time x-edge-location asn timestamp(ms) x-host-header cs(Cookie)
2024-11-14    22:30:25    SOF50-P2    16509    1731623425421    
d111111abcdef8.cloudfront.net    examplecookie=value2
```

## Desabilitar o registro em log padrão
<a name="delete-standard-log-destination"></a>

Você pode desabilitar o registro em log padrão da sua distribuição caso não precise mais dele.

**Como desabilitar o registro em log padrão**

1. Faça login no console do CloudFront.

1. Selecione **Distribuição** e escolha o ID de sua distribuição. 

1. Escolha **Registro em log** e, em **Destinos de log de acesso**, selecione o destino.

1. Selecione **Gerenciar** e, em seguida, **Excluir**.

1. Repita a etapa anterior se você tiver mais de um registro em log padrão.

**nota**  
Quando você exclui o registro em log padrão do console do CloudFront, essa ação exclui somente a entrega e o destino da entrega. Isso não exclui a origem de entrega da sua Conta da AWS. Para excluir uma origem de entrega, especifique o nome da origem de entrega no comando `aws logs delete-delivery-source --name DeliverySourceName`. Para ter mais informações, consulte [DeleteDeliverySource](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteDeliverySource.html) na *Referência de API do Amazon CloudWatch Logs*.

## Solução de problemas
<a name="troubleshooting-access-logs-v2"></a>

Use as informações a seguir para corrigir problemas comuns ao trabalhar com o registro em log padrão (v2) do CloudFront.

### A origem de entrega já existe
<a name="access-logging-resource-already-used"></a>

Ao habilitar o registro em log padrão para uma distribuição, você cria uma origem de entrega. Em seguida, você usa essa origem de entrega para criar entregas para o tipo de destino desejado: CloudWatch Logs, Firehose e Amazon S3. No momento, você só pode ter uma origem de entrega por distribuição. Se você tentar criar outra origem de entrega para a mesma distribuição, a mensagem de erro a seguir será exibida.

```
This ResourceId has already been used in another Delivery Source in this account
```

Para criar outra origem de entrega, exclua primeiro a existente. Para ter mais informações, consulte [DeleteDeliverySource](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteDeliverySource.html) na *Referência de API do Amazon CloudWatch Logs*.

### Alterei o caminho do sufixo e o bucket do Amazon S3 não pode receber meus logs
<a name="access-logging-s3-permission"></a>

Se você habilitou o registro em log padrão (v2) e especificou um ARN de bucket sem prefixo, o CloudFront anexará o seguinte padrão ao caminho do sufixo: `AWSLogs/{account-id}/CloudFront`. Se você usar o console do CloudFront ou a operação de API [UpdateDeliveryConfiguration](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_UpdateDeliveryConfiguration.html) para especificar um caminho de sufixo diferente, deverá atualizar a política de bucket do Amazon S3 para usar o mesmo caminho.

**Example Exemplo: atualização do caminho do sufixo**  

1. O caminho de sufixo padrão é `AWSLogs/{account-id}/CloudFront` e você o substitui por `myFolderA`. 

1. Como o novo caminho de sufixo é diferente do caminho especificado na política de bucket do Amazon S3, os logs de acesso não serão entregues.

1. Você pode seguir uma destas etapas:
   + Atualize a permissão do bucket do Amazon S3 de `amzn-s3-demo-bucket/AWSLogs/<your-account-ID>/CloudFront/*` para `amzn-s3-demo-bucket/myFolderA/*`.
   + Atualize a configuração de registro em log para usar o sufixo padrão novamente: `AWSLogs/{account-id}/CloudFront` 
Para obter mais informações, consulte [Permissões](#permissions-standard-logging).

## Excluir arquivos de log
<a name="standard-logs-v2-delete"></a>

O CloudFront não exclui automaticamente os arquivos de log do seu destino. Para ter informações sobre como excluir arquivos de log, consulte os seguintes tópicos:

**Amazon S3**
+ [Excluir objetos](https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeletingObjects.html) no *Guia de usuário do Amazon Simple Storage Service*

**CloudWatch Logs**
+ [Working with log groups and log streams](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html) no *Guia do usuário do Amazon CloudWatch Logs*
+ [DeleteLogGroup](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteLogGroup.html) na *Referência de API do Amazon CloudWatch Logs*

**Firehose**
+ [DeleteDeliveryStream](https://docs.aws.amazon.com/firehose/latest/APIReference/API_DeleteDeliveryStream.html) na *Referência de API do Amazon Data Firehose*

## Preços
<a name="pricing-standard-logs"></a>

O CloudFront não cobra pela habilitação de logs padrão. Entretanto, você pode incorrer em cobranças pela entrega, ingestão, armazenamento ou acesso, dependendo do destino de entrega de log selecionado. Para ter mais informações, consulte [Definição de preço do Amazon CloudWatch Logs](https://aws.amazon.com/cloudwatch/pricing/). Em **Nível pago**, escolha a guia **Logs** e, em **Logs fornecidos**, consulte as informações referentes a cada destino de entrega.

Para ter mais informações sobre o preço de cada AWS service (Serviço da AWS), consulte os seguintes tópicos:
+ [Definição de preço do Amazon CloudWatch Logs](https://aws.amazon.com/cloudwatch/pricing/)
+ [Definição de preço do Amazon Data Firehose](https://aws.amazon.com/kinesis/data-firehose/pricing/)
+ [Preços do Amazon S](https://aws.amazon.com/s3/pricing/) 
**nota**  
Não há cobranças adicionais pela entrega de logs para o Amazon S3, embora você incorra em cobranças do Amazon S3 pelo armazenamento e acesso aos arquivos de log. Se você habilitar a opção **Parquet** para converter os logs de acesso em Apache Parquet, essa opção incorrerá em cobranças do CloudWatch. Para ter mais informações, consulte a seção sobre logs fornecidos em [Definição de preço do Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing/).

# Configurar o registro em log padrão (legado)
<a name="standard-logging-legacy-s3"></a>

**Observações**  
Este tópico destina-se à versão anterior do registro em log padrão. Para obter a versão mais recente, consulte [Configurar o registro em log padrão (v2)](standard-logging.md).
Se você já habilitou o registro em log padrão (legado) e deseja habilitar o registro em log padrão (v2) no Amazon S3, recomendamos que especifique um bucket do Amazon S3 *diferente* ou use um *caminho separado* no mesmo bucket (por exemplo, use um prefixo de log ou particionamento). Isso ajuda a controlar quais arquivos de log são associados a qual distribuição e evita que um substitua o outro.

Para começar a usar o registro em log padrão (legado), conclua as seguintes etapas:

1. Escolha o bucket do Amazon S3 que receberá os logs e adicione as permissões necessárias.

1. Configure o registro em log padrão (legado) por meio do console ou da API do CloudFront. Você só pode escolher um bucket do Amazon S3 para receber os logs.

1. Visualize os logs de acesso.

## Escolher um bucket do Amazon S3 para logs padrão
<a name="access-logs-choosing-s3-bucket"></a>

Ao habilitar o registro de uma distribuição, você especifica o bucket do Amazon S3 no qual deseja que o CloudFront armazene os arquivos de log. Se você estiver usando o Amazon S3 como origem, recomendamos usar um bucket *separado* para os arquivos de log.

Especifique o bucket do Amazon S3 no qual você deseja que o CloudFront armazene logs de acesso; por exemplo, `amzn-s3-demo-bucket.s3.amazonaws.com`.

Você pode armazenar os arquivos de log de várias distribuições no mesmo bucket. Ao habilitar o registro, você pode especificar um prefixo opcional para os nomes dos arquivos, a fim de diferenciar quais arquivos de log são associados a quais distribuições.

**Como escolher um bucket do S3**  
O bucket deve ter a lista de controle de acesso (ACL) habilitada. Se você escolher um bucket sem a ACL habilitada no console do CloudFront, será exibida uma mensagem de erro. Consulte [Permissões](#AccessLogsBucketAndFileOwnership).
Não escolha um bucket do Amazon S3 com [Propriedade do objeto do S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) configurado como **imposto pelo proprietário do bucket**. Essa configuração desativa as ACLs para o bucket e os objetos nele contidos, o que impede que o CloudFront entregue arquivos de log para o bucket.[Registro em log padrão V2](standard-logging.md)[Regiões da AWS](https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-regions.html)

## Permissões
<a name="AccessLogsBucketAndFileOwnership"></a>

**Importante**  
A partir de abril de 2023, será necessário habilitar as ACLs do S3 para novos buckets do S3 usados para os logs padrão do CloudFront. É possível habilitar ACLs ao [criar um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-ownership-new-bucket.html) ou habilitar ACLs para um [bucket existente](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-ownership-existing-bucket.html).  
Para obter mais informações sobre as alterações, consulte [Perguntas frequentes sobre configurações padrão para novos buckets do S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-faq.html) no *Guia do usuário do Amazon Simple Storage Service* e em [Alerta: Alterações na segurança do Amazon S3 chegarão em abril de 2023](https://aws.amazon.com/blogs/aws/heads-up-amazon-s3-security-changes-are-coming-in-april-of-2023/) no *blog de notícias da AWS.*

Sua Conta da AWS deve ter as seguintes permissões para o bucket especificado para os arquivos de log:
+ A ACL do bucket deve conceder `FULL_CONTROL` a você. Se você for o proprietário do bucket, sua conta terá essa permissão por padrão. Em caso negativo, o proprietário do bucket deverá atualizar a ACL do bucket.
+ `s3:GetBucketAcl`
+ `s3:PutBucketAcl`

**ACL do bucket**  
Ao criar ou atualizar uma distribuição e habilitar o registro em log, o CloudFront usa essas permissões para atualizar a ACL do bucket a fim de fornecer à conta `awslogsdelivery` a permissão `FULL_CONTROL`. A conta `awslogsdelivery` grava arquivos de log no bucket. Caso sua conta não tenha as permissões necessárias para atualizar a ACL, ocorrerá uma falha na criação ou atualização da distribuição.  
Em alguns casos, se você enviar, de forma programática, uma solicitação para criar um bucket, mas já existir um bucket com o nome especificado, o S3 redefinirá as permissões do bucket para o valor padrão. Se você configurou o CloudFront para salvar os logs de acesso em um bucket do S3 e interromper o registro nesse bucket, verifique as permissões dele para garantir que o CloudFront tenha as permissões necessárias.

**Restauração da ACL do bucket**  
Se você remover as permissões da conta `awslogsdelivery`, o CloudFront não poderá salvar os logs no bucket do S3. Para permitir que o CloudFront comece a salvar logs para sua distribuição novamente, restaure a permissão da ACL de uma das seguintes maneiras:  
+ Desabilite o registro em log de sua distribuição no CloudFront e habilite-o novamente. Para obter mais informações, consulte [Registro em log padrão](DownloadDistValuesGeneral.md#DownloadDistValuesLoggingOnOff).
+ Adicione a permissão da ACL para `awslogsdelivery` manualmente navegando até o bucket do S3 no console do Amazon S3 e adicionando a permissão. Para adicionar a ACL para `awslogsdelivery`, você deve fornecer o ID canônico da conta, que é o seguinte:

  `c4c1ede66af53448b93c283ce9448c4ba468c9432aa01d700d3878632f77d2d0`

  

  Consulte mais informações sobre como adicionar ACLs a buckets do S3 em [Configurar ACLs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/managing-acls.html) no *Guia do usuário do Amazon Simple Storage Service*.

**ACL para cada arquivo de log**  
Além da ACL no bucket, há uma ACL em cada arquivo de log. O proprietário do bucket tem permissão `FULL_CONTROL` em cada arquivo de log, o proprietário da distribuição (se não for o proprietário do bucket) não tem permissão e a conta `awslogsdelivery` tem permissões de leitura e de gravação. 

**Como desabilitar o registro**  
Se você desabilitar o registro, o CloudFront não excluirá as ACLs do bucket nem dos arquivos de log. Você pode excluir as ACLs, se necessário.

### Política de chaves obrigatória para buckets do SSE-KMS
<a name="AccessLogsKMSPermissions"></a>

Se o bucket do S3 para os logs padrão usar criptografia do lado do servidor com AWS KMS keys (SSE-KMS) usando uma chave gerenciada pelo cliente, você deverá adicionar a instrução a seguir à política de chaves para a chave gerenciada pelo cliente. Isso permite que o CloudFront grave arquivos de log no bucket. Não é possível usar a SSE-KMS com a Chave gerenciada pela AWS porque o CloudFront não poderá gravar arquivos de log no bucket.

```
{
    "Sid": "Allow CloudFront to use the key to deliver logs",
    "Effect": "Allow",
    "Principal": {
        "Service": "delivery.logs.amazonaws.com"
    },
    "Action": "kms:GenerateDataKey*",
    "Resource": "*"
}
```

Se o bucket do S3 para os logs padrão usar SSE-KMS com uma [Chave de bucket do S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html), você também precisará adicionar a permissão `kms:Decrypt` à instrução da política. Nesse caso, a declaração de política completa se parece com a seguinte.

```
{
    "Sid": "Allow CloudFront to use the key to deliver logs",
    "Effect": "Allow",
    "Principal": {
        "Service": "delivery.logs.amazonaws.com"
    },
    "Action": [
        "kms:GenerateDataKey*",
        "kms:Decrypt"
    ],
    "Resource": "*"
}
```

**nota**  
Ao habilitar a SSE-KMS para o bucket do S3, especifique o ARN completo para a chave gerenciada pelo cliente. Consulte mais informações em [Especificando criptografia no lado do servidor com o AWS KMS keys (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/specifying-kms-encryption.html) no *Guia do usuário do Amazon Simple Storage Service*.

## Habilitar o registro em log padrão (legado)
<a name="standard-logs-legacy-enable"></a>

Para habilitar logs padrão, use o console ou a API do CloudFront.

**Contents**
+ [

### Habilitar o registro em log padrão (legado) (console do CloudFront)
](#standard-logs-legacy-enable-console)
+ [

### Habilitar o registro em log padrão (legado) (API do CloudFront)
](#standard-logs-legacy-enable-api)

### Habilitar o registro em log padrão (legado) (console do CloudFront)
<a name="standard-logs-legacy-enable-console"></a>

**Como habilitar logs padrão para uma distribuição do CloudFront (console)**

1. Use o console do CloudFront para criar uma [nova distribuição](distribution-web-creating-console.md) ou [atualizar uma existente](HowToUpdateDistribution.md#HowToUpdateDistributionProcedure).

1. Na seção **Registro em log padrão**, em **Entrega de logs**, escolha **Ativado**.

1. (Opcional) Em **Registro de cookie**, escolha **Ativado** se quiser incluir cookies nos logs. Para obter mais informações, consulte [Registro em log de cookies](DownloadDistValuesGeneral.md#DownloadDistValuesCookieLogging).
**dica**  
O registro em log de cookies é uma configuração global que se aplica a *todos *os logs padrão da sua distribuição. Você não pode substituir essa configuração para destinos de entrega separados.

1. Na seção **Entregar para**, especifique **Amazon S3 (legado)**.

1. Especifique o bucket do Amazon S3. Se você ainda não tiver um, pode escolher **Criar** ou ver a documentação para [criar um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html).

1. (Opcional) Em **Prefixo de log**, especifique a string, se houver, a ser prefixada pelo CloudFront nos nomes de arquivo de log de acesso para essa distribuição; por exemplo, `exampleprefix/`. A barra no final (/) é opcional, mas recomendada para simplificar a navegação em seus arquivos de log. Para obter mais informações, consulte [Prefixo de log](DownloadDistValuesGeneral.md#DownloadDistValuesLogPrefix).

1. Conclua as etapas para atualizar ou criar sua distribuição.

1. Na página **Logs**, verifique se o status dos logs padrão está **ativado** ao lado da distribuição.

   Para ter mais informações sobre a entrega do registro em log padrão e os campos de log, consulte [Referência do registro em log padrão](standard-logs-reference.md).

### Habilitar o registro em log padrão (legado) (API do CloudFront)
<a name="standard-logs-legacy-enable-api"></a>

Você também pode usar a API do CloudFront para habilitar o registro em log padrão para suas distribuições. 

**Como habilitar logs padrão para uma distribuição (API do CloudFront)**
+ Use a operação de API [CreateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html) ou [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html) e configure o objeto [LoggingConfig](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_LoggingConfig.html).

## Editar as configurações do registro em log padrão
<a name="ChangeSettings"></a>

Você pode habilitar ou desabilitar o registro, alterar o bucket do Amazon S3 no qual os logs são armazenados e alterar o prefixo dos arquivos de log usando o console ou a API do [CloudFront](https://console.aws.amazon.com/cloudfront/v4/home). As alterações feitas nas configurações de registro são aplicadas em até 12 horas.

Para obter mais informações, consulte os tópicos a seguir:
+ Para atualizar uma distribuição usando o console do CloudFront, consulte [Atualizar uma distribuição](HowToUpdateDistribution.md).
+ Para atualizar uma distribuição usando a API do CloudFront, consulte [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html) na *Referência de API do Amazon CloudFront*.

## Enviar logs ao Amazon S3
<a name="standard-logs-in-s3"></a>

Quando você envia logs ao Amazon S3, eles aparecem no formato a seguir.

### Formato do nome do arquivo
<a name="AccessLogsFileNaming"></a>

O nome de cada arquivo de log salvo pelo CloudFront no seu bucket do Amazon S3 usa o seguinte formato do nome do arquivo:

`<optional prefix>/<distribution ID>.YYYY-MM-DD-HH.unique-ID.gz`

A data e a hora estão em Tempo Universal Coordenado (UTC).

Por exemplo, se você usar `example-prefix` como prefixo e seu ID de distribuição for `EMLARXS9EXAMPLE`, seus nomes de arquivo serão semelhantes a este:

`example-prefix/EMLARXS9EXAMPLE.2019-11-14-20.RT4KCN4SGK9.gz`

Ao habilitar o registro para uma distribuição, você pode especificar um prefixo opcional para os nomes dos arquivos, a fim de diferenciar quais arquivos de log são associados a quais distribuições. Se você incluir um valor para o prefixo do arquivo de log e seu prefixo não terminar com uma barra (`/`), o CloudFront acrescentará uma automaticamente. Se o seu prefixo terminar com uma barra, o CloudFront não adicionará outra.

O `.gz` no fim do nome do arquivo indica que o CloudFront compactou o arquivo de log usando gzip.

## Formato de arquivo de log padrão
<a name="LogFileFormat"></a>

Cada entrada em um arquivo de log fornece detalhes sobre uma única solicitação do visualizador. Os arquivos de log têm as seguintes características:
+ Use o [formato do arquivo de log estendido do W3C](https://www.w3.org/TR/WD-logfile.html).
+ Contêm valores separados por tabulação.
+ Contêm registros não necessariamente em ordem cronológica.
+ Contém duas linhas de cabeçalho: uma com a versão do formato do arquivo e outra que relaciona os campos do W3C incluídos em cada registro.
+ Contém equivalentes codificados em URL para espaços e alguns outros caracteres em valores de campo.

  Equivalentes codificados em URL são usados para os seguintes caracteres:
  + Códigos de caracteres ASCII 0 a 32, inclusive
  + Códigos de caracteres ASCII 127 e posterior
  + Todos os caracteres na tabela a seguir

  O padrão de codificação de URL é definido no [RFC 1738](https://tools.ietf.org/html/rfc1738.html).


|  Valor codificado em URL  |  Caractere  | 
| --- | --- | 
|  %3C  |  <  | 
|  %3E  |  >  | 
|  %22  |  "  | 
|  %23  |  \$1  | 
|  %25  |  %  | 
|  %7B  |  \$1  | 
|  %7D  |  \$1  | 
|  %7C  |  \$1  | 
|  %5C  |  \$1  | 
|  %5E  |  ^  | 
|  %7E  |  \$1  | 
|  %5B  |  [  | 
|  %5D  |  ]  | 
|  %60  |  `  | 
|  %27  |  '  | 
|  %20  |  espaço  | 

## Excluir arquivos de log
<a name="DeletingLogFiles"></a>

O CloudFront não exclui automaticamente os arquivos de log do bucket do Amazon S3. Para ter informações sobre como excluir arquivos de log de um bucket do Amazon S3, consulte [Excluir objetos](https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeletingObjects.html) no *Guia do usuário do Amazon Simple Storage Service*.

## Preços
<a name="AccessLogsCharges"></a>

O registro em log padrão é um recurso opcional do CloudFront. O CloudFront não cobra pela habilitação de logs padrão. No entanto, você acumula as cobranças normais do Amazon S3 para armazenar e acessar os arquivos nele. É possível excluí-los a qualquer momento.

Para mais informações sobre a definição de preço do Amazon S3, consulte [Definição de preço do Amazon S3](https://aws.amazon.com/s3/pricing/).

Para mais informações sobre preços do CloudFront, consulte [Definição de preço do CloudFront](https://aws.amazon.com/cloudfront/pricing/).

# Referência do registro em log padrão
<a name="standard-logs-reference"></a>

As seções a seguir se aplicam tanto ao registro em log padrão (v2) quanto ao registro em log padrão (legado).

**Topics**
+ [

## Prazos de entrega dos arquivos de log
](#access-logs-timing)
+ [

## Como as solicitações são registradas em log quando os cabeçalhos ou o URL de solicitação excedem o tamanho máximo
](#access-logs-request-URL-size)
+ [

## Campos de arquivo de log
](#BasicDistributionFileFormat)
+ [

## Analisar logs
](#access-logs-analyzing)

## Prazos de entrega dos arquivos de log
<a name="access-logs-timing"></a>

O CloudFront oferece logs para uma distribuição até várias vezes por hora. Em geral, um arquivo de log contém informações sobre as solicitações recebidas pelo CloudFront durante um período específico. O CloudFront geralmente entrega o arquivo de log desse período ao seu destino em até uma hora após os eventos exibidos no log. No entanto, observe que algumas ou todas as entradas do arquivo de log referentes a um período podem demorar até 24 horas. Quando as entradas de log atrasam, o CloudFront as salva em um arquivo de log no qual o nome do arquivo inclui a data e a hora do período de *ocorrência* das solicitações, não de entrega do arquivo.

Ao criar um arquivo de log, o CloudFront consolida as informações da sua distribuição de todos os pontos de presença que receberam solicitações de seus objetos durante o período de cobertura do arquivo de log.

O CloudFront pode salvar mais de um arquivo por período, dependendo da quantidade de solicitações recebidas pelo CloudFront dos objetos associados a uma distribuição.

O CloudFront começa a entregar os logs de acesso cerca de quatro horas depois de você habilitar o registro. É possível que você receba alguns logs de acesso antes disso.

**nota**  
Se nenhum usuário solicitar seus objetos nesse período, você não receberá arquivos de log referentes a ele.

## Como as solicitações são registradas em log quando os cabeçalhos ou o URL de solicitação excedem o tamanho máximo
<a name="access-logs-request-URL-size"></a>

Se o tamanho total de todos os cabeçalhos de solicitação, incluindo cookies, exceder 20 KB, ou se o URL exceder 8192 bytes, o CloudFront não poderá analisar a solicitação completamente e não poderá registrá-la. Como a solicitação não está conectada, você não verá no log os arquivos que o código de status de erro HTTP retornou.

Se o corpo da solicitação exceder o tamanho máximo, a solicitação será registrada, incluindo o código de status de erro HTTP.

## Campos de arquivo de log
<a name="BasicDistributionFileFormat"></a>

O arquivo de log para uma distribuição contém 33 campos. A lista a seguir contém cada nome de campo, em ordem, juntamente com uma descrição das informações nesse campo.

1. **`date`**

   A data em que o evento ocorreu no formato `YYYY-MM-DD`. Por exemplo, `2019-06-30`. A data e a hora estão em Tempo Universal Coordenado (UTC). Para conexões WebSockets, esta é a data em que a conexão foi encerrada.

1. **`time`**

   A hora em que o servidor do CloudFront terminou de responder à solicitação (em UTC), por exemplo, `01:42:39`. Para conexões WebSockets, este é o momento em que a conexão é fechada.

1. **`x-edge-location`**

   O ponto de presença que atendeu à solicitação. Cada ponto de presença é identificado por um código de três letras e um número atribuído arbitrariamente (por exemplo, DFW3). O código de três letras normalmente corresponde ao código da Associação Internacional de Transportes Aéreos (IATA) de um aeroporto perto da localização geográfica do local da borda. (Essas abreviações podem mudar no futuro.)

1. **`sc-bytes`**

   O número total de bytes enviados pelo servidor para o visualizador em resposta à solicitação, inclusive os cabeçalhos. Para conexões WebSocket e gRPC, esse é o número total de bytes enviados do servidor para o cliente por meio da conexão.

1. **`c-ip`**

   O endereço IP do visualizador que fez a solicitação, por exemplo, `192.0.2.183` ou `2001:0db8:85a3::8a2e:0370:7334`. Se o visualizador usar um proxy HTTP ou um load balancer para enviar a solicitação, o valor desse campo será o endereço IP do proxy ou do load balancer. Veja também o campo `x-forwarded-for`.

1. **`cs-method`**

   O método de solicitação HTTP recebido do visualizador.

1. **`cs(Host)`**

   O nome de domínio da distribuição do CloudFront (por exemplo, d111111abcdef8.cloudfront.net).

1. **`cs-uri-stem`**

   A parte do URL da solicitação que identifica o caminho e o objeto (por exemplo, `/images/cat.jpg`). Os pontos de interrogação (?) em URLs e strings de consulta não são incluídos no log.

1. **`sc-status`**

   Contém um dos seguintes valores:
   + O código de status HTTP da resposta do servidor (por exemplo, `200`).
   + `000`, que indica que o visualizador fechou a conexão antes que o servidor pudesse responder à solicitação. Se o visualizador fecha a conexão após o servidor começar a enviar a resposta, esse campo contém o código de status HTTP da resposta que o servidor começou a enviar.

1. **`cs(Referer)`**

   O valor do cabeçalho `Referer` na solicitação. Esse é o nome do domínio que originou a solicitação. Indicadores comuns incluem: mecanismos de pesquisa, outros sites vinculados diretamente aos seus objetos e seu próprio site.

1. **`cs(User-Agent)`**

   O valor do cabeçalho `User-Agent` na solicitação. O cabeçalho `User-Agent` identifica a origem da solicitação, como o tipo de dispositivo e o navegador que enviou a solicitação e, se a solicitação for proveniente de um mecanismo de pesquisa, o mecanismo de pesquisa.

1. **`cs-uri-query`**

   A parte da string de consulta do URL da solicitação, se houver.

   Quando um URL não contém uma string de consulta, o valor desse campo é um hífen (-). Para obter mais informações, consulte [Conteúdo em cache com base em parâmetros de string de consulta](QueryStringParameters.md).

1. **`cs(Cookie)`**

   O cabeçalho `Cookie` na solicitação, incluindo pares de nome-valor e os atributos associados.

   Se você habilitar o registro de cookies, o CloudFront os registrará em todas as solicitações, independentemente de quais você optar por encaminhar para a origem. Quando uma solicitação não inclui um cabeçalho de cookie, o valor desse campo é um hífen (-). Para obter mais informações sobre cookies, consulte [Conteúdo em cache com base em cookies](Cookies.md).

1. **`x-edge-result-type`**

   Como o servidor classificou a resposta após o último byte sair do servidor. Em alguns casos, o tipo de resultado pode mudar entre a hora em que o servidor está pronto para enviar a resposta e a hora em que ele conclui o envio. Veja também o campo `x-edge-response-result-type`.

   Por exemplo, em streaming HTTP, suponha que o servidor encontre um segmento do stream no cache. Nesse cenário, o valor desse campo normalmente seria `Hit`. No entanto, se o visualizador encerrar a conexão antes de o servidor entregar o segmento inteiro, o tipo do resultado final (e, portanto, o valor desse campo) será `Error`.

   As conexões WebSocket e gRPC terão um valor de `Miss` para esse campo porque o conteúdo não é armazenável em cache e é enviado diretamente de volta ao servidor de origem.

   Os possíveis valores incluem:
   + `Hit`: o servidor forneceu o objeto do cache ao visualizador.
   + `RefreshHit`: o servidor encontrou o objeto no cache, mas o objeto expirou, portanto, o servidor entrou em contato com a origem para verificar se o cache tinha a versão mais recente do objeto.
   + `Miss`: não foi possível atender à solicitação por um objeto no cache e, portanto, o servidor a encaminhou ao servidor de origem e retornou o resultado ao visualizador.
   + `LimitExceeded`: a solicitação foi negada porque uma cota do CloudFront (anteriormente conhecida como limite) foi excedida.
   + `CapacityExceeded`: o servidor retornou um código de status HTTP 503 porque não tinha capacidade suficiente no momento da solicitação para fornecer o objeto.
   + `Error`: normalmente, isso significa que a solicitação resultou em um erro de cliente (o valor do campo `sc-status` está no intervalo `4xx`) ou em um erro de servidor (o valor do campo `sc-status` está no intervalo `5xx`). Se o valor do campo `sc-status` for `200` ou se o valor desse campo for `Error` e o valor do campo `x-edge-response-result-type` não for `Error`, isso significa que a solicitação HTTP foi bem-sucedida, mas o cliente desconectou antes de receber todos os bytes.
   + `Redirect`: o servidor redirecionou o visualizador de HTTP para HTTPS de acordo com as configurações de distribuição.
   + `LambdaExecutionError`: a função Lambda@Edge associada à distribuição não foi concluída devido a uma má-formação da associação, um tempo limite de função, um problema de dependência da AWS ou outro problema de disponibilidade geral.

1. **`x-edge-request-id`**

   Uma string opaca que identifica exclusivamente uma solicitação. O CloudFront também envia essa string no cabeçalho de resposta `x-amz-cf-id`.

1. **`x-host-header`**

   O valor incluído pelo visualizador no cabeçalho `Host` da solicitação. Se você estiver usando o nome de domínio do CloudFront nos URLs de objetos (como d111111abcdef8.cloudfront.net), esse campo conterá esse nome de domínio. Se você estiver usando nomes de domínio alternativos (CNAMES) nos URLs de objetos (como www.example.com), esse campo conterá o nome de domínio alternativo.

   Se você estiver usando nomes de domínio alternativos, consulte `cs(Host)` no campo 7 do nome de domínio associado a sua distribuição.

1. **`cs-protocol`**

   O protocolo da solicitação do visualizador (`http`, `https`, `grpcs`, `ws` ou `wss`).

1. **`cs-bytes`**

   O número de bytes de dados que o visualizador adicionou à solicitação, incluindo cabeçalhos. Para conexões WebSocket e gRPC, esse é o número total de bytes enviados do cliente para o servidor na conexão.

1. **`time-taken`**

   O número de segundos (até o milésimo de segundo, por exemplo, 0,082) de quando o servidor recebe a solicitação do visualizador até quando o servidor grava o último byte da resposta na fila de saída, conforme medido no servidor. Da perspectiva do visualizador, o tempo total para obter o objeto completo será mais longo que esse valor devido à latência da rede e o armazenamento em buffer do TCP.

1. **`x-forwarded-for`**

   Se o visualizador usar um proxy HTTP ou um load balancer para enviar a solicitação, o valor do campo `c-ip` será o endereço IP do proxy ou do load balancer. Nesse caso, esse campo é o endereço IP do visualizador que originou a solicitação. Esse campo pode conter vários endereços IP separados por vírgula. Cada endereço IP pode ser um endereço IPv4 (por exemplo, `192.0.2.183`) ou um endereço IPv6 (por exemplo, `2001:0db8:85a3::8a2e:0370:7334`).

   Se o visualizador não tiver usado um proxy HTTP ou um load balancer, o valor deste campo será um hífen (-).

1. **`ssl-protocol`**

   Quando a solicitação usa HTTPS, esse campo contém o protocolo SSL/TLS que o visualizador e o servidor negociaram para transmitir a solicitação e a resposta. Para obter uma lista de valores possíveis, consulte os protocolos SSL/TLS compatíveis em [Protocolos e cifras compatíveis entre visualizadores e o CloudFront](secure-connections-supported-viewer-protocols-ciphers.md).

   Quando `cs-protocol` no campo 17 for `http`, o valor desse campo será um hífen (-).

1. **`ssl-cipher`**

   Quando a solicitação usa HTTPS, esse campo contém a cifra SSL/TLS que o visualizador e o servidor negociaram para criptografar a solicitação e a resposta. Para obter uma lista de valores possíveis, consulte as cifras SSL/TLS compatíveis em [Protocolos e cifras compatíveis entre visualizadores e o CloudFront](secure-connections-supported-viewer-protocols-ciphers.md).

   Quando `cs-protocol` no campo 17 for `http`, o valor desse campo será um hífen (-).

1. **`x-edge-response-result-type`**

   Como o servidor classificou a resposta logo antes de devolvê-la para o visualizador. Veja também o campo `x-edge-result-type`. Os possíveis valores incluem:
   + `Hit`: o servidor forneceu o objeto do cache ao visualizador.
   + `RefreshHit`: o servidor encontrou o objeto no cache, mas o objeto expirou, portanto, o servidor entrou em contato com a origem para verificar se o cache tinha a versão mais recente do objeto.
   + `Miss`: não foi possível atender à solicitação por um objeto no cache, portanto, o servidor a encaminhou ao servidor de origem e retornou o resultado ao visualizador.
   + `LimitExceeded`: a solicitação foi negada porque uma cota do CloudFront (anteriormente conhecida como limite) foi excedida.
   + `CapacityExceeded`: o servidor retornou um erro 503 porque não tinha capacidade suficiente no momento da solicitação para fornecer o objeto.
   + `Error`: normalmente, isso significa que a solicitação resultou em um erro de cliente (o valor do campo `sc-status` está no intervalo `4xx`) ou em um erro de servidor (o valor do campo `sc-status` está no intervalo `5xx`).

     Se o valor do campo `x-edge-result-type` for `Error` e o valor desse campo não for `Error`, o cliente desconectou antes de concluir o download.
   + `Redirect`: o servidor redirecionou o visualizador de HTTP para HTTPS de acordo com as configurações de distribuição.
   + `LambdaExecutionError`: a função Lambda@Edge associada à distribuição não foi concluída devido a uma má-formação da associação, um tempo limite de função, um problema de dependência da AWS ou outro problema de disponibilidade geral.

1. **`cs-protocol-version`**

   A versão HTTP especificada pelo visualizador na solicitação. Os valores possíveis incluem `HTTP/0.9`, `HTTP/1.0`, `HTTP/1.1`, `HTTP/2.0` e `HTTP/3.0`.

1. **`fle-status`**

   Quando a [criptografia em nível de campo](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html) é configurada para uma distribuição, esse campo contém um código que indica se o corpo da solicitação foi processado com êxito. Quando o servidor processa o corpo da solicitação, criptografa os valores nos campos especificados e encaminha a solicitação para a origem com êxito, o valor desse campo é `Processed`. Nesse caso, o valor de `x-edge-result-type` pode indicar um erro do lado do cliente ou do lado do servidor.

   Os valores possíveis para esse campo incluem:
   + `ForwardedByContentType`: o servidor encaminhou a solicitação para a origem sem análise nem criptografia, pois nenhum tipo de conteúdo foi configurado.
   + `ForwardedByQueryArgs`: o servidor encaminhou a solicitação para a origem sem análise nem criptografia, pois a solicitação contém um argumento de consulta que não foi configurado para a criptografia em nível de campo.
   + `ForwardedDueToNoProfile`: o servidor encaminhou a solicitação para a origem sem análise nem criptografia, pois nenhum perfil foi especificado na configuração da criptografia em nível de campo.
   + `MalformedContentTypeClientError`: o servidor rejeitou a solicitação e retornou o código de status HTTP 400 para o visualizador, pois o valor do cabeçalho `Content-Type` estava em um formato inválido.
   + `MalformedInputClientError`: o servidor rejeitou a solicitação e retornou o código de status HTTP 400 para o visualizador, pois o corpo da solicitação estava em um formato inválido.
   + `MalformedQueryArgsClientError`: o servidor rejeitou a solicitação e retornou o código de status HTTP 400 para o visualizador, pois um argumento de consulta estava vazio ou em um formato inválido.
   + `RejectedByContentType`: o servidor rejeitou a solicitação e retornou o código de status HTTP 400 para o visualizador, pois nenhum tipo de conteúdo foi especificado na configuração para criptografia em nível de campo.
   + `RejectedByQueryArgs`: o servidor rejeitou a solicitação e retornou o código de status HTTP 400 para o visualizador, pois nenhum argumento de consulta foi especificado na configuração para criptografia em nível de campo.
   + `ServerError`: o servidor de origem retornou um erro.

   Se a solicitação exceder uma cota de criptografia em nível de campo (anteriormente conhecida como limite), esse campo conterá um dos seguintes códigos de erro, e o servidor retornará o código de status HTTP 400 ao visualizador. Para obter uma lista das cotas atuais de criptografia no nível de campo, consulte [Cotas para criptografia no nível de campo](cloudfront-limits.md#limits-field-level-encryption).
   + `FieldLengthLimitClientError`: um campo configurado para ser criptografado excedeu o tamanho máximo permitido.
   + `FieldNumberLimitClientError`: uma solicitação que a distribuição está configurada para criptografar contém o número de campos maior do que o permitido.
   + `RequestLengthLimitClientError`: o tamanho do corpo da solicitação excedeu o tamanho máximo permitido quando a criptografia no nível de campo foi configurada.

   Se a criptografia no nível de campo não estiver configurada para a distribuição, o valor desse campo será um hífen (-).

1. **`fle-encrypted-fields`**

   O número de campos de [criptografia em nível de campo](field-level-encryption.md) que o servidor de borda criptografou e encaminhou para a origem. Os servidores do CloudFront fazem streaming da solicitação processada para a origem à medida que criptografam dados, portanto, esse campo pode ter um valor, mesmo que o valor de `fle-status` seja um erro.

   Se a criptografia no nível de campo não estiver configurada para a distribuição, o valor desse campo será um hífen (-).

1. **`c-port`**

   O número da porta da solicitação do visualizador.

1. **`time-to-first-byte`**

   O número de segundos entre o recebimento da solicitação e a gravação do primeiro byte da resposta, conforme medido no servidor.

1. **`x-edge-detailed-result-type`**

   Esse campo conterá o mesmo valor que o campo `x-edge-result-type`, exceto nos seguintes casos:
   + Quando o objeto for enviado ao visualizador do cache da camada [Origin Shield](origin-shield.md), esse campo conterá `OriginShieldHit`.
   + Quando o objeto não estiver no cache do CloudFront e a resposta for gerada por uma [função Lambda@Edge de solicitação de origem](lambda-at-the-edge.md), esse campo conterá `MissGeneratedResponse`.
   + Quando o valor do campo `x-edge-result-type` for `Error`, esse campo conterá um dos seguintes valores com mais informações sobre o erro:
     + `AbortedOrigin`: o servidor encontrou um problema com a origem.
     + `ClientCommError`: a resposta ao visualizador foi interrompida devido a um problema de comunicação entre o servidor e o visualizador.
     + `ClientGeoBlocked`: a distribuição é configurada para recusar solicitações da localização geográfica do visualizador.
     + `ClientHungUpRequest` – o visualizador parou prematuramente ao enviar a solicitação.
     + `Error`: ocorreu um erro para o qual o tipo de erro não se encaixa em nenhuma das outras categorias. Esse tipo de erro pode ocorrer quando o servidor fornece uma resposta de erro do cache.
     + `InvalidRequest`: o servidor recebeu uma solicitação inválida do visualizador.
     + `InvalidRequestBlocked` – o acesso ao recurso solicitado é bloqueado.
     + `InvalidRequestCertificate`: a distribuição não corresponde ao certificado SSL/TLS para o qual a conexão HTTPS foi estabelecida.
     + `InvalidRequestHeader`: a solicitação continha um cabeçalho inválido.
     + `InvalidRequestMethod` – a distribuição não está configurada para lidar com o método de solicitação HTTP que foi usado. Isso pode acontecer quando a distribuição oferece suporte somente a solicitações armazenáveis em cache.
     + `OriginCommError`: a solicitação expirou durante a conexão à origem ou a leitura de dados da origem.
     + `OriginConnectError`: o servidor não pôde se conectar à origem.
     + `OriginContentRangeLengthError`: o cabeçalho `Content-Length` na resposta da origem não corresponde ao tamanho no cabeçalho `Content-Range`.
     + `OriginDnsError`: o servidor não pôde resolver o nome de domínio da origem.
     + `OriginError` – a origem retornou uma resposta incorreta.
     + `OriginHeaderTooBigError`: um cabeçalho retornado pela origem é muito grande para o processamento pelo servidor de borda.
     + `OriginInvalidResponseError` – a origem retornou uma resposta inválida.
     + `OriginReadError`: o servidor não pôde ler na origem.
     + `OriginWriteError`: o servidor não pôde gravar na origem.
     + `OriginZeroSizeObjectError` – um objeto de tamanho zero enviado da origem resultou em um erro.
     + `SlowReaderOriginError` – o visualizador ficou lento ao ler a mensagem que causou o erro de origem.

1. **`sc-content-type`**

   O valor do cabeçalho do HTTP `Content-Type` da resposta.

1. **`sc-content-len`**

   O valor do cabeçalho do HTTP `Content-Length` da resposta.

1. **`sc-range-start`**

   Quando a resposta contém o cabeçalho do HTTP `Content-Range`, esse campo contém o valor inicial do intervalo.

1. **`sc-range-end`**

   Quando a resposta contém o cabeçalho do HTTP `Content-Range`, esse campo contém o valor final do intervalo.

1. **`distribution-tenant-id`**

   O ID do locatário da distribuição.

1. **`connection-id`**

   Um identificador exclusivo para a conexão TLS. 

   Para receber informações para esse campo, primeiro é necessário habilitar a mTLS para suas distribuições. Para obter mais informações, consulte [Autenticação TLS mútua com o CloudFront (mTLS de visualizador)TLS mútua de origem com o CloudFront](mtls-authentication.md).

   

Veja a seguir um exemplo de arquivo de log para uma distribuição.

```
#Version: 1.0
#Fields: date time x-edge-location sc-bytes c-ip cs-method cs(Host) cs-uri-stem sc-status cs(Referer) cs(User-Agent) cs-uri-query cs(Cookie) x-edge-result-type x-edge-request-id x-host-header cs-protocol cs-bytes time-taken x-forwarded-for ssl-protocol ssl-cipher x-edge-response-result-type cs-protocol-version fle-status fle-encrypted-fields c-port time-to-first-byte x-edge-detailed-result-type sc-content-type sc-content-len sc-range-start sc-range-end
2019-12-04	21:02:31	LAX1	392	192.0.2.100	GET	d111111abcdef8.cloudfront.net	/index.html	200	-	Mozilla/5.0%20(Windows%20NT%2010.0;%20Win64;%20x64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/78.0.3904.108%20Safari/537.36	-	-	Hit	SOX4xwn4XV6Q4rgb7XiVGOHms_BGlTAC4KyHmureZmBNrjGdRLiNIQ==	d111111abcdef8.cloudfront.net	https	23	0.001	-	TLSv1.2	ECDHE-RSA-AES128-GCM-SHA256	Hit	HTTP/2.0	-	-	11040	0.001	Hit	text/html	78	-	-
2019-12-04	21:02:31	LAX1	392	192.0.2.100	GET	d111111abcdef8.cloudfront.net	/index.html	200	-	Mozilla/5.0%20(Windows%20NT%2010.0;%20Win64;%20x64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/78.0.3904.108%20Safari/537.36	-	-	Hit	k6WGMNkEzR5BEM_SaF47gjtX9zBDO2m349OY2an0QPEaUum1ZOLrow==	d111111abcdef8.cloudfront.net	https	23	0.000	-	TLSv1.2	ECDHE-RSA-AES128-GCM-SHA256	Hit	HTTP/2.0	-	-	11040	0.000	Hit	text/html	78	-	-
2019-12-04	21:02:31	LAX1	392	192.0.2.100	GET	d111111abcdef8.cloudfront.net	/index.html	200	-	Mozilla/5.0%20(Windows%20NT%2010.0;%20Win64;%20x64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/78.0.3904.108%20Safari/537.36	-	-	Hit	f37nTMVvnKvV2ZSvEsivup_c2kZ7VXzYdjC-GUQZ5qNs-89BlWazbw==	d111111abcdef8.cloudfront.net	https	23	0.001	-	TLSv1.2	ECDHE-RSA-AES128-GCM-SHA256	Hit	HTTP/2.0	-	-	11040	0.001	Hit	text/html	78	-	-	
2019-12-13	22:36:27	SEA19-C1	900	192.0.2.200	GET	d111111abcdef8.cloudfront.net	/favicon.ico	502	http://www.example.com/	Mozilla/5.0%20(Windows%20NT%2010.0;%20Win64;%20x64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/78.0.3904.108%20Safari/537.36	-	-	Error	1pkpNfBQ39sYMnjjUQjmH2w1wdJnbHYTbag21o_3OfcQgPzdL2RSSQ==	www.example.com	http	675	0.102	-	-	-	Error	HTTP/1.1	-	-	25260	0.102	OriginDnsError	text/html	507	-	-
2019-12-13	22:36:26	SEA19-C1	900	192.0.2.200	GET	d111111abcdef8.cloudfront.net	/	502	-	Mozilla/5.0%20(Windows%20NT%2010.0;%20Win64;%20x64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/78.0.3904.108%20Safari/537.36	-	-	Error	3AqrZGCnF_g0-5KOvfA7c9XLcf4YGvMFSeFdIetR1N_2y8jSis8Zxg==	www.example.com	http	735	0.107	-	-	-	Error	HTTP/1.1	-	-	3802	0.107	OriginDnsError	text/html	507	-	-
2019-12-13	22:37:02	SEA19-C2	900	192.0.2.200	GET	d111111abcdef8.cloudfront.net	/	502	-	curl/7.55.1	-	-	Error	kBkDzGnceVtWHqSCqBUqtA_cEs2T3tFUBbnBNkB9El_uVRhHgcZfcw==	www.example.com	http	387	0.103	-	-	-	Error	HTTP/1.1	-	-	12644	0.103	OriginDnsError	text/html	507	-	-
```

## Analisar logs
<a name="access-logs-analyzing"></a>

Como você pode receber vários logs de acesso por hora, recomendamos que combine todos os arquivos de log recebidos em um determinado período em um único arquivo. Assim você poderá analisar os dados desse período de forma mais precisa e completa.

Uma forma de analisar seus logs de acesso é usar o [Amazon Athena](https://aws.amazon.com/athena/). O Athena é um serviço de consulta interativo que pode ajudar você a analisar dados de serviços da AWS, incluindo o CloudFront. Para saber mais, consulte [ Consultar logs do Amazon CloudFront](https://docs.aws.amazon.com/athena/latest/ug/cloudfront-logs.html) no *Guia do usuário do Amazon Athena*.

Além disso, as seguintes postagens de blog da AWS discutem algumas maneiras de analisar os logs de acesso.
+ [ Registro em log de solicitações do Amazon CloudFront](https://aws.amazon.com/blogs/aws/amazon-cloudfront-request-logging/) (para conteúdo distribuído via HTTP)
+ [ Logs avançados do CloudFront, agora com strings de consulta](https://aws.amazon.com/blogs/aws/enhanced-cloudfront-logs-now-with-query-strings/)