

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Tieni traccia delle richieste di bucket di archiviazione degli oggetti con i log di accesso
<a name="amazon-lightsail-bucket-access-logs"></a>

La registrazione degli accessi fornisce record dettagliati per le richieste effettuate a un bucket nel servizio di storage di oggetti Amazon Lightsail. I report possono includere informazioni quali il tipo di richiesta, le risorse in essa specificate, l'ora e la data di elaborazione. I registri di accesso sono utili per numerose applicazioni. Ad esempio, tali informazioni possono essere utilizzate nei controlli di sicurezza e di accesso. Inoltre, possono aiutarti a capire meglio i tuoi clienti.

**Indice**
+ [Cosa occorre per abilitare la consegna dei log](#access-log-delivery)
+ [Formato della chiave dell'oggetto del log](#log-object-key-format)
+ [Come vengono distribuiti i registri?](#how-are-logs-delivered)
+ [Miglior tentativo per la consegna del log di accesso](#best-effort-access-log-delivery)
+ [Tempo richiesto per l'applicazione delle modifiche dello stato di registrazione del bucket](#bucket-logging-status-changes)

## Cosa occorre per abilitare la consegna dei log?
<a name="access-log-delivery"></a>

Considera quanto segue prima di abilitare la consegna dei log. Per i dettagli, consulta [Abilitazione della registrazione degli accessi al bucket](amazon-lightsail-enabling-bucket-access-logs.md).

1. **Identificare il bucket di destinazione per i log.** Questo bucket è dove vuoi che Lightsail salvi i log di accesso come oggetti. I bucket di origine e di destinazione devono trovarsi entrambi nella stessa regione AWS e devono appartenere allo stesso account.

   I registri possono essere distribuiti a tutti i bucket di cui si è proprietari che si trovano nella stessa regione del bucket di origine, incluso il bucket di origine stesso. Tuttavia, per una gestione più semplice dei log, si consiglia di salvare i log di accesso in un bucket diverso.

   Quando bucket di origine e il bucket di destinazione si trovano nello stesso bucket, vengono creati log aggiuntivi per i log che sono scritti nel bucket. Ciò potrebbe non essere ideale perché potrebbe causare un lieve aumento di consumo dell'archivio. Inoltre, i registri aggiuntivi relativi ai log potrebbero rendere difficile trovare il log che si sta cercando. Se si sceglie di salvare i log di accesso nel bucket di origine, è consigliabile specificare un prefisso per tutte le chiavi degli oggetti del log, in modo che i nomi degli oggetti inizino con una stringa comune e gli oggetti di log siano semplici da identificare. I prefissi chiave sono utili anche per distinguere i bucket di origine quando i bucket multipli si collegano allo stesso bucket di destinazione.

1. **(Facoltativo) Identificare un prefisso per le chiavi degli oggetti di log.** Il prefisso semplifica l'individuazione degli oggetti del log. Ad esempio, se specifichi il valore del prefisso`logs/`, ogni oggetto di registro creato da Lightsail inizia con il prefisso `logs/` nella sua chiave. La barra finale `/` è necessaria per segnalare la fine del prefisso. Di seguito un esempio di chiave di log degli oggetti con `logs/` prefisso:

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

## Formato della chiave dell'oggetto del log
<a name="log-object-key-format"></a>

Lightsail utilizza il seguente formato di chiave oggetto per gli oggetti di registro che carica nel bucket di destinazione:

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

Nella chiave, le cifre in `YYYY`, `mm`, `DD`, `HH`, `MM` e `SS` indicano rispettivamente anno, mese, giorno, ora, minuti e secondi in cui è stato distribuito il file di log. Date e ore sono in formato UTC.

Un file di log distribuito in un orario specifico può contenere report scritti in un momento qualsiasi prima di quell'orario. Non esiste modo di sapere se tutti i report del log per un determinato intervallo di tempo sono stati distribuiti o meno.

Il componente `UniqueString` della chiave serve a impedire che i file vengano sovrascritti. Non ha alcun significato e il software di elaborazione dei log dovrebbe ignorarlo.

## Come vengono distribuiti i log?
<a name="how-are-logs-delivered"></a>

Lightsail raccoglie periodicamente i record dei log di accesso, li consolida in file di registro e quindi carica i file di registro nel bucket di destinazione come oggetti di registro. Se si abilita la registrazione in più bucket di origine che identificano lo stesso bucket di destinazione, nel bucket di destinazione saranno presenti i log di accesso per tutti i bucket di origine. Ogni oggetto del log, tuttavia, fornisce i report del log di accesso per uno specifico bucket di origine.

## Miglior tentativo di accesso al log di distribuzione
<a name="best-effort-access-log-delivery"></a>

I report dei log di accesso vengono distribuiti sulla base del miglior tentativo. La maggior parte delle richieste di un bucket correttamente configurato per la registrazione determinano la consegna di un report del log. La maggior parte dei record di log viene consegnata entro poche ore dal momento della creazione, ma possono essere consegnati con maggior frequenza.

La completezza e la tempestività della registrazione degli accessi non è tuttavia garantita. È possibile che il report del log per una richiesta specifica venga consegnato molto tempo dopo l'elaborazione effettiva della richiesta o non venga consegnato affatto. Lo scopo di accedere ai log del server è fornire un'idea sulla natura del traffico nel bucket. I report del log vengono persi raramente, ma la registrazione degli accessi non intende essere un resoconto completo di tutte le richieste.

## Tempo richiesto per l'applicazione delle modifiche dello stato di registrazione del bucket
<a name="bucket-logging-status-changes"></a>

L'applicazione effettiva delle modifiche dello stato di registrazione di un bucket sulla distribuzione dei file di log richiede tempo. Ad esempio, se si abilita la registrazione per un bucket, è possibile che nell'ora successiva alcune richieste vengano registrate nel log e altre no. Se si cambia il bucket di destinazione per la registrarsi dal bucket A al bucket B, è possibile che nell'ora successiva alcuni log continuino a essere distribuiti nel bucket A, mentre altri vengano consegnati nel nuovo bucket di destinazione, B. In ogni caso, le nuove impostazioni vengono in seguito applicate automaticamente.

**Topics**
+ [

## Cosa occorre per abilitare la consegna dei log?
](#access-log-delivery)
+ [

## Formato della chiave dell'oggetto del log
](#log-object-key-format)
+ [

## Come vengono distribuiti i log?
](#how-are-logs-delivered)
+ [

## Miglior tentativo di accesso al log di distribuzione
](#best-effort-access-log-delivery)
+ [

## Tempo richiesto per l'applicazione delle modifiche dello stato di registrazione del bucket
](#bucket-logging-status-changes)
+ [Formato del log di accesso](amazon-lightsail-bucket-access-log-format.md)
+ [Gestisci i log di accesso](amazon-lightsail-enabling-bucket-access-logs.md)
+ [Utilizzo dei log di accesso](amazon-lightsail-using-bucket-access-logs.md)

# Analizza l'accesso allo storage degli oggetti con i log dei bucket Lightsail
<a name="amazon-lightsail-bucket-access-log-format"></a>

La registrazione degli accessi fornisce record dettagliati per le richieste effettuate a un bucket nel servizio di storage di oggetti Amazon Lightsail. È possibile utilizzare i log di accesso per controlli di sicurezza e accesso o per conoscere meglio la propria base clienti. In questa sezione vengono descritti il formato e altri dettagli relativi ai file di log degli accessi. Per ulteriori informazioni sui principi di base della registrazione, consulta [Log di accesso del bucket](amazon-lightsail-bucket-access-logs.md).

I file di log di accesso sono composti da una sequenza di report delimitati da una nuova riga. Ogni record di log rappresenta una richiesta ed è composto da campi delimitati da spazio.

Di seguito è riportato un esempio di log composto da cinque report.

```
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**  
Qualsiasi campo di un record di log si può impostare su `–` (trattino) se i dati sono sconosciuti o non disponibili, oppure se la richiesta non si applica a quel campo.

**Indice**
+ [Campi del record di log](#log-record-fields)
+ [Registrazione aggiuntiva per le operazioni di copia](#additional-logging-for-copy-operations)
+ [Informazioni sui log di accesso personalizzati](#custom-access-log-information)
+ [Considerazioni di programmazione per il formato esteso dei log di accesso](#programing-considerations)

## Campi del record di log
<a name="log-record-fields"></a>

L'elenco di seguito descrive i campi dei record di log.

**Punti di accesso ARN (Amazon Resource Name)**

L'Amazon Resource Name (ARN) del punto di accesso della richiesta. Se un punto di accesso ARN non è valido o non viene utilizzato, il campo conterrà un '-'. Per ulteriori informazioni sui punti di accesso, consultare [Utilizzo dei punti di accesso](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html). Per ulteriori informazioni ARNs, consulta l'argomento su [Amazon Resource Name (ARN)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) nell'*AWS General* Reference.

Esempio di inserimento

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

**Proprietario del bucket**

L'ID utente canonico del proprietario del bucket di origine. L'ID dell'utente canonico è un'altra tipologia dell'account AWS ID. Per ulteriori informazioni sull'ID utente canonico, consultare [ID account di AWS](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html) nei *Riferimenti generali di AWS*. Per informazioni su come trovare l'ID utente canonico per il tuo account, consultare [Ricerca dell'ID utente canonico per l'account AWS](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html#FindingCanonicalId).

Esempio di inserimento

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
```

**Bucket**

Il nome del bucket per cui è stata elaborata la richiesta. Se il sistema riceve una richiesta non corretta e non riesce a determinare il bucket, tale richiesta non apparirà in alcun log di accesso.

Esempio di inserimento

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

**Time** (Orario)

L'ora di ricezione della richiesta; queste date e ore sono in formato UTC. Il formato, utilizzando la terminologia *strftime()*, è il seguente: *[%d/%b/%Y:%H:%M:%S %z]*

Esempio di inserimento

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

**IP remoto**

L'indirizzo Internet apparente del richiedente. Dei proxy e firewall intermedi potrebbero oscurare l'indirizzo effettivo della macchina che effettua la richiesta.

Esempio di inserimento

```
192.0.2.3
```

**Richiedente**

L'ID utente canonico del richiedente o `-` per richieste non autenticate. Se il richiedente è un utente IAM, questo campo restituisce il nome utente IAM del richiedente insieme al suo account root AWS. Questo identificatore è lo stesso che viene usato per accedere a scopi di controllo.

Esempio di inserimento

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
```

**ID della richiesta**

Una stringa generata da Lightsail per identificare in modo univoco ogni richiesta.

Esempio di inserimento

```
3E57427F33A59F07
```

**Operazioni**

Le operazioni qui elencate vengono dichiarate come `SOAP.operation`, `REST.HTTP_method.resource_type`, `WEBSITE.HTTP_method.resource_type` oppure `BATCH.DELETE.OBJECT`.

Esempio di inserimento

```
REST.PUT.OBJECT
```

**Chiave**

La parte "chiave" della richiesta, in formato URL encoding, oppure "-" se l'operazione non prevede un parametro chiave.

Esempio di inserimento

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

**URI della richiesta**

La parte URI della richiesta del messaggio di richiesta HTTP.

Esempio di inserimento

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

**Stato HTTP**

Il codice di stato HTTP numerico della risposta.

Esempio di inserimento

```
200
```

**Codice di errore**

Il[Codice di errore](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingRESTError.html#ErrorCode) Amazon S3 o "-" se non si è verificato alcun errore.

Esempio di inserimento

```
NoSuchBucket
```

**Byte inviati**

Il numero di byte della risposta inviati, a esclusione di overhead di protocollo HTTP, o "-" se uguale a zero.

Esempio di inserimento

```
2662992
```

**Dimensione oggetto**

La dimensione totale dell'oggetto in questione.

Esempio di inserimento

```
3462992
```

**Tempo totale**

Il numero di millisecondi durante i quali la richiesta è stata in transito dalla prospettiva del bucket. Questo valore viene misurato dal momento in cui si riceve la richiesta al momento in cui viene inviato l'ultimo byte di risposta. Le misurazioni effettuate dalla prospettiva del cliente potrebbero essere più lunghe in ragione della latenza di rete.

Esempio di inserimento

```
70
```

**Tempo di rotazione**

Il numero di millisecondi che Lightsail ha impiegato per elaborare la tua richiesta. Questo valore viene misurato dal momento in cui si riceve l'ultimo byte della richiesta al momento in cui viene inviato il primo byte di risposta.

Esempio di inserimento

```
10
```

**Referente**

Il valore dell'intestazione del referer HTTP, se presente. Gli utenti-agenti HTTP (ad esempio, i browser) generalmente impostano questa intestazione sull'URL della pagina di collegamento o incorporazione quando viene effettuata una richiesta.

Esempio di inserimento

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

**Agente utente**

Il valore dell'intestazione dell'utente-agente HTTP.

Esempio di inserimento

```
"curl/7.15.1"
```

**Versione ID**

L'ID della versione nella richiesta oppure `-` se l'operazione non prevede un `versionId` parametro.

Esempio di inserimento

```
3HL4kqtJvjVBH40Nrjfkd
```

**ID host**

L'ID della x-amz-id richiesta estesa -2 o Lightsail.

Esempio di inserimento

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

**Signature Version**

La versione della firma, `SigV2` o `SigV4`, utilizzata per autenticare la richiesta o un `-` per richieste non autenticate.

Esempio di inserimento

```
SigV2
```

**Pacchetti di crittografia**

La crittografia Secure Sockets Layer (SSL) negoziata per richieste HTTPS o un `-` per HTTP.

Esempio di inserimento

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

**Tipo di autenticazione**

Il tipo di autenticazione di richiesta utilizzato, `AuthHeader` per intestazioni autenticate, `QueryString` per stringa di query (URL prefirmato) o un `-` per richieste non autenticate.

Esempio di inserimento

```
AuthHeader
```

**Intestazione dell'host**

L'endpoint utilizzato per connettersi a Lightsail.

Esempio di inserimento

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

**Versione TLS**

La versione di Transport Layer Security (TLS) negoziata dal client. Il valore è uno dei seguenti: `TLSv1`, `TLSv1.1`, `TLSv1.2`; altrimenti `-` se non è stato utilizzato TLS.

Esempio di inserimento

```
TLSv1.2
```

## Registrazione aggiuntiva per operazioni di copia
<a name="additional-logging-for-copy-operations"></a>

Un'operazione di copia implica un `GET` e un `PUT`. Per questa ragione, vengono registrati due report quando si effettua un'operazione di logging. La tabella precedente descrive i campi che si riferiscono alla parte `PUT` dell'operazione. L'elenco di seguito descrive i campi nel record che si riferiscono alla parte `GET` dell'operazione di copia.

**Proprietario del bucket**

L'ID utente canonico del bucket archivia l'oggetto che viene copiato. L'ID dell'utente canonico è un'altra tipologia dell'account AWS ID. Per ulteriori informazioni sull'ID utente canonico, consultare [ID account di AWS](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html) nei *Riferimenti generali di AWS*. Per informazioni su come trovare l'ID utente canonico per il tuo account, consultare [Ricerca dell'ID utente canonico per l'account AWS](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html#FindingCanonicalId).

Esempio di inserimento

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
```

**Bucket**

Il nome del bucket che archivia l'oggetto che viene copiato.

Esempio di inserimento

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

**Time** (Orario)

L'ora di ricezione della richiesta; queste date e ore sono in formato UTC. Il formato, utilizzando la terminologia `strftime()`, è il seguente: `[%d/%B/%Y:%H:%M:%S %z]`

Esempio di inserimento

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

**IP remoto**

L'indirizzo Internet apparente del richiedente. Dei proxy e firewall intermedi potrebbero oscurare l'indirizzo effettivo della macchina che effettua la richiesta.

Esempio di inserimento

```
192.0.2.3
```

**Richiedente**

L'ID utente canonico del richiedente o `-` per richieste non autenticate. Se il richiedente dovesse essere un utente IAM, questo campo restituirà il nome utente IAM del richiedente insieme all'account root AWS a cui appartiene l'utente IAM. Questo identificatore è lo stesso che viene usato per accedere a scopi di controllo.

Esempio di inserimento

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
```

**ID della richiesta**

Una stringa generata da Lightsail per identificare in modo univoco ogni richiesta.

Esempio di inserimento

```
3E57427F33A59F07
```

**Operazioni**

Le operazioni qui elencate vengono dichiarate come `SOAP.operation`, `REST.HTTP_method.resource_type`, `WEBSITE.HTTP_method.resource_type` oppure `BATCH.DELETE.OBJECT`.

Esempio di inserimento

```
REST.COPY.OBJECT_GET
```

**Chiave**

La "chiave" dell'oggetto che viene copiato o "-" se l'operazione non prevede un parametro chiave.

Esempio di inserimento

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

**URI della richiesta**

La parte URI della richiesta del messaggio di richiesta HTTP.

Esempio di inserimento

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

**Stato HTTP**

Il codice di stato HTTP numerico della porzione `GET` dell'operazione di copia.

Esempio di inserimento

```
200
```

**Codice di errore**

Il Codice di errore Amazon S3 della `GET` porzione di operazione copia o `-` se non si è verificato alcun errore.

Esempio di inserimento

```
NoSuchBucket
```

**Byte inviati**

Il numero di byte della risposta inviati, a esclusione di overhead di protocollo HTTP, o "-" se uguale a zero.

Esempio di inserimento

```
2662992
```

**Dimensione oggetto**

La dimensione totale dell'oggetto in questione.

Esempio di inserimento

```
3462992
```

**Tempo totale**

Il numero di millisecondi durante i quali la richiesta è stata in transito dalla prospettiva del bucket. Questo valore viene misurato dal momento in cui si riceve la richiesta al momento in cui viene inviato l'ultimo byte di risposta. Le misurazioni effettuate dalla prospettiva del cliente potrebbero essere più lunghe in ragione della latenza di rete.

Esempio di inserimento

```
70
```

**Tempo di rotazione**

Il numero di millisecondi che Lightsail ha impiegato per elaborare la tua richiesta. Questo valore viene misurato dal momento in cui si riceve l'ultimo byte della richiesta al momento in cui viene inviato il primo byte di risposta.

Esempio di inserimento

```
10
```

**Referente**

Il valore dell'intestazione del referer HTTP, se presente. Gli utenti-agenti HTTP (ad esempio, i browser) generalmente impostano questa intestazione sull'URL della pagina di collegamento o incorporazione quando viene effettuata una richiesta.

Esempio di inserimento

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

**Agente utente**

Il valore dell'intestazione dell'utente-agente HTTP.

Esempio di inserimento

```
"curl/7.15.1"
```

**Versione Id**

L'ID versione dell'oggetto che viene copiato oppure `-` se `x-amz-copy-source` l'intestazione non specificava un `versionId` parametro come parte dell'origine della copia.

Esempio di inserimento

```
3HL4kqtJvjVBH40Nrjfkd
```

**ID host**

L'ID della x-amz-id richiesta estesa -2 o Lightsail.

Esempio di inserimento

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

**Signature Version**

La versione della firma, `SigV2` o `SigV4`, utilizzata per autenticare la richiesta o un `-` per richieste non autenticate.

Esempio di inserimento

```
SigV2
```

**Pacchetti di crittografia**

La crittografia Secure Sockets Layer (SSL) negoziata per richieste HTTPS o un `-` per HTTP.

Esempio di inserimento

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

**Tipo di autenticazione**

Il tipo di autenticazione della richiesta utilizzato, `AuthHeader` per intestazioni autenticate, `QueryString` per stringa di query (URL prefirmato) o un `-` per richieste non autenticate.

Esempio di inserimento

```
AuthHeader
```

**Intestazione dell'host**

L'endpoint utilizzato per connettersi a Lightsail.

Esempio di inserimento

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

**Versione TLS**

La versione di Transport Layer Security (TLS) negoziata dal client. Il valore è uno dei seguenti: `TLSv1`, `TLSv1.1`, `TLSv1.2`; altrimenti `-` se non è stato utilizzato TLS.

Esempio di inserimento

```
TLSv1.2
```

## Informazioni sui log di accesso personalizzati
<a name="custom-access-log-information"></a>

È possibile includere informazioni personalizzate da memorizzare nel record del log di accesso per una richiesta. A tale scopo, aggiungere un parametro di stringa query personalizzato all'URL per la richiesta. Lightsail ignora i parametri della stringa di query che iniziano con «x-», ma li include nel record del log di accesso per la richiesta, come parte del campo del record di `Request-URI` registro.

Ad esempio, una richiesta `GET` per `"s3.amazonaws.com/amzn-s3-demo-bucket/photos/2019/08/puppy.jpg?x-user=johndoe"` funziona come la richiesta `"s3.amazonaws.com/amzn-s3-demo-bucket/photos/2019/08/puppy.jpg"`, ad eccezione del fatto che la stringa `"x-user=johndoe"` è inclusa nel campo `Request-URI` per il record di log associato. Questa funzionalità è disponibile solo nell'interfaccia REST.

## Considerazioni in materia di programmazione per il formato esteso di log di accesso al server
<a name="programing-considerations"></a>

Occasionalmente è possibile estendere il formato del report di log d'accesso aggiungendo nuovi campi alla fine di ogni linea. Pertanto, è necessario scrivere qualsiasi codice che analizzi i log di accesso al server per gestire i campi in coda che potrebbero non essere riconosciuti.

# Abilita la registrazione degli accessi ai bucket in Lightsail
<a name="amazon-lightsail-enabling-bucket-access-logs"></a>

La registrazione degli accessi fornisce record dettagliati per le richieste effettuate a un bucket nel servizio di storage di oggetti Amazon Lightsail. I log di accesso sono utili per numerose applicazioni. Ad esempio, tali informazioni possono essere utilizzate nei controlli di sicurezza e di accesso. Inoltre, possono aiutarti a capire meglio i tuoi clienti.

Per impostazione predefinita, Lightsail non raccoglie i log di accesso per i tuoi bucket. Quando abiliti la registrazione, Lightsail invia i log di accesso per un bucket di origine a un bucket di destinazione di tua scelta. Sia il bucket di origine che quello di destinazione devono trovarsi nello stesso account e appartenere allo stesso Regione AWS account.

Un record di log degli accessi contiene informazioni dettagliate sulle richieste effettuate a un bucket, I report possono includere informazioni quali il tipo di richiesta, le risorse in essa specificate, l'ora e la data di elaborazione. In questa guida, ti mostriamo come abilitare o disabilitare la registrazione degli accessi per i tuoi bucket utilizzando l'API Lightsail, the () AWS Command Line Interface o AWS.AWS CLI SDKs

Per ulteriori informazioni sui principi di base della registrazione, consulta [Log di accesso del bucket](amazon-lightsail-bucket-access-logs.md).

**Indice**
+ [Costi per la registrazione degli accessi](#costs-for-access-logging)
+ [Abilitazione della registrazione degli accessi tramite la AWS CLI](#enabling-access-logging)
+ [Disabilitazione della registrazione degli accessi tramite la AWS CLI](#disabling-access-logging)

## Costi per la registrazione degli accessi
<a name="costs-for-access-logging"></a>

L'abilitazione della registrazione degli accessi al server per un bucket non prevede addebiti aggiuntivi. Tuttavia, i file di log distribuiti dal sistema a un bucket esauriscono lo spazio di archiviazione. È possibile eliminare i file di log in qualsiasi momento. Il costo di trasferimento dei dati per la distribuzione dei file di log non viene calcolato quando il trasferimento dei dati del bucket di log è compreso nell'indennità mensile configurata.

Nel proprio bucket di destinazione non deve avere abilitata la registrazione degli accessi al server. I registri possono essere distribuiti a tutti i bucket di cui si è proprietari che si trovano nella stessa regione del bucket di origine, incluso il bucket di origine stesso. Tuttavia, per una gestione più semplice dei registri, consigliamo di salvare i log di accesso in un bucket diverso.

## Abilita la registrazione degli accessi utilizzando il AWS CLI
<a name="enabling-access-logging"></a>

Per abilitare la registrazione degli accessi per i tuoi bucket, ti consigliamo di creare un bucket di registrazione dedicato in ognuno Regione AWS dei bucket che possiedi. Poi di salvare il log di accesso al bucket di registrazione dedicato.

Completa la seguente procedura per abilitare la registrazione degli accessi utilizzando la AWS CLI.

**Nota**  
È necessario installare AWS CLI e configurarlo per Lightsail prima di continuare con questa procedura. Per ulteriori informazioni, consulta [Configurare la funzionalità AWS CLI per l'utilizzo con Lightsail](lightsail-how-to-set-up-and-configure-aws-cli.md).

1. Aprire un prompt dei comandi o una finestra del terminale sul proprio computer.

1. Immettere il seguente comando per abilitare la registrazione degli accessi.

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

   Nel comando sostituisci il seguente testo d'esempio con il proprio testo:
   + *SourceBucketName*- Il nome del bucket di origine per il quale verranno creati i log di accesso.
   + *TargetBucketName*— Il nome del bucket di destinazione in cui verranno salvati i log di accesso.
   + *ObjectKeyNamePrefix/*- Il prefisso opzionale del nome della chiave dell'oggetto per i log di accesso. Il prefisso deve terminare con una barra (`/`).

   **Esempio**

   ```
   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/\"}"
   ```

   Nell'esempio, *amzn-s3-demo-bucket1* è il bucket di origine per il quale verranno creati i log di accesso, *amzn-s3-demo-bucket2* è il bucket di destinazione in cui verranno salvati i log di accesso ed *logs/amzn-s3-demo-bucket1/* è il prefisso del nome della chiave dell'oggetto per i log di accesso.

   Una volta avviato il comando è possibile vedere un risultato analogo nel seguente esempio. Il bucket di origine viene aggiornato e i log di accesso dovrebbero iniziare ad essere generati e memorizzati nel bucket di destinazione.  
![\[Registrazione degli accessi ad un bucket abilitato\]](http://docs.aws.amazon.com/it_it/lightsail/latest/userguide/images/amazon-lightsail-enable-access-logging-for-a-bucket.png)

## Disabilitazione della registrazione degli accessi utilizzando AWS CLI
<a name="disabling-access-logging"></a>

Completa la procedura seguente per disabilitare la registrazione degli accessi utilizzando la AWS CLI.

**Nota**  
È necessario installare AWS CLI e configurarlo per Lightsail prima di continuare con questa procedura. Per ulteriori informazioni, consulta [Configurare la funzionalità AWS CLI per l'utilizzo con Lightsail](lightsail-how-to-set-up-and-configure-aws-cli.md).

1. Aprire un prompt dei comandi o una finestra del terminale sul proprio computer.

1. Immettere il seguente comando per disabilitare la registrazione degli accessi.

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

   Nel comando, sostituiscilo *SourceBucketName* con il nome del bucket di origine per il quale disabilitare la registrazione degli accessi.

   **Esempio**

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

   Si dovrebbe vedere un risultato analogo al seguente esempio, che mostra il nuovo container in esecuzione.  
![\[La registrazione degli accessi al server è stata disabilitata per un bucket\]](http://docs.aws.amazon.com/it_it/lightsail/latest/userguide/images/amazon-lightsail-disable-access-logging-for-a-bucket.png)

# Analizza i log di accesso ai bucket con Amazon Athena in Lightsail
<a name="amazon-lightsail-using-bucket-access-logs"></a>

In questa guida viene illustrato come identificare le richieste ad un bucket utilizzando i log di accesso. Per ulteriori informazioni, consulta [Log di accesso a un bucket](amazon-lightsail-bucket-access-logs.md).

**Indice**
+ [Esecuzione di query sui log di accesso per le richieste tramite Amazon Athena](#querying-access-logs-for-requests)
+ [Identificazione delle richieste di accesso agli oggetti tramite i log di accesso di Amazon S3](#identifying-object-access-requests)

## Esecuzione di query sui log di accesso per le richieste tramite Amazon Athena
<a name="querying-access-logs-for-requests"></a>

É possibile utilizzare Amazon Athena per interrogare e identificare le richieste di un bucket nei registri di accesso.

Lightsail archivia i log di accesso come oggetti in un bucket Lightsail. Spesso è più semplice utilizzare uno strumento in grado di analizzare i log. Athena supporta l'analisi di oggetti e può essere utilizzato per eseguire query sui log degli accessi..

**Esempio**

L'esempio seguente mostra come eseguire query sui log degli accessi al server del bucket in Amazon Athena.

**Nota**  
Per specificare una posizione in un query Athena, è necessario formattare il nome del bucket di destinazione e il prefisso di destinazione in cui i log vengono recapitati come URI S3, come segue: `s3://amzn-s3-demo-bucket1-logs/prefix/`

1. Apri la console Athena all'indirizzo [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/).

1. Nel **Query Editor** esegui un comando simile al seguente.

   ```
   create database bucket_access_logs_db
   ```
**Nota**  
È consigliabile creare il database nello stesso bucket S3. Regione AWS 

1. Nel **Query Editor** eseguire un comando simile al seguente per creare uno schema di tabella nel database creato nella fase 2. I valori dei tipi di dati `STRING` e `BIGINT` sono le proprietà del log di accesso. È possibile eseguire query su queste proprietà in Athena. Per `LOCATION`, immettere il percorso del prefisso e il bucket come indicato precedentemente.

   ```
   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. Nel riquadro di navigazione, in **Database**, scegliere il database.

1. In **Tables (Tabelle)**, scegliere **Preview table (Anteprima tabella)** accanto al nome della tabella.

   Nel pannello **Results (Risultati)**, dovrebbero essere visualizzati i dati dai log di accesso al server, come `bucketowner`, `bucket`, `requestdatetime` e così via. Questo indica che la tabella Athena è stata creata correttamente. È ora possibile eseguire query sui log di accesso al server del bucket.

**Esempio: Visualizza chi ha eliminato un oggetto e quando (timestamp, indirizzo IP e utente 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%';
```

**Esempio: Visualizza tutte le operazioni eseguite da un utente IAM**

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

**Esempio: Visualizza tutte le operazioni eseguite su un oggetto in un periodo di tempo specifico**

```
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');
```

**Esempio: Visualizza la quantità di dati trasferiti da un indirizzo IP specifico in un determinato periodo di tempo**

```
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');
```

## Identificazione delle richieste di accesso agli oggetti tramite i log di accesso di Amazon S3
<a name="identifying-object-access-requests"></a>

È possibile utilizzare le query sui log di accesso per operazioni quali *GET*, *PUT* e *DELETE* e per reperire ulteriori informazioni su tali richieste.

L'esempio di query Amazon Athena seguente mostra come ottenere tutte le `PUT`richieste per un bucket dal log degli accessi al server.

**Esempio: Visualizza tutti i richiedenti che inviano richieste PUT per oggetti in un determinato periodo**

```
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')
```

L'esempio di query Amazon Athena seguente mostra come ottenere tutte le richieste GET di oggetti per Amazon S3 dal log degli accessi al server.

**Esempio: Visualizza tutti i richiedenti che inviano richieste GET per oggetti in un determinato periodo**

```
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')
```

L'esempio di query Amazon Athena seguente mostra come ottenere tutte le richieste anonime ai bucket S3 dal log degli accessi al server.

**Esempio: Visualizza tutti i richiedenti anonimi che effettuano richieste a un bucket in un determinato periodo**

```
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**  
È possibile modificare l'intervallo di data in base alle esigenze.
Questi esempi di query possono essere utili anche per il monitoraggio della sicurezza. Puoi esaminare i risultati `PutObject` o le `GetObject` chiamate provenienti da un IP imprevisto o non autorizzato addresses/requesters e identificare eventuali richieste anonime dirette ai tuoi bucket.
La query recupera solo le informazioni a partire dall'orario in cui è stata abilitata la registrazione.