

# Formato de registro en Registros de CloudWatch
<a name="sal-cw-log-format"></a>

Cuando los registros de acceso al servidor de Amazon S3 se entregan a Registros de Amazon CloudWatch, cada registro es un objeto JSON estructurado. Es diferente del formato de texto delimitado por espacios que se utiliza para la entrega a un bucket de uso general de Amazon S3. El formato estructurado permite consultar los campos directamente en información de Registros de CloudWatch sin necesidad de analizar expresiones regulares.

**nota**  
Para ver el formato de texto delimitado por espacios que se utiliza para la entrega de buckets de uso general, consulte [Formato de registro de acceso al servidor de Amazon S3](LogFormat.md).

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

En la tabla siguiente, se describen los campos de cada registro de acceso al servidor que se entrega a Registros de CloudWatch.


**Campos de registro de acceso al servidor en Registros de CloudWatch**  

| Campo | Tipo | Descripción | 
| --- | --- | --- | 
| schema\_version\_id | cadena | Identificador de versión del esquema de registro (por ejemplo, V\_1\_0). Utilice este campo para detectar cambios en el esquema cuando se agreguen nuevos campos en futuras versiones. | 
| bucket\_arn | cadena | ARN del bucket de origen. | 
| bucket\_name | cadena | Nombre del bucket al que se realizó la solicitud. Derivado del ARN del bucket. | 
| request\_time | cadena | La hora en que se recibió la solicitud, en UTC. Formateado como ISO 8601 (yyyy-MM-dd'T'HH:mm:ss.SSS'Z'). En la integración de tablas de S3 (Iceberg), este campo se almacena como timestamptz. | 
| bucket\_owner\_id | cadena | ID de usuario canónico del propietario del bucket de origen. | 
| remote\_ip | cadena | Dirección IP aparente del solicitante. Valor predeterminado en null si no está disponible. | 
| requester | cadena | ID de usuario canónico del solicitante o null para solicitudes no autenticadas. Para los usuarios y roles de IAM, este es el ARN. | 
| request\_id | cadena | Identificador único generado por Amazon S3 para cada solicitud. Valor predeterminado en null si no está disponible. | 
| operation | cadena | La operación que se realizó, por ejemplo, REST.GET.OBJECT o REST.PUT.OBJECT. Valor predeterminado en null si no está disponible. | 
| key\_name | cadena | Clave de objeto en la solicitud o null si la operación no implica un objeto. | 
| request\_uri | cadena | La parte Request-URI del mensaje de solicitud HTTP o null si no está disponible. | 
| http\_status | int | Código de estado HTTP numérico de la respuesta, por ejemplo, 200 o 403. Valor predeterminado en null si no está disponible. | 
| error\_code | cadena | Código de error de Amazon S3, por ejemplo NoSuchKey, AccessDenied o null si no se ha producido ningún error. | 
| bytes\_sent\_size | long | Número de bytes de respuestas enviados, sin incluir la sobrecarga del protocolo HTTP. Valor predeterminado en null si no está disponible. | 
| object\_size | long | Tamaño total del objeto. Valor predeterminado en null si no está disponible. | 
| total\_duration | long | Tiempo total de la solicitud desde el momento en que se recibió hasta el último byte de la respuesta enviada, en milisegundos. Valor predeterminado en null si no está disponible. | 
| turn\_around\_duration | long | Tiempo que tarda Amazon S3 en procesar la solicitud, en milisegundos. Este valor se mide desde el momento en que se recibió el último byte de la solicitud hasta el momento en que se envió el primer byte de la respuesta. Valor predeterminado en null si no está disponible. | 
| referer | cadena | El valor del encabezado Referer HTTP o null si no está presente. | 
| user\_agent | cadena | El valor del encabezado User-Agent HTTP. Valor predeterminado en null si no está disponible. | 
| version\_id | cadena | ID de versión en la solicitud o null si la operación no implica un objeto con control de versiones. | 
| host\_id | cadena | ID de la solicitud ampliada de Amazon S3 (x-amz-id-2). Valor predeterminado en null si no está disponible. | 
| signature\_version | cadena | Versión de firma utilizada para autenticar la solicitud: SigV2 o SigV4. El valor predeterminado es null para las solicitudes no autenticadas. | 
| cipher\_suite | cadena | El conjunto de cifrado TLS se negocia para las solicitudes HTTPS o null para HTTP. | 
| authentication\_type | cadena | Tipo de autenticación de solicitud: AuthHeader, QueryString o null. | 
| host\_header | cadena | Punto de conexión usado para conectarse a Amazon S3. Valor predeterminado en null si no está disponible. | 
| tls\_version | cadena | Versión de TLS negociada por el cliente: TLSv1.1, TLSv1.2, TLSv1.3 o null. | 
| access\_point\_arn | cadena | ARN del punto de acceso utilizado para la solicitud o null si la solicitud no utilizó un punto de acceso. | 
| acl\_required | booleano | Si se necesitaba una ACL para la solicitud. El valor predeterminado es null cuando no se aplica. | 
| source\_region | cadena | Región de AWS desde la que se originó la solicitud o null cuando la región de origen no se puede determinar (por ejemplo, para conexiones PrivateLink, conexiones Direct Connect, direcciones de la opción Traiga sus propias direcciones IP (BYOIP) o direcciones IP que no sean de AWS) o cuando el registro se genera a raíz de operaciones desencadenadas en función de políticas o acciones establecidas por el cliente, como el ciclo de vida y la suma de comprobación. | 

## Entradas de registro de ejemplo
<a name="sal-cw-sample-record"></a>

A continuación, se muestra un ejemplo de un registro de acceso al servidor tal como aparece en Registros de CloudWatch.

```
{
  "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"
}
```

## Diferencias del formato de registro de bucket de uso general
<a name="sal-cw-format-differences"></a>

El formato de registro de Registros de CloudWatch se diferencia del formato de registro de bucket de uso general en los siguientes aspectos:
+ **Formato**: los Registros de CloudWatch son objetos JSON estructurados. Los registros de bucket de uso general son texto delimitado por espacios.
+ **Nombres de campo**: el formato de Registros de CloudWatch utiliza nombres de campo descriptivos separados por guiones bajos (por ejemplo, `bytes_sent_size`, `total_duration`, `key_name`, `authentication_type`). El formato de bucket de uso general es texto posicional delimitado por espacios sin columnas con nombre.
+ **Campos adicionales**: el formato de Registros de CloudWatch incluye `schema_version_id` y `bucket_arn`, que no están presentes en el formato de texto de bucket de uso general.
+ **No es necesario análisis**: dado que los Registros de CloudWatch están estructurados en formato JSON, puede consultar campos individuales directamente en información de Registros de CloudWatch sin necesidad de analizar expresiones regulares. El formato de texto de bucket de uso general requiere un analizador de expresiones regulares o personalizado para extraer los campos.