View a markdown version of this page

Formato de registro en Registros de CloudWatch - Amazon Simple Storage Service

Formato de registro en Registros de CloudWatch

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.

Registrar campos de registro

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 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

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.