Formato de log no CloudWatch Logs
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.
Campos de registro de log
A tabela a seguir descreve os campos em cada registro de log de acesso ao servidor entregue ao 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 | A Região da AWS a partir da qual a solicitação foi originada, ou null quando não for possível determinar a região de origem. Os exemplos incluem conexões do PrivateLink, conexões do Direct Connect, endereços IP do tipo traga seu próprio IP (BYOIP), endereços IP que não são da AWS e logs gerados por ações baseadas em políticas, como ciclo de vida e soma de verificação. |
Exemplo de registros de log
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
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_idebucket_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.