

# Formato de log no CloudWatch Logs
<a name="sal-cw-log-format"></a>

Quando os logs de acesso ao servidor do Amazon S3 são entregues ao Amazon CloudWatch Logs, cada registro de log é um objeto JSON estruturado. Isso é diferente do formato de texto delimitado por espaço usado para entrega em um bucket de uso geral do Amazon S3. O formato estruturado torna os campos diretamente consultáveis no CloudWatch Logs Insights sem análise de regex.

**nota**  
Para o formato de texto delimitado por espaço usado para entrega em buckets de uso geral, consulte [Formato dos logs de acesso ao servidor do Amazon S3](LogFormat.md).

## Campos de registro de log
<a name="sal-cw-log-record-fields"></a>

A tabela a seguir descreve os campos em cada registro de log de acesso ao servidor entregue ao CloudWatch Logs.


**Campos de log de acesso ao servidor no CloudWatch Logs**  

| Campo | Tipo | Descrição | 
| --- | --- | --- | 
| schema\_version\_id | string | Identificador de versão para o esquema de registro de log (por exemplo, V\_1\_0). Use esse campo para detectar alterações no esquema quando novos campos forem adicionados em versões futuras. | 
| bucket\_arn | string | ARN do bucket de origem. | 
| bucket\_name | string | Nome do bucket para o qual a solicitação foi feita. Derivado do ARN do bucket. | 
| request\_time | string | A hora em que a solicitação foi recebida, em UTC. Formatado como ISO 8601 (yyyy-MM-dd'T'HH:mm:ss.SSS'Z'). Na integração das Tabelas do S3 (Iceberg), esse campo é armazenado como timestamptz. | 
| bucket\_owner\_id | string | ID canônico do usuário do proprietário do bucket de origem. | 
| remote\_ip | string | Endereço IP aparente do solicitante. O padrão é null se não estiver disponível. | 
| requester | string | ID canônico do usuário do solicitante ou um null para solicitações não autenticadas. Para usuários e perfis do IAM, esse é o ARN. | 
| request\_id | string | Identificador exclusivo gerado pelo Amazon S3 para cada solicitação. O padrão é null se não estiver disponível. | 
| operation | string | A operação executada, por exemplo, REST.GET.OBJECT ou REST.PUT.OBJECT. O padrão é null se não estiver disponível. | 
| key\_name | string | Chave do objeto na solicitação ou null se a operação não envolver um objeto. | 
| request\_uri | string | A parte Request-URI da mensagem de solicitação HTTP ou null se não estiver disponível. | 
| http\_status | int | Código de status HTTP numérico para a resposta, por exemplo, 200 ou 403. O padrão é null se não estiver disponível. | 
| error\_code | string | Código de erro do Amazon S3, por exemplo, NoSuchKey, AccessDenied ou null se nenhum erro tiver ocorrido. | 
| bytes\_sent\_size | longo | Número de bytes de resposta enviados, excluindo a sobrecarga do protocolo HTTP. O padrão é null se não estiver disponível. | 
| object\_size | longo | Tamanho total do objeto. O padrão é null se não estiver disponível. | 
| total\_duration | longo | Tempo total da solicitação do momento em que ela foi recebida até o último byte da resposta enviada, em milissegundos. O padrão é null se não estiver disponível. | 
| turn\_around\_duration | longo | Tempo que o Amazon S3 gastou processando a solicitação, em milissegundos. Esse valor é medido do momento do recebimento do último byte da solicitação até o momento em que o primeiro byte da resposta foi enviado. O padrão é null se não estiver disponível. | 
| referer | string | Valor do cabeçalho Referer do HTTP ou null se não estiver presente. | 
| user\_agent | string | Valor do cabeçalho User-Agent do HTTP. O padrão é null se não estiver disponível. | 
| version\_id | string | ID da versão na solicitação ou null se a operação não envolver um objeto com versão. | 
| host\_id | string | ID de solicitação estendida do Amazon S3 (x-amz-id-2). O padrão é null se não estiver disponível. | 
| signature\_version | string | Versão de assinatura usada para autenticar a solicitação: SigV2 ou SigV4. O padrão é null para solicitações não autenticadas. | 
| cipher\_suite | string | Conjunto de criptografia TLS negociado para solicitações HTTPS ou null para HTTP. | 
| authentication\_type | string | Tipo de autenticação de solicitação: AuthHeader, QueryString ou null. | 
| host\_header | string | Endpoint usado para se conectar ao Amazon S3. O padrão é null se não estiver disponível. | 
| tls\_version | string | Versão TLS negociada pelo cliente: TLSv1.1, TLSv1.2, TLSv1.3 ou null. | 
| access\_point\_arn | string | ARN do ponto de acesso usado para a solicitação ou null se a solicitação não tiver usado um ponto de acesso. | 
| acl\_required | booleano | Se uma ACL foi necessária para a solicitação. O padrão é null quando não aplicável. | 
| source\_region | string | Região da AWS de origem da solicitação ou null quando a região de origem não pode ser determinada (como em conexões do PrivateLink, conexões do Direct Connect, traga seus próprios endereços IP (BYOIP) ou endereços IP que não são da AWS) ou quando o log é gerado por operações acionadas com base em políticas ou ações definidas pelo cliente, como ciclo de vida e soma de verificação. | 

## Exemplo de registros de log
<a name="sal-cw-sample-record"></a>

Veja a seguir o exemplo de um registro de log de acesso ao servidor conforme aparece no CloudWatch Logs.

```
{
  "schema_version_id": "V_1_0",
  "bucket_arn": "arn:aws:s3:::my-data-bucket",
  "bucket_name": "my-data-bucket",
  "request_time": "2026-04-29T14:32:16.000Z",
  "bucket_owner_id": "79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be",
  "remote_ip": "203.0.113.45",
  "requester": "arn:aws:iam::123456789012:role/DataAnalystRole",
  "request_id": "3E57427F33A59F07",
  "operation": "REST.GET.OBJECT",
  "key_name": "reports/2026/quarterly-summary.parquet",
  "request_uri": "GET /my-data-bucket/reports/2026/quarterly-summary.parquet HTTP/1.1",
  "http_status": 200,
  "error_code": null,
  "bytes_sent_size": 1048576,
  "object_size": 1048576,
  "total_duration": 45,
  "turn_around_duration": 12,
  "referer": null,
  "user_agent": "aws-sdk-java/2.20.0",
  "version_id": null,
  "host_id": "s9lzHYrFp76ZVxRcpX9+5cjAnEH2ROuNkd2BHfIa6UkFVdtjf5mKR3/eTPFvsiP/XV/VLi31234=",
  "signature_version": "SigV4",
  "cipher_suite": "TLS_AES_128_GCM_SHA256",
  "authentication_type": "AuthHeader",
  "host_header": "my-data-bucket.s3.us-east-1.amazonaws.com",
  "tls_version": "TLSv1.3",
  "access_point_arn": null,
  "acl_required": false,
  "source_region": "us-east-1"
}
```

## Diferenças do formato de log de bucket de uso geral
<a name="sal-cw-format-differences"></a>

O formato de log do CloudWatch Logs difere do formato de log de bucket de uso geral das seguintes maneiras:
+ **Formato**: os logs do CloudWatch Logs são objetos JSON estruturados. Os logs de bucket de uso geral são textos delimitados por espaço.
+ **Nomes de campo**: o formato do CloudWatch Logs usa nomes de campo descritivos separados por sublinhado (por exemplo, `bytes_sent_size`, `total_duration`, `key_name`, `authentication_type`). O formato de bucket de uso geral é um texto posicional delimitado por espaço sem colunas nomeadas.
+ **Campos adicionais**: o formato do CloudWatch Logs inclui `schema_version_id` e `bucket_arn`, que não estão presentes no formato de texto de bucket de uso geral.
+ **Sem necessidade de análise**: como os logs do CloudWatch Logs são objetos JSON estruturados, você pode consultar campos individuais diretamente no CloudWatch Logs Insights sem análise de regex. O formato de texto do bucket de uso geral requer um analisador personalizado ou de regex para extrair os campos.