

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Seguimiento de las solicitudes de buckets de almacenamiento de objetos con registros de acceso
<a name="amazon-lightsail-bucket-access-logs"></a>

El registro de acceso proporciona registros detallados de las solicitudes que se realizan a un depósito en el servicio de almacenamiento de objetos de Amazon Lightsail. Esta información puede incluir el tipo de solicitud, los recursos que se especifican en la solicitud y la fecha y hora en que se procesó la solicitud. Los registros de acceso resultan útiles para muchas aplicaciones. Por ejemplo, la información del registro de acceso puede ser útil en auditorías de acceso y seguridad. También puede ayudarle a conocer mejor su base de clientes.

**Contenido**
+ [¿Qué necesito para habilitar la entrega de registros?](#access-log-delivery)
+ [Formato de clave de objeto de registro](#log-object-key-format)
+ [¿Cómo se envían los registros?](#how-are-logs-delivered)
+ [Envío de registros de acceso según el mejor esfuerzo](#best-effort-access-log-delivery)
+ [Los cambios del estado de los registros del bucket surten efecto con el tiempo](#bucket-logging-status-changes)

## ¿Qué necesito para habilitar la entrega de registros?
<a name="access-log-delivery"></a>

Tenga en cuenta lo siguiente antes de habilitar la entrega de registros. Para obtener más información, consulte [Habilitar el registro de acceso para un bucket](amazon-lightsail-enabling-bucket-access-logs.md).

1. **Identifique el bucket de destino para los registros.** En este depósito es donde quiere que Lightsail guarde los registros de acceso como objetos. Tanto los buckets de origen como de destino deben estar en la misma región de AWS y ser propiedad de la misma cuenta.

   Puede enviar los registros a cualquier bucket de su propiedad que se encuentre en la misma región que el bucket de origen, incluido el propio bucket de origen. Sin embargo, para una administración de registros más sencilla, le recomendamos que guarde los registros de acceso en un bucket distinto.

   Cuando los buckets de origen y destino son el mismo, se crean registros adicionales para los registros que se escriben en el bucket. Esto podría no ser ideal ya que podría dar lugar a un pequeño aumento de su consumo de almacenamiento. Además, los registros adicionales sobre registros podrían hacer que resulte más difícil encontrar el registro que busca. Si decide guardar los registros de acceso en el bucket de origen, le recomendamos que especifique un prefijo para las claves de objeto de registro de manera que los nombres de objeto comiencen por una cadena común y pueda identificar más fácilmente los objetos de registro. Los [prefijos de clave](https://docs.aws.amazon.com/general/latest/gr/glos-chap.html#keyprefix) también son útiles para distinguir entre los buckets de origen cuando varios buckets registran en el mismo bucket de destino.

1. **(Opcional) Identifique un prefijo para las claves de objetos de registro.** El prefijo le permite localizar con facilidad los objetos de registro. Por ejemplo, si especifica el valor del prefijo`logs/`, cada objeto de registro que Lightsail cree comienza con `logs/` el prefijo en su clave. La barra final `/` es necesaria para indicar el final del prefijo. A continuación se muestra un ejemplo de una clave de objeto de registro con el prefijo `logs/`:

   ```
   logs/2021-11-31-21-32-16-E568B2907131C0C0
   ```

## Formato de clave de objeto de registro
<a name="log-object-key-format"></a>

Lightsail utiliza el siguiente formato de clave de objeto para los objetos de registro que carga en el depósito de destino:

```
TargetPrefix/YYYY-mm-DD-HH-MM-SS-UniqueString
```

En la clave, `YYYY`, `mm`, `DD`, `HH`, `MM` y `SS` son los dígitos del año, el mes, el día, la hora, los minutos y los segundos (respectivamente) cuando se envió el archivo de registro. Las fechas y horas se muestran en tiempo universal coordinado (UTC).

Un archivo de registro enviado en un momento específico puede contener registros escritos en cualquier momento antes de ese momento. No hay forma de saber si se enviaron o no todas las entradas de registro para un cierto intervalo de tiempo.

El componente `UniqueString` de la clave permite impedir que se sobrescriban los archivos. No tiene ningún significado y el software de procesamiento de archivos de registro debería omitirlo.

## ¿Cómo se envían los registros?
<a name="how-are-logs-delivered"></a>

Lightsail recopila periódicamente los registros de acceso, los consolida en archivos de registro y, a continuación, carga los archivos de registro en su depósito de destino como objetos de registro. Si habilita el registro en varios buckets de origen que entregan al mismo bucket de destino, el bucket de destino tendrá registros de acceso para todos esos buckets de origen. No obstante, cada objeto de registro informará entradas de registro de acceso para un bucket de origen específico.

## Envío de registros de acceso según el mejor esfuerzo
<a name="best-effort-access-log-delivery"></a>

Las entradas de registro de acceso se envían según el "mejor esfuerzo", es decir, en la medida que sea posible. En la mayoría de las solicitudes de registros para un bucket debidamente configurado se envían archivos de registro. La mayoría de las entradas de registro se envían en el plazo de unas horas después de su registro, pero se pueden entregar con mayor frecuencia.

No se garantiza que los registros de acceso estén completos ni que lleguen de manera puntual. La entrada de registro de una solicitud determinada puede enviarse mucho después de que la solicitud se haya procesado realmente, y *es probable no se envíe en absoluto*. El objetivo de los registros de acceso es darle una idea de la naturaleza del tráfico al que se enfrenta el bucket. Es poco usual perder entradas de registro de acceso, pero los registros de acceso no pretenden ser un recuento completo de todas las solicitudes.

## Los cambios del estado de los registros del bucket surten efecto con el tiempo
<a name="bucket-logging-status-changes"></a>

Los cambios del estado de registros de un bucket demoran un tiempo en implementarse efectivamente en el envío de archivos de registro. Por ejemplo, si habilita los registros para un bucket, algunas solicitudes que se realizan a la hora siguiente pueden registrarse, mientras que otras no. Si cambia el bucket de destino para registros del bucket A al bucket B, es posible que algunos registros para la siguiente hora se sigan enviando al bucket A, mientras que otros se envíen al nuevo bucket B de destino. En todos los casos, la nueva configuración finalmente se aplica sin que usted tenga que tomar medidas adicionales.

**Topics**
+ [¿Qué necesito para habilitar la entrega de registros?](#access-log-delivery)
+ [Formato de clave de objeto de registro](#log-object-key-format)
+ [¿Cómo se envían los registros?](#how-are-logs-delivered)
+ [Envío de registros de acceso según el mejor esfuerzo](#best-effort-access-log-delivery)
+ [Los cambios del estado de los registros del bucket surten efecto con el tiempo](#bucket-logging-status-changes)
+ [Formato de registro de acceso](amazon-lightsail-bucket-access-log-format.md)
+ [Administración de registros de acceso](amazon-lightsail-enabling-bucket-access-logs.md)
+ [Uso de registros de acceso](amazon-lightsail-using-bucket-access-logs.md)

# Analice el acceso al almacenamiento de objetos con los registros de cubos de Lightsail
<a name="amazon-lightsail-bucket-access-log-format"></a>

El registro de acceso proporciona registros detallados de las solicitudes que se realizan a un depósito en el servicio de almacenamiento de objetos de Amazon Lightsail. Puede utilizar los registros de acceso para realizar auditorías de seguridad y acceso, o para conocer su base de clientes. En esta sección se describe el formato y otros detalles acerca de los archivos de registro de acceso. Para obtener más información acerca de los conceptos básicos de los registros, consulte [Registro de acceso para buckets](amazon-lightsail-bucket-access-logs.md).

Los archivos de registro de acceso consisten en una secuencia de registros delimitados por nueva línea. Cada entrada de registro representa una solicitud y consta de campos delimitados por espacios.

El siguiente es un registro de ejemplo que consta de cinco entradas de registro.

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket [06/Feb/2019:00:00:38 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 3E57427F3EXAMPLE REST.GET.VERSIONING - "GET /amzn-s3-demo-bucket?versioning HTTP/1.1" 200 - 113 - 7 - "-" "S3Console/0.4" - s9lzHYrFp76ZVxRcpX9+5cjAnEH2ROuNkd2BHfIa6UkFVdtjf5mKR3/eTPFvsiP/XV/VLi31234= SigV2 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader amzn-s3-demo-bucket.s3.us-west-1.amazonaws.com TLSV1.1
```

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket [06/Feb/2019:00:00:38 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 891CE47D2EXAMPLE REST.GET.LOGGING_STATUS - "GET /amzn-s3-demo-bucket?logging HTTP/1.1" 200 - 242 - 11 - "-" "S3Console/0.4" - 9vKBE6vMhrNiWHZmb2L0mXOcqPGzQOI5XLnCtZNPxev+Hf+7tpT6sxDwDty4LHBUOZJG96N1234= SigV2 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader amzn-s3-demo-bucket.s3.us-west-1.amazonaws.com TLSV1.1
```

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket [06/Feb/2019:00:00:38 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be A1206F460EXAMPLE REST.GET.BUCKETPOLICY - "GET /amzn-s3-demo-bucket?policy HTTP/1.1" 404 NoSuchBucketPolicy 297 - 38 - "-" "S3Console/0.4" - BNaBsXZQQDbssi6xMBdBU2sLt+Yf5kZDmeBUP35sFoKa3sLLeMC78iwEIWxs99CRUrbS4n11234= SigV2 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader amzn-s3-demo-bucket.s3.us-west-1.amazonaws.com TLSV1.1
```

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket [06/Feb/2019:00:01:00 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 7B4A0FABBEXAMPLE REST.GET.VERSIONING - "GET /amzn-s3-demo-bucket?versioning HTTP/1.1" 200 - 113 - 33 - "-" "S3Console/0.4" - Ke1bUcazaN1jWuUlPJaxF64cQVpUEhoZKEG/hmy/gijN/I1DeWqDfFvnpybfEseEME/u7ME1234= SigV2 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader amzn-s3-demo-bucket.s3.us-west-1.amazonaws.com TLSV1.1
```

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket [06/Feb/2019:00:01:57 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be DD6CC733AEXAMPLE REST.PUT.OBJECT s3-dg.pdf "PUT /amzn-s3-demo-bucket/s3-dg.pdf HTTP/1.1" 200 - - 4406583 41754 28 "-" "S3Console/0.4" - 10S62Zv81kBW7BB6SX4XJ48o6kpcl6LPwEoizZQQxJd5qDSCTLX0TgS37kYUBKQW3+bPdrg1234= SigV4 ECDHE-RSA-AES128-SHA AuthHeader amzn-s3-demo-bucket.s3.us-west-1.amazonaws.com TLSV1.1
```

**nota**  
Cualquier campo del registro de entrada puede establecerse en `–` (guión) para indicar que los datos son desconocidos, no están disponibles o que el campo no es aplicable a la solicitud.

**Contenido**
+ [Campos de entrada de registro](#log-record-fields)
+ [Registro adicional para operaciones de copia](#additional-logging-for-copy-operations)
+ [Información de registro de acceso personalizada](#custom-access-log-information)
+ [Consideraciones de programación para el formato de registro de acceso extensible](#programing-considerations)

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

En la siguiente lista se describen los campos de entrada de registro.

**Nombre de recurso de Amazon (ARN) del punto de acceso**

El nombre de recurso de Amazon (ARN) del punto de acceso de la solicitud. Si el ARN del punto de acceso está mal formado o no se utiliza, el campo contendrá un “-”. Para obtener más información sobre lo puntos de acceso, consulte [Uso de los puntos de acceso](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html). Para obtener más información ARNs, consulte el tema sobre el [nombre de recurso de Amazon (ARN)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) en la Referencia *general de AWS*.

Ejemplo de entrada

```
arn:aws:s3:us-east-1:123456789012:accesspoint/example-AP
```

**Propietario del bucket**

El ID de usuario canónico del propietario del bucket de origen. El ID de usuario canónico es otra forma del ID de cuenta de AWS. Para obtener más información acerca del ID de usuario canónico, consulte [<shared id="AWS"/> account identifiers (Identificadores de cuenta de <shared id="AWS"/>)](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html) en la *AWS General Reference (Referencia general de AWS)*. Para obtener información acerca de cómo encontrar el ID de usuario canónico de la cuenta, consulte [Finding the canonical user ID for your <shared id="AWS"/> account (Encontrar el ID de usuario canónico para la cuenta de <shared id="AWS"/>)](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html#FindingCanonicalId).

Ejemplo de entrada

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
```

**Bucket**

El nombre del bucket para el que se procesó la solicitud. Si el sistema recibe un solicitud incorrecta y no puede determinar el bucket, la solicitud no aparecerá en ningún registro de acceso.

Ejemplo de entrada

```
amzn-s3-demo-bucket
```

**Tiempo**

El momento en que se recibió la solicitud; estas fechas y horas están en Hora Universal Coordinada (UTC). El formato, con la terminología *strftime()*, es el siguiente: *[%d/%b/%Y:%H:%M:%S %z]*

Ejemplo de entrada

```
[06/Feb/2019:00:00:38 +0000]
```

**IP remota**

La dirección de Internet aparente del solicitante. Los servidores proxy y firewalls intermedios pueden ocultar la dirección real de la máquina que realiza la solicitud.

Ejemplo de entrada

```
192.0.2.3
```

**Solicitante**

El ID de usuario canónico del solicitante o un `-` para solicitudes no autenticadas. Si el solicitante era un usuario de IAM, este campo devuelve el nombre de usuario de IAM del solicitante junto con la cuenta raíz de AWS a la que pertenece el usuario de IAM. Este identificador es el mismo que se utiliza para el control de acceso.

Ejemplo de entrada

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
```

**ID de solicitud**

Una cadena generada por Lightsail para identificar de forma única cada solicitud.

Ejemplo de entrada

```
3E57427F33A59F07
```

**Operación**

La operación que se indica aquí se declara como `SOAP.operation`, `REST.HTTP_method.resource_type`, `WEBSITE.HTTP_method.resource_type` o `BATCH.DELETE.OBJECT`.

Ejemplo de entrada

```
REST.PUT.OBJECT
```

**Clave**

La parte de “clave” de la solicitud, el URL codificado o “-” si la operación no toma un parámetro de clave.

Ejemplo de entrada

```
/photos/2019/08/puppy.jpg
```

**URI de solicitud**

La parte de Uniform Resource Identifier (URI, Identificador de recursos uniforme) de solicitud del mensaje de solicitud HTTP.

Ejemplo de entrada

```
"GET /amzn-s3-demo-bucket/photos/2019/08/puppy.jpg?x-foo=bar HTTP/1.1"
```

**Estado HTTP**

El código de estado HTTP numérico de la respuesta.

Ejemplo de entrada

```
200
```

**Código de error**

El [código de error](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingRESTError.html#ErrorCode) de Amazon S3, o “-” si no se ha producido ningún error.

Ejemplo de entrada

```
NoSuchBucket
```

**Bytes enviados**

El número de bytes de respuestas enviados, sin incluir la sobrecarga del protocolo HTTP o “-” en caso de ser cero.

Ejemplo de entrada

```
2662992
```

**Tamaño de objeto**

El tamaño total del objeto en cuestión.

Ejemplo de entrada

```
3462992
```

**Tiempo total**

La cantidad de milisegundos que la solicitud estuvo en tránsito desde la perspectiva del bucket. Este valor se mide desde el momento en que se recibe su solicitud hasta el momento en que se envía el último byte de la respuesta. Las medidas realizadas desde la perspectiva del cliente pueden ser más extensas debido a la latencia de la red.

Ejemplo de entrada

```
70
```

**Tiempo de entrega**

El número de milisegundos que Lightsail tardó en procesar su solicitud. Este valor se mide desde el momento en que se recibió el último byte de su solicitud hasta el momento en que se envió el primer byte de la respuesta.

Ejemplo de entrada

```
10
```

**Referer**

El valor del encabezado Referer de HTTP, si lo hay. Los agentes de usuario de HTTP (por ejemplo: los navegadores) por lo general configuran este encabezado en la URL de la página enlazada o adjunta cuando realizan una solicitud.

Ejemplo de entrada

```
"http://www.amazon.com/webservices"
```

**Agente de usuario**

El valor del encabezado de agente de usuario de HTTP.

Ejemplo de entrada

```
"curl/7.15.1"
```

**ID de versión**

El ID de versión en la solicitud o `-` si la operación no toma un parámetro `versionId`.

Ejemplo de entrada

```
3HL4kqtJvjVBH40Nrjfkd
```

**ID de host**

El identificador de solicitud extendida x-amz-id -2 o Lightsail.

Ejemplo de entrada

```
s9lzHYrFp76ZVxRcpX9+5cjAnEH2ROuNkd2BHfIa6UkFVdtjf5mKR3/eTPFvsiP/XV/VLi31234=
```

**Versión de firma**

La versión de firma, `SigV2` o `SigV4`, que se utilizó para autenticar la solicitud o `-` para las solicitudes no autenticadas.

Ejemplo de entrada

```
SigV2
```

**Conjunto de cifrado**

Cifrado de Capa de conexión segura (SSL) que se negoció para la solicitud HTTPS o `-` para HTTP.

Ejemplo de entrada

```
ECDHE-RSA-AES128-GCM-SHA256
```

**Tipo de autenticación**

Tipo de autenticación de solicitudes utilizado: `AuthHeader` para los encabezados de autenticación, `QueryString` para la cadena de consulta (URL prefirmada) o `-` para las solicitudes no autenticadas.

Ejemplo de entrada

```
AuthHeader
```

**Encabezado de host**

El punto final utilizado para conectarse a Lightsail.

Ejemplo de entrada

```
s3.us-west-2.amazonaws.com
```

**Versión de TLS**

Versión de Transport Layer Security (TLS) negociada por el cliente. Puede ser uno de los siguientes valores: `TLSv1`, `TLSv1.1`, `TLSv1.2`; o `-` si no se utilizó TLS.

Ejemplo de entrada

```
TLSv1.2
```

## Registro adicional para operaciones de copia
<a name="additional-logging-for-copy-operations"></a>

Una operación de copia implica un `GET` y un `PUT`. Por esa razón, registramos dos entradas al realizar una operación de copia. En la sección anterior se describen los campos relacionados con la `PUT` parte de la operación. En la siguiente lista se describen los campos del registro relacionados con la parte `GET` de la operación de copia.

**Propietario del bucket**

El ID de usuario canónico del bucket que almacena el objeto que se copia. El ID de usuario canónico es otra forma del ID de cuenta de AWS. Para obtener más información acerca del ID de usuario canónico, consulte [<shared id="AWS"/> account identifiers (Identificadores de cuenta de <shared id="AWS"/>)](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html) en la *AWS General Reference (Referencia general de AWS)*. Para obtener información acerca de cómo encontrar el ID de usuario canónico de la cuenta, consulte [Finding the canonical user ID for your <shared id="AWS"/> account (Encontrar el ID de usuario canónico para la cuenta de <shared id="AWS"/>)](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html#FindingCanonicalId).

Ejemplo de entrada

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
```

**Bucket**

El nombre del bucket que almacena el objeto que se copia.

Ejemplo de entrada

```
amzn-s3-demo-bucket
```

**Tiempo**

La hora en la que se recibió la solicitud; estas fechas y horas se muestran según la hora universal coordinada (UTC). El formato, con la terminología `strftime()`, es el siguiente: `[%d/%B/%Y:%H:%M:%S %z]`

Ejemplo de entrada

```
[06/Feb/2019:00:00:38 +0000]
```

**IP remota**

La dirección de Internet aparente del solicitante. Los servidores proxy y firewalls intermedios pueden ocultar la dirección real de la máquina que realiza la solicitud.

Ejemplo de entrada

```
192.0.2.3
```

**Solicitante**

El ID de usuario canónico del solicitante o un `-` para solicitudes no autenticadas. Si el solicitante era un usuario de IAM, este campo devolverá el nombre de usuario de IAM del solicitante junto con la cuenta raíz de AWS a la que pertenece el usuario de IAM. Este identificador es el mismo que se utiliza para el control de acceso.

Ejemplo de entrada

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
```

**ID de solicitud**

Una cadena generada por Lightsail para identificar de forma única cada solicitud.

Ejemplo de entrada

```
3E57427F33A59F07
```

**Operación**

La operación que se indica aquí se declara como `SOAP.operation`, `REST.HTTP_method.resource_type`, `WEBSITE.HTTP_method.resource_type` o `BATCH.DELETE.OBJECT`.

Ejemplo de entrada

```
REST.COPY.OBJECT_GET
```

**Clave**

La “clave” del objeto que se copia o “-” si la operación no toma un parámetro de clave.

Ejemplo de entrada

```
/photos/2019/08/puppy.jpg
```

**URI de solicitud**

La parte de Uniform Resource Identifier (URI, Identificador de recursos uniforme) de solicitud del mensaje de solicitud HTTP.

Ejemplo de entrada

```
"GET /amzn-s3-demo-bucket/photos/2019/08/puppy.jpg?x-foo=bar"
```

**Estado HTTP**

El código de estado HTTP numérico de la parte `GET` de la operación de copia.

Ejemplo de entrada

```
200
```

**Código de error**

El código de error de Amazon S3, de la `GET` parte de la operación de copia o `-` si no se produjo ningún error.

Ejemplo de entrada

```
NoSuchBucket
```

**Bytes enviados**

El número de bytes de respuestas enviados, sin incluir la sobrecarga del protocolo HTTP o “-” en caso de ser cero.

Ejemplo de entrada

```
2662992
```

**Tamaño de objeto**

El tamaño total del objeto en cuestión.

Ejemplo de entrada

```
3462992
```

**Tiempo total**

La cantidad de milisegundos que la solicitud estuvo en tránsito desde la perspectiva del bucket. Este valor se mide desde el momento en que se recibe su solicitud hasta el momento en que se envía el último byte de la respuesta. Las medidas realizadas desde la perspectiva del cliente pueden ser más extensas debido a la latencia de la red.

Ejemplo de entrada

```
70
```

**Tiempo de entrega**

El número de milisegundos que Lightsail tardó en procesar su solicitud. Este valor se mide desde el momento en que se recibió el último byte de su solicitud hasta el momento en que se envió el primer byte de la respuesta.

Ejemplo de entrada

```
10
```

**Referer**

El valor del encabezado Referer de HTTP, si lo hay. Los agentes de usuario de HTTP (por ejemplo: los navegadores) por lo general configuran este encabezado en la URL de la página enlazada o adjunta cuando realizan una solicitud.

Ejemplo de entrada

```
"http://www.amazon.com/webservices"
```

**Agente de usuario**

El valor del encabezado de agente de usuario de HTTP.

Ejemplo de entrada

```
"curl/7.15.1"
```

**ID de versión**

El ID de versión del objeto que se copia o `-` si el encabezado `x-amz-copy-source` no especificó un parámetro `versionId` como parte de la fuente de copia.

Ejemplo de entrada

```
3HL4kqtJvjVBH40Nrjfkd
```

**ID de host**

El identificador de solicitud extendida x-amz-id -2 o Lightsail.

Ejemplo de entrada

```
s9lzHYrFp76ZVxRcpX9+5cjAnEH2ROuNkd2BHfIa6UkFVdtjf5mKR3/eTPFvsiP/XV/VLi31234=
```

**Versión de firma**

La versión de firma, `SigV2` o `SigV4`, que se utilizó para autenticar la solicitud o `-` para las solicitudes no autenticadas.

Ejemplo de entrada

```
SigV2
```

**Conjunto de cifrado**

Cifrado de Capa de conexión segura (SSL) que se negoció para la solicitud HTTPS o `-` para HTTP.

Ejemplo de entrada

```
ECDHE-RSA-AES128-GCM-SHA256
```

**Tipo de autenticación**

Tipo de autenticación de solicitud utilizada, `AuthHeader` para encabezados de autenticación, `QueryString` cadena de consulta (URL prefirmada) o `-` solicitudes no autenticadas.

Ejemplo de entrada

```
AuthHeader
```

**Encabezado de host**

El punto final utilizado para conectarse a Lightsail.

Ejemplo de entrada

```
s3.us-west-2.amazonaws.com
```

**Versión de TLS**

Versión de Transport Layer Security (TLS) negociada por el cliente. Puede ser uno de los siguientes valores: `TLSv1`, `TLSv1.1`, `TLSv1.2`; o `-` si no se utilizó TLS.

Ejemplo de entrada

```
TLSv1.2
```

## Información de registro de acceso personalizada
<a name="custom-access-log-information"></a>

Puede incluir información personalizada que se almacenará en el registro de registro de acceso para una solicitud. Para ello, agregue un parámetro de cadena de consulta personalizado a la URL de la solicitud. Lightsail ignora los parámetros de la cadena de consulta que comienzan por «x-», pero los incluye en el registro de acceso de la solicitud, como parte del campo del registro de `Request-URI` registro.

Por ejemplo, una `GET` solicitud de `"s3.amazonaws.com/amzn-s3-demo-bucket/photos/2019/08/puppy.jpg?x-user=johndoe"` funciona igual que la solicitud de `"s3.amazonaws.com/amzn-s3-demo-bucket/photos/2019/08/puppy.jpg"`, excepto que la `"x-user=johndoe"` cadena se incluye en el `Request-URI` campo para el historial de registro asociado. Esta funcionalidad está disponible en la interfaz de REST únicamente.

## Consideraciones de programación para el formato de registro de acceso extensible
<a name="programing-considerations"></a>

Ocasionalmente podríamos ampliar el formato de registro de acceso al agregar nuevos campos al final de cada línea. Por lo tanto, debe escribir cualquier código que analice los registros de acceso para ocuparse de los campos finales que podría no entender.

# Habilite el registro de acceso al bucket en Lightsail
<a name="amazon-lightsail-enabling-bucket-access-logs"></a>

El registro de acceso proporciona registros detallados de las solicitudes que se realizan a un depósito en el servicio de almacenamiento de objetos de Amazon Lightsail. Los registros de acceso resultan útiles para muchas aplicaciones. Por ejemplo, la información del registro de acceso puede ser útil en auditorías de acceso y seguridad. También puede ayudarle a conocer mejor su base de clientes.

De forma predeterminada, Lightsail no recopila los registros de acceso de sus depósitos. Cuando habilita el registro, Lightsail envía los registros de acceso de un bucket de origen a un bucket de destino que usted elija. Tanto el depósito de origen como el de destino deben estar en el mismo lugar Región de AWS y ser propiedad de la misma cuenta.

Una entrada de registro de acceso incluye detalles de las solicitudes realizadas a un bucket. Esta información puede incluir el tipo de solicitud, los recursos que se especifican en la solicitud y la fecha y hora en que se procesó la solicitud. En esta guía, le mostramos cómo habilitar o deshabilitar el registro de acceso para sus buckets mediante la API de Lightsail, AWS Command Line Interface the AWS CLI() o AWS. SDKs

Para obtener más información acerca de los conceptos básicos de los registros, consulte [Registro de acceso para buckets](amazon-lightsail-bucket-access-logs.md).

**Contenido**
+ [Costos del registro de acceso](#costs-for-access-logging)
+ [Habilitación del registro de acceso mediante la AWS CLI](#enabling-access-logging)
+ [Deshabilitación del registro de acceso mediante la AWS CLI](#disabling-access-logging)

## Costos del registro de acceso
<a name="costs-for-access-logging"></a>

No se aplica ningún cargo adicional por habilitar el registro de acceso en un bucket. Sin embargo, los archivos de registro que el sistema entrega a un bucket consumen espacio de almacenamiento. Puede eliminar los registros en cualquier momento. No aplicamos cargos por transferencia de datos por la entrega de archivos de registro cuando la transferencia de datos del bucket de registro está dentro de su asignación mensual configurada.

El bucket de destino no debe tener habilitado el registro de acceso. Puede enviar los registros a cualquier bucket de su propiedad que se encuentre en la misma región que el bucket de origen, incluido el propio bucket de origen. Sin embargo, para una administración de registros más sencilla, le recomendamos que guarde los registros de acceso en un bucket distinto.

## Habilite el registro de acceso mediante el AWS CLI
<a name="enabling-access-logging"></a>

Para habilitar el registro de acceso en sus depósitos, le recomendamos que cree un depósito de registro dedicado en cada uno de los depósitos Región de AWS que tenga. A continuación, haga que el registro de acceso se entregue a ese bucket de registro dedicado.

Complete el siguiente procedimiento para habilitar el registro de acceso mediante la AWS CLI.

**nota**  
Debe instalar AWS CLI y configurar Lightsail antes de continuar con este procedimiento. Para obtener más información, consulte [Configurar AWS CLI para que funcione con Lightsail](lightsail-how-to-set-up-and-configure-aws-cli.md).

1. Abra una ventana de símbolo del sistema o de terminal en su ordenador local.

1. Ingrese el siguiente comando para habilitar el registro de acceso.

   ```
   aws lightsail update-bucket --bucket-name SourceBucketName --access-log-config "{\"enabled\": true, \"destination\": \"TargetBucketName\", \"prefix\": \"ObjectKeyNamePrefix/\"}"
   ```

   En el comando, sustituya el texto del ejemplo siguiente por el suyo propio:
   + *SourceBucketName*- El nombre del depósito de origen para el que se crearán los registros de acceso.
   + *TargetBucketName*— El nombre del depósito de destino en el que se guardarán los registros de acceso.
   + *ObjectKeyNamePrefix/*- El prefijo de nombre de clave de objeto opcional para los registros de acceso. Tenga en cuenta que el prefijo debe terminar con una barra inclinada (`/`).

   **Ejemplo**

   ```
   aws lightsail update-bucket --bucket-name amzn-s3-demo-bucket1 --access-log-config "{\"enabled\": true, \"destination\": \"amzn-s3-demo-bucket2\", \"prefix\": \"logs/amzn-s3-demo-bucket1/\"}"
   ```

   En el ejemplo, *amzn-s3-demo-bucket1* es el depósito de origen para el que se crearán los registros de acceso, *amzn-s3-demo-bucket2* es el depósito de destino en el que se guardarán los registros de acceso y *logs/amzn-s3-demo-bucket1/* es el prefijo del nombre de la clave de objeto para los registros de acceso.

   Debería ver un resultado similar al del siguiente ejemplo después de ejecutar el comando. El bucket de origen se actualiza, y los registros de acceso deben comenzar a generarse y almacenarse en el bucket de destino.  
![\[Registro de acceso para un bucket habilitado\]](http://docs.aws.amazon.com/es_es/lightsail/latest/userguide/images/amazon-lightsail-enable-access-logging-for-a-bucket.png)

## Inhabilitar el registro de acceso mediante el AWS CLI
<a name="disabling-access-logging"></a>

Complete el siguiente procedimiento para desactivar el registro de acceso mediante la AWS CLI.

**nota**  
Debe instalar AWS CLI y configurar Lightsail antes de continuar con este procedimiento. Para obtener más información, consulte [Configurar AWS CLI para que funcione con Lightsail](lightsail-how-to-set-up-and-configure-aws-cli.md).

1. Abra una ventana de símbolo del sistema o de terminal en su ordenador local.

1. Ingrese el siguiente comando para desactivar el registro de acceso.

   ```
   aws lightsail update-bucket --bucket-name SourceBucketName --access-log-config "{\"enabled\": false}"
   ```

   En el comando, *SourceBucketName* sustitúyalo por el nombre del bucket de origen para el que se va a deshabilitar el registro de acceso.

   **Ejemplo**

   ```
   aws lightsail update-bucket --bucket-name amzn-s3-demo-bucket --access-log-config "{\"enabled\": false}"
   ```

   Debería ver un resultado similar al del siguiente ejemplo después de ejecutar el comando.  
![\[Registro de acceso para un bucket desactivado\]](http://docs.aws.amazon.com/es_es/lightsail/latest/userguide/images/amazon-lightsail-disable-access-logging-for-a-bucket.png)

# Analice los registros de acceso a los buckets con Amazon Athena en Lightsail
<a name="amazon-lightsail-using-bucket-access-logs"></a>

En esta guía, le mostramos cómo identificar las solicitudes a un bucket con los registros de acceso. Para obtener más información, consulte [Registros de acceso al bucket](amazon-lightsail-bucket-access-logs.md).

**Contenido**
+ [Consultar los registros de acceso para solicitudes mediante Amazon Athena](#querying-access-logs-for-requests)
+ [Identificación de solicitudes de acceso a objetos mediante registros de acceso de Amazon S3](#identifying-object-access-requests)

## Consultar los registros de acceso para solicitudes mediante Amazon Athena
<a name="querying-access-logs-for-requests"></a>

Puede utilizar Amazon Athena para consultar e identificar las solicitudes a un bucket en los registros de acceso.

Lightsail almacena los registros de acceso como objetos en un depósito de Lightsail. Suele ser más fácil utilizar una herramienta que pueda analizar los registros. Athena es compatible con el análisis de objetos y se puede utilizar para consultar los registros de acceso.

**Ejemplo**

El siguiente ejemplo muestra cómo puede consultar los registros de acceso al servidor de buckets en Amazon Athena.

**nota**  
Para especificar la ubicación de un bucket en una consulta de Athena, debe formatear el nombre del bucket de destino y el prefijo de destino donde los registros se entregan como un URI S3, de la siguiente manera: `s3://amzn-s3-demo-bucket1-logs/prefix/`

1. Abra la consola Athena en [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/).

1. En el **Editor de consultas**, ejecute un comando similar al siguiente.

   ```
   create database bucket_access_logs_db
   ```
**nota**  
Se recomienda crear la base de datos en el mismo lugar que el bucket de S3 Región de AWS .

1. En el **Editor de consultas**, ejecute un comando similar al siguiente para crear un esquema de tabla en la base de datos que creó en el paso 2. Los valores con los tipos de datos `STRING` y `BIGINT` son las propiedades del registro de acceso. Puede consultar estas propiedades en Athena. Para `LOCATION`, ingrese el bucket y la ruta del prefijo como se indicó anteriormente.

   ```
   CREATE EXTERNAL TABLE `s3_access_logs_db.amzn-s3-demo-bucket_logs`(
     `bucketowner` STRING, 
     `bucket_name` STRING, 
     `requestdatetime` STRING, 
     `remoteip` STRING, 
     `requester` STRING, 
     `requestid` STRING, 
     `operation` STRING, 
     `key` STRING, 
     `request_uri` STRING, 
     `httpstatus` STRING, 
     `errorcode` STRING, 
     `bytessent` BIGINT, 
     `objectsize` BIGINT, 
     `totaltime` STRING, 
     `turnaroundtime` STRING, 
     `referrer` STRING, 
     `useragent` STRING, 
     `versionid` STRING, 
     `hostid` STRING, 
     `sigv` STRING, 
     `ciphersuite` STRING, 
     `authtype` STRING, 
     `endpoint` STRING, 
     `tlsversion` STRING)
   ROW FORMAT SERDE 
     'org.apache.hadoop.hive.serde2.RegexSerDe' 
   WITH SERDEPROPERTIES ( 
     'input.regex'='([^ ]*) ([^ ]*) \\[(.*?)\\] ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) (\"[^\"]*\"|-) (-|[0-9]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) (\"[^\"]*\"|-) ([^ ]*)(?: ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*))?.*$') 
   STORED AS INPUTFORMAT 
     'org.apache.hadoop.mapred.TextInputFormat' 
   OUTPUTFORMAT 
     'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
   LOCATION
     's3://amzn-s3-demo-bucket1-logs/prefix/'
   ```

1. En el panel de navegación, en **Database (Base de datos)**, elija la base de datos.

1. En **Tables (Tablas)**, elija **Preview table (Vista previa de tabla)** junto al nombre de la tabla.

   En el panel **Results (Resultados)**, debería ver los datos de los registros de acceso del servidor, como `bucketowner`, `bucket`, `requestdatetime`, etc. Esto significa que ha creado correctamente la tabla de Athena. Ahora puede consultar los registros de acceso del servidor del bucket.

**Ejemplo: mostrar quién eliminó un objeto y cuándo (marca temporal, dirección IP y usuario de IAM)**

```
SELECT RequestDateTime, RemoteIP, Requester, Key 
FROM s3_access_logs_db.amzn-s3-demo-bucket_logs 
WHERE key = 'images/picture.jpg' AND operation like '%DELETE%';
```

**Ejemplo: mostrar todas las operaciones realizadas por un usuario de IAM**

```
SELECT * 
FROM s3_access_logs_db.amzn-s3-demo-bucket_logs 
WHERE requester='arn:aws:iam::123456789123:user/user_name';
```

**Ejemplo: mostrar todas las operaciones realizadas en un objeto en un periodo de tiempo específico**

```
SELECT *
FROM s3_access_logs_db.amzn-s3-demo-bucket_logs
WHERE Key='prefix/images/picture.jpg' 
    AND parse_datetime(RequestDateTime,'dd/MMM/yyyy:HH:mm:ss Z')
    BETWEEN parse_datetime('2017-02-18:07:00:00','yyyy-MM-dd:HH:mm:ss')
    AND parse_datetime('2017-02-18:08:00:00','yyyy-MM-dd:HH:mm:ss');
```

**Ejemplo: mostrar la cantidad de datos transferidos por una dirección IP específica en un periodo de tiempo específico**

```
SELECT SUM(bytessent) AS uploadTotal,
      SUM(objectsize) AS downloadTotal,
      SUM(bytessent + objectsize) AS Total
FROM s3_access_logs_db.amzn-s3-demo-bucket_logs
WHERE RemoteIP='1.2.3.4'
AND parse_datetime(RequestDateTime,'dd/MMM/yyyy:HH:mm:ss Z')
BETWEEN parse_datetime('2017-06-01','yyyy-MM-dd')
AND parse_datetime('2017-07-01','yyyy-MM-dd');
```

## Identificación de solicitudes de acceso a objetos mediante registros de acceso de Amazon S3
<a name="identifying-object-access-requests"></a>

Puede usar consultas en registros de acceso para identificar las solicitudes de acceso a objetos, para operaciones como *GET*, *PUT* y *DELETE*, y obtener información sobre esas solicitudes.

El siguiente ejemplo de consulta de Amazon Athena muestra cómo obtener todas las solicitudes de objetos `PUT` para un bucket desde el registro de acceso del servidor.

**Ejemplo: mostrar todos los solicitantes que envían solicitudes de objetos PUT en un periodo determinado**

```
SELECT Bucket, Requester, RemoteIP, Key, HTTPStatus, ErrorCode, RequestDateTime
FROM s3_access_logs_db
WHERE Operation='REST.PUT.OBJECT' AND
parse_datetime(RequestDateTime,'dd/MMM/yyyy:HH:mm:ss Z') 
BETWEEN parse_datetime('2019-07-01:00:42:42','yyyy-MM-dd:HH:mm:ss')
AND 
parse_datetime('2019-07-02:00:42:42','yyyy-MM-dd:HH:mm:ss')
```

El siguiente ejemplo de consulta de Amazon Athena muestra cómo obtener todas las solicitudes de objetos GET para Amazon S3 desde el registro de acceso al servidor.

**Ejemplo: mostrar todos los solicitantes que envían solicitudes de objetos GET en un periodo determinado**

```
SELECT Bucket, Requester, RemoteIP, Key, HTTPStatus, ErrorCode, RequestDateTime
FROM s3_access_logs_db
WHERE Operation='REST.GET.OBJECT' AND
parse_datetime(RequestDateTime,'dd/MMM/yyyy:HH:mm:ss Z') 
BETWEEN parse_datetime('2019-07-01:00:42:42','yyyy-MM-dd:HH:mm:ss')
AND 
parse_datetime('2019-07-02:00:42:42','yyyy-MM-dd:HH:mm:ss')
```

La siguiente consulta de ejemplo de Amazon Athena muestra cómo obtener todas las solicitudes anónimas realizadas a los buckets de S3 desde el registro de acceso al servidor.

**Ejemplo: mostrar todos los solicitantes anónimos que hacen solicitudes a un bucket en un periodo determinado**

```
SELECT Bucket, Requester, RemoteIP, Key, HTTPStatus, ErrorCode, RequestDateTime
FROM s3_access_logs_db.amzn-s3-demo-bucket_logs
WHERE Requester IS NULL AND
parse_datetime(RequestDateTime,'dd/MMM/yyyy:HH:mm:ss Z') 
BETWEEN parse_datetime('2019-07-01:00:42:42','yyyy-MM-dd:HH:mm:ss')
AND 
parse_datetime('2019-07-02:00:42:42','yyyy-MM-dd:HH:mm:ss')
```

**nota**  
Puede modificar el intervalo de fechas para adaptarlo a sus necesidades.
Estos ejemplos de consulta también pueden ser útiles para la monitorización de la seguridad. Puedes revisar los resultados `PutObject` o las `GetObject` llamadas desde direcciones IP inesperadas o no autorizadas addresses/requesters y para identificar cualquier solicitud anónima a tus depósitos.
Esta consulta solo recupera información de la hora a la que se habilitó el registro.