

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

# Registrazione delle richieste con registrazione dell'accesso al server
<a name="ServerLogs"></a>

La registrazione degli accessi al server fornisce record dettagliati per le richieste che sono effettuate a un bucket. I log di accesso al server sono utili per numerose applicazioni. Ad esempio, le informazioni del log di accesso possono essere utili nei controlli di accesso e di sicurezza. Queste informazioni possono essere utili anche per comprendere la base clienti e la fattura Amazon S3.

**Nota**  
I log degli accessi al server non registrano le informazioni sugli errori di reindirizzamento a regioni sbagliate per le regioni lanciate dopo il 20 marzo 2019. Errori di reindirizzamento della regione errata si verificano quando una richiesta per un oggetto o un bucket viene effettuata al di fuori della regione in cui si trova il bucket. 

## Come si abilita il recapito dei log?
<a name="server-access-logging-overview"></a>

Per abilitare la distribuzione dei log, attenersi alla procedura di base riportata di seguito. Per informazioni dettagliate, vedi [Abilitazione della registrazione degli accessi al server Amazon S3](enable-server-access-logging.md).

1. **Fornisci il nome del bucket di destinazione** (noto anche come *bucket di destinazione*). Questo bucket è dove vuoi che Amazon S3 salvi i log di accesso come oggetti. Sia i bucket di origine che quelli di destinazione devono trovarsi nella stessa Regione AWS e devono appartenere allo stesso account. Il bucket di destinazione non deve avere una configurazione del periodo di conservazione predefinita di S3 Object Lock. Inoltre, nel bucket di destinazione l'opzione di pagamento a carico del cliente non deve essere abilitata.

   È possibile far recapitare i log a qualsiasi bucket di proprietà che si trovi nella stessa Regione del bucket di origine, compreso 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 il bucket di origine e il bucket di destinazione sono lo stesso bucket, vengono creati log aggiuntivi per i log che sono scritti nel bucket, il che crea un loop di log infinito. Ciò potrebbe non essere ideale perché potrebbe causare un piccolo incremento di fatturazione dello storage. Inoltre, i registri aggiuntivi relativi ai log potrebbero rendere difficile trovare il log che si sta cercando. 

   Se scegli di salvare i log degli accessi nel bucket di origine, è consigliabile specificare un prefisso di destinazione (noto anche come *prefisso target*) per tutte le chiavi degli oggetti del log. Quando specifichi un prefisso, tutti i nomi degli oggetti del log iniziano con una stringa comune, che semplifica l'identificazione degli oggetti del log. 

1. **(Facoltativo) Assegna un prefisso a tutte le chiavi degli oggetti del log Amazon S3.** Il prefisso di destinazione (noto anche come *prefisso target*) semplifica l'individuazione degli oggetti del log. Se, ad esempio, specifichi il valore di prefisso `logs/`, ogni chiave degli oggetti del log creato da Amazon S3 è preceduta dal prefisso `logs/`.

   ```
   logs/2013-11-01-21-32-16-E568B2907131C0C0
   ```

   Se specifichi il valore del prefisso `logs`, l'oggetto del log viene visualizzato come segue:

   ```
   logs2013-11-01-21-32-16-E568B2907131C0C0
   ```

   I [prefissi](https://docs.aws.amazon.com/general/latest/gr/glos-chap.html#keyprefix) sono utili anche per distinguere tra i bucket di origine quando più bucket si collegano allo stesso bucket di destinazione.

   Il prefisso può essere utile nell'eliminazione dei log. Ad esempio, è possibile impostare una regola di configurazione del ciclo di vita per Amazon S3 per eliminare gli oggetti con un prefisso specifico. Per ulteriori informazioni, consulta [Eliminazione dei file di log Amazon S3](deleting-log-files-lifecycle.md).

1. **(Facoltativo) Imposta autorizzazioni **che consentano ad altri utenti di accedere ai log generati.** Per default, solo il proprietario del bucket dispone di tutte le autorizzazioni per accedere agli oggetti del log. *Se il bucket di destinazione utilizza l'impostazione imposta dal proprietario del bucket per S3 Object Ownership per disabilitare gli elenchi di controllo degli accessi (ACLs), non puoi concedere le autorizzazioni nelle sovvenzioni di destinazione (note anche come sovvenzioni di destinazione) che utilizzi.* ACLs Tuttavia, puoi aggiornare la policy di bucket per il bucket di destinazione per concedere l'accesso ad altri utenti. Per ulteriori informazioni, consultare [Identity and Access Management per Amazon S3](security-iam.md) e [Autorizzazioni per la distribuzione dei registri](enable-server-access-logging.md#grant-log-delivery-permissions-general). 

1. **(Facoltativo) Imposta un formato della chiave dell'oggetto di log per i file di log.** Sono disponibili due opzioni per il formato della chiave dell'oggetto di log (noto anche come *formato chiave dell'oggetto target*): 
   + **Non-date-based partizionamento**: questo è il formato originale della chiave dell'oggetto di registro. Se scegli questo formato, il formato della chiave del file di log viene visualizzato come segue: 

     ```
     [DestinationPrefix][YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]
     ```

     Ad esempio, se specifichi `logs/` come prefisso, gli oggetti di log vengono denominati in questo modo: 

     ```
     logs/2013-11-01-21-32-16-E568B2907131C0C0
     ```
   + **Partizionamento basato sulla data**: se scegli il partizionamento basato sulla data, puoi scegliere l'ora dell'evento o l'ora di consegna per il file di log come origine della data utilizzata nel formato di log. Questo formato semplifica l'interrogazione dei log.

     Se scegli il partizionamento basato sulla data, il formato chiave del file di log viene visualizzato come segue: 

     ```
     [DestinationPrefix][SourceAccountId]/[SourceRegion]/[SourceBucket]/[YYYY]/[MM]/[DD]/[YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]
     ```

     Ad esempio, se specifichi `logs/` come prefisso target, gli oggetti del log vengono denominati in questo modo:

     ```
     logs/123456789012/us-west-2/amzn-s3-demo-source-bucket/2023/03/01/2023-03-01-21-32-16-E568B2907131C0C0
     ```

     Per l'ora di consegna, l'ora indicato nei nomi dei file di log corrisponde all'ora di consegna dei file di log. 

     Per quanto riguarda l'ora di consegna degli eventi, l'anno, il mese e il giorno corrispondono al giorno in cui si è verificato l'evento e l'ora, i minuti e i secondi sono impostati su `00` nella chiave. I log forniti in questi file di log riguardano solo un giorno specifico. 

   

   Se configuri i log tramite AWS Command Line Interface (AWS CLI) o l'API REST di Amazon S3 AWS SDKs, `TargetObjectKeyFormat` usali per specificare il formato della chiave dell'oggetto di registro. Per specificare il non-date-based partizionamento, usa. `SimplePrefix` Per specificare un partizionamento basato sulla data, utilizza `PartitionedPrefix`. Se si utilizza `PartitionedPrefix`, utilizza `PartitionDateSource` per specificare `EventTime` o `DeliveryTime`.

   Infatti `SimplePrefix`, il formato della chiave del file di log è il seguente:

   ```
   [TargetPrefix][YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]
   ```

   Per `PartitionedPrefix` con l'ora dell'evento o l'ora di consegna, il formato della chiave del file di log viene visualizzato come segue:

   ```
   [TargetPrefix][SourceAccountId]/[SourceRegion]/[SourceBucket]/[YYYY]/[MM]/[DD]/[YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]
   ```

## Formato della chiave dell'oggetto di log
<a name="server-log-keyname-format"></a>

Amazon S3 utilizza i formati della chiave dell'oggetto seguenti per gli oggetti di log che carica nel bucket di destinazione:
+ **Non-date-based partizionamento**: questo è il formato originale della chiave dell'oggetto di registro. Se scegli questo formato, il formato della chiave del file di log viene visualizzato come segue: 

  ```
  [DestinationPrefix][YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]
  ```
+ **Partizionamento basato sulla data**: se scegli il partizionamento basato sulla data, puoi scegliere l'ora dell'evento o l'ora di consegna per il file di log come origine della data utilizzata nel formato di log. Questo formato semplifica l'interrogazione dei log.

  Se scegli il partizionamento basato sulla data, il formato chiave del file di log viene visualizzato come segue: 

  ```
  [DestinationPrefix][SourceAccountId]/[SourceRegion]/[SourceBucket]/[YYYY]/[MM]/[DD]/[YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]
  ```

Nella chiave dell'oggetto di log, `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-logs-delivered"></a>

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

Amazon S3 utilizza uno speciale account di recapito di log per scrivere i log degli accessi nel server. Queste scritture sono soggette alle normali restrizioni del controllo accessi. Si consiglia di aggiornare la policy del bucket nel bucket di destinazione per concedere l'accesso al principale del servizio di registrazione di log (`logging.s3.amazonaws.com`) per la consegna di log degli accessi. Puoi anche concedere l'accesso per la consegna di log degli accessi al gruppo di consegna di log S3 tramite la lista di controllo degli accessi (ACL) del bucket. Tuttavia, non è consigliabile concedere l'accesso al gruppo di consegna di log S3 tramite le ACL del bucket. 

Quando abiliti la registrazione degli accessi al server e si concede l'accesso per la consegna di log di accesso tramite la policy del bucket di destinazione, devi aggiornare la policy per consentire l'accesso `s3:PutObject` al principale del servizio di registrazione dei log. Se utilizzi la console di Amazon S3 per abilitare la registrazione dei log degli accessi al server, la console aggiorna automaticamente la policy del bucket di destinazione per concedere tali autorizzazioni al principale del servizio di registrazione di log. Per ulteriori informazioni sulla concessione di autorizzazioni per il recapito del registro degli accessi al server, consulta [Autorizzazioni per la distribuzione dei registri](enable-server-access-logging.md#grant-log-delivery-permissions-general). 

**Nota**  
S3 non supporta l'invio di CloudTrail log o log di accesso al server al richiedente o al proprietario del bucket per le richieste degli endpoint VPC quando la policy dell'endpoint VPC le nega o per le richieste che falliscono prima che la policy VPC venga valutata.

**Impostazione proprietario del bucket applicato per S3 Object Ownership**  
Se il bucket di destinazione utilizza l'impostazione forzata del proprietario del bucket per la proprietà degli oggetti, sono disabilitati e non influiscono più sulle autorizzazioni. ACLs È necessario aggiornare la policy del bucket nel bucket di destinazione per concedere l'accesso al principale del servizio di registrazione di log. Per ulteriori informazioni su Object Ownership, consulta [Concedere l'accesso al gruppo di consegna di log S3 per la registrazione di log degli accessi al server](object-ownership-migrating-acls-prerequisites.md#object-ownership-server-access-logs).

## Consegna di log del server sulla base del miglior tentativo
<a name="LogDeliveryBestEffort"></a>

I record dei log degli accessi al server 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 vengono distribuiti entro qualche ora dal momento della creazione, ma possono essere distribuiti come maggiore frequenza. 

La completezza e la tempestività della registrazione del server non è tuttavia garantita. È possibile che il record del log per una richiesta specifica venga consegnato molto tempo dopo l'elaborazione effettiva della richiesta o *non venga consegnato affatto*. Potresti persino notare la duplicazione di un record di log. Lo scopo dei log del server è fornire un'idea della natura del traffico nel bucket. Sebbene sia raro perdere i record di log o vedere la duplicazione di un record di log, tieni presente che la registrazione di log del server non intende essere un resoconto completo di tutte le richieste.

Data la natura basata sul miglior tentativo possibile della registrazione di log del server, i report di utilizzo potrebbero includere una o più richieste di accesso che non appaiono in un log del server consegnato. Puoi trovare questi report di utilizzo in **Report costi e utilizzo** nella console Gestione dei costi e fatturazione AWS .

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

L'applicazione effettiva delle modifiche dello stato di registrazione di un bucket sulla distribuzione dei file di log richiede tempo. Ad esempio, se abiliti la registrazione per un bucket, è possibile che nell'ora successiva alcune richieste vengano registrate nel log e altre no. Supponi di cambiare il bucket di destinazione per la registrazione di log dal bucket A al bucket B. Nell'ora successiva, alcuni log potrebbero continuare a essere distribuiti nel bucket A, mentre potrebbero essere consegnati nel nuovo bucket di destinazione, B. In tutti i casi, le nuove impostazioni diventano effettive senza bisogno di ulteriori azioni da parte dell'utente. 

Per ulteriori informazioni su registrazione e file di log, consulta le seguenti sezioni:

**Topics**
+ [

## Come si abilita il recapito dei log?
](#server-access-logging-overview)
+ [

## Formato della chiave dell'oggetto di log
](#server-log-keyname-format)
+ [

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

## Consegna di log del server sulla base del miglior tentativo
](#LogDeliveryBestEffort)
+ [

## Tempo richiesto per l'applicazione delle modifiche dello stato di registrazione del bucket
](#BucketLoggingStatusChanges)
+ [

# Abilitazione della registrazione degli accessi al server Amazon S3
](enable-server-access-logging.md)
+ [

# Formato del log di accesso al server Amazon S3
](LogFormat.md)
+ [

# Eliminazione dei file di log Amazon S3
](deleting-log-files-lifecycle.md)
+ [

# Utilizzo dei log degli accessi al server Amazon S3 per identificare le richieste
](using-s3-access-logs-to-identify-requests.md)
+ [

# Risoluzione dei problemi di registrazione degli accessi al server
](troubleshooting-server-access-logging.md)

# Abilitazione della registrazione degli accessi al server Amazon S3
<a name="enable-server-access-logging"></a>

La registrazione degli accessi al server fornisce record dettagliati per le richieste che sono effettuate a un bucket Amazon S3. I log di accesso al server sono utili per numerose applicazioni. Ad esempio, le informazioni del log di accesso possono essere utili nei controlli di accesso e di sicurezza. Queste informazioni possono essere utili anche per comprendere la base clienti e la fattura Amazon S3.

Per impostazione predefinita, Amazon S3 non raccoglie i log di accesso al server. Quando abiliti la registrazione di log, Amazon S3 fornisce i log degli accessi per un bucket di origine a un bucket di destinazione scelto (noto anche come *bucket target*). Il bucket di destinazione deve trovarsi nello stesso bucket Regione AWS di Account AWS origine. 

Un record di log degli accessi contiene informazioni dettagliate sulle richieste effettuate a un bucket, tra cui il tipo di richiesta, le risorse specificate nella richiesta, nonché l'ora e la data di elaborazione della richiesta. Per ulteriori informazioni sui principi di base della registrazione, consulta [Registrazione delle richieste con registrazione dell'accesso al server](ServerLogs.md). 

**Importante**  
L'abilitazione della registrazione degli accessi al server per un bucket Amazon S3 non prevede addebiti aggiuntivi. Tuttavia, i file di log distribuiti dal sistema accumulano i consueti addebiti per lo storage. È possibile eliminare i file di log in qualsiasi momento. Il costo di trasferimento dei dati per la consegna dei file di log non viene valutato, ma viene addebitata la normale tariffa di trasferimento dei dati per l'accesso ai file di log.
Il bucket di destinazione non deve avere la registrazione di log degli accessi al server abilitata. 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, la distribuzione dei log nel bucket di origine causa un ciclo infinito di log e non è consigliata. Tuttavia, per una gestione più semplice dei log, si consiglia di salvare i log di accesso in un bucket diverso. Per ulteriori informazioni, consulta [Come si abilita il recapito dei log?](ServerLogs.md#server-access-logging-overview)
I bucket S3 con S3 Object Lock abilitato non possono essere utilizzati come bucket di destinazione per i log degli accessi al server. Il bucket di destinazione non deve avere una configurazione del periodo di conservazione predefinita.
Il bucket di destinazione non deve avere l'opzione di pagamento a carico del cliente abilitata.

Puoi abilitare o disabilitare la registrazione degli accessi al server utilizzando la console Amazon S3, l'API Amazon S3, AWS Command Line Interface il AWS CLI() o. AWS SDKs 

## Autorizzazioni per la distribuzione dei registri
<a name="grant-log-delivery-permissions-general"></a>

Amazon S3 utilizza uno speciale account di recapito dei registri per scrivere i registri degli accessi nel server. Queste scritture sono soggette alle normali restrizioni del controllo accessi. Per la consegna di log degli accessi, è necessario concedere al principale (`logging.s3.amazonaws.com`) del servizio di registrazione di log l'accesso al bucket di destinazione.

Per concedere le autorizzazioni ad Amazon S3 per la consegna dei log, puoi utilizzare una policy sui bucket o una lista di controllo dell'accesso ai bucket ACLs (), a seconda delle impostazioni S3 Object Ownership del bucket di destinazione. Tuttavia, ti consigliamo di utilizzare una bucket policy invece di. ACLs 

**Impostazione proprietario del bucket applicato per S3 Object Ownership**  
Se il bucket di destinazione utilizza l'impostazione forzata del proprietario del bucket per la proprietà degli oggetti, ACLs sono disabilitati e non influiscono più sulle autorizzazioni. In questo caso, è necessario aggiornare la policy del bucket nel bucket di destinazione per concedere l'accesso al principale del servizio di registrazione di log. Non è possibile aggiornare l'ACL del bucket per concedere l'accesso al gruppo di consegna di log S3. Inoltre, non puoi includere concessioni di destinazione (note anche come *concessioni target*) nella configurazione [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html). 

Per informazioni sulla migrazione del bucket esistente per la consegna dei log di accesso a ACLs una policy di bucket, consulta. [Concedere l'accesso al gruppo di consegna di log S3 per la registrazione di log degli accessi al server](object-ownership-migrating-acls-prerequisites.md#object-ownership-server-access-logs) Per ulteriori informazioni su Object Ownership, consulta [Controllo della proprietà degli oggetti e disattivazione ACLs del bucket](about-object-ownership.md). Quando crei nuovi bucket, ACLs sono disabilitati per impostazione predefinita.

**Concessione dell'accesso utilizzando una policy del bucket**  
Per concedere l'accesso utilizzando la policy del bucket nel bucket di destinazione, aggiorna la policy del bucket per concedere l'autorizzazione `s3:PutObject` al principale del servizio di registrazione di log. Se utilizzi la console di Amazon S3 per abilitare la registrazione di log degli accessi al server, la console aggiorna automaticamente la policy nel bucket di destinazione per concedere tali autorizzazioni al principale del servizio di registrazione di log. Se abiliti la registrazione di log degli accessi al server a livello di programmazione, puoi aggiornare manualmente la policy del bucket per il bucket di destinazione per concedere l'accesso al principale del servizio di registrazione di log. 

Per un esempio di policy del bucket che concede l'accesso al principale del servizio di registrazione di log, consulta [Concedi le autorizzazioni al principale del servizio di registrazione di log utilizzando una policy del bucket](#grant-log-delivery-permissions-bucket-policy).

**Concessione dell'accesso tramite bucket ACLs**  
In alternativa, puoi utilizzare il bucket ACLs per concedere l'accesso per la consegna dei log di accesso. Aggiungi una voce apposita nell'ACL di bucket che conceda autorizzazioni `WRITE` e `READ_ACP` al gruppo di distribuzione di registri S3. Tuttavia, non è consigliabile concedere l'accesso al gruppo di consegna dei log S3 utilizzando il ACLs bucket. Per ulteriori informazioni, consulta [Controllo della proprietà degli oggetti e disattivazione ACLs del bucket](about-object-ownership.md). Per informazioni sulla migrazione del bucket esistente ACLs per la consegna dei log di accesso a una policy bucket, consulta. [Concedere l'accesso al gruppo di consegna di log S3 per la registrazione di log degli accessi al server](object-ownership-migrating-acls-prerequisites.md#object-ownership-server-access-logs) Per un esempio di ACL che concede l'accesso al principale del servizio di registrazione di log, consulta [Concedere autorizzazioni al gruppo di distribuzione dei log utilizzando l'ACL bucket](#grant-log-delivery-permissions-acl).

### Concedi le autorizzazioni al principale del servizio di registrazione di log utilizzando una policy del bucket
<a name="grant-log-delivery-permissions-bucket-policy"></a>

Questo esempio di policy del bucket concede autorizzazioni `s3:PutObject` al principale del servizio di registrazione di log (`logging.s3.amazonaws.com`). Per utilizzare questa policy del bucket, sostituisci `user input placeholders` con le tue informazioni. Nella seguente politica, `amzn-s3-demo-destination-bucket` è il bucket di destinazione in cui verranno consegnati i log di accesso al server ed `amzn-s3-demo-source-bucket` è il bucket di origine. `EXAMPLE-LOGGING-PREFIX`è il prefisso di destinazione opzionale (noto anche come *prefisso di destinazione*) che si desidera utilizzare per gli oggetti di registro. `SOURCE-ACCOUNT-ID`è il proprietario del Account AWS bucket di origine. 

**Nota**  
Se nella policy del bucket sono presenti istruzioni `Deny`, assicurati che non impediscano ad Amazon S3 di distribuire i log di accesso.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "S3ServerAccessLogsPolicy",
            "Effect": "Allow",
            "Principal": {
                "Service": "logging.s3.amazonaws.com"
            },
            "Action": [
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/EXAMPLE-LOGGING-PREFIX*",
            "Condition": {
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:s3:::amzn-s3-demo-source-bucket"
                },
                "StringEquals": {
                    "aws:SourceAccount": "SOURCE-ACCOUNT-ID"
                }
            }
        }
    ]
}
```

------

### Concedere autorizzazioni al gruppo di distribuzione dei log utilizzando l'ACL bucket
<a name="grant-log-delivery-permissions-acl"></a>

**Nota**  
Come best practice di sicurezza, Amazon S3 disabilita per impostazione predefinita le liste di controllo degli accessi (ACLs) in tutti i nuovi bucket. Per ulteriori informazioni sulle autorizzazioni ACL nella console di Amazon S3, consulta [Configurazione ACLs](managing-acls.md). 

Sebbene questo approccio non sia consigliato, puoi concedere le autorizzazioni al gruppo di consegna di log utilizzando una ACL di bucket. Tuttavia, se il bucket di destinazione utilizza l'impostazione imposta dal proprietario del bucket per Object Ownership, non puoi impostare bucket o oggetto. ACLs Inoltre, non puoi includere concessioni di destinazione (note anche come *concessioni target*) nella configurazione [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html). Invece, utilizza una policy del bucket per concedere l'accesso al principale del servizio di registrazione (`logging.s3.amazonaws.com`). Per ulteriori informazioni, consulta [Autorizzazioni per la distribuzione dei registri](#grant-log-delivery-permissions-general).

Nelle liste di controllo degli accessi del bucket, il gruppo di consegna di log è rappresentato dall'URL seguente.

```
1. http://acs.amazonaws.com/groups/s3/LogDelivery
```

Per concedere le autorizzazioni `WRITE` e `READ_ACP` (lettura ACL), aggiungi le seguenti concessioni all'ACL di bucket di destinazione:

```
 1. <Grant>
 2.     <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:type="Group">
 3.         <URI>http://acs.amazonaws.com/groups/s3/LogDelivery</URI> 
 4.     </Grantee>
 5.     <Permission>WRITE</Permission>
 6. </Grant>
 7. <Grant>
 8.     <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:type="Group">
 9.         <URI>http://acs.amazonaws.com/groups/s3/LogDelivery</URI> 
10.     </Grantee>
11.     <Permission>READ_ACP</Permission>
12. </Grant>
```

Per esempi sull'aggiunta a livello di programmazione di concessioni ACL, consulta la sezione [Configurazione ACLs](managing-acls.md).

**Importante**  
Quando abiliti la registrazione degli accessi al server Amazon S3 utilizzando AWS CloudFormation su un bucket e la utilizzi ACLs per concedere l'accesso al gruppo di consegna dei log S3, devi anche aggiungere "al tuo modello. `AccessControl": "LogDeliveryWrite"` CloudFormation Questa operazione è importante perché puoi concedere tali autorizzazioni solo creando un ACL per il bucket, ma non puoi creare bucket personalizzati per i bucket in cui sono inseriti. ACLs CloudFormation Puoi usare solo in scatola con. ACLs CloudFormation

## Come abilitare la registrazione degli accessi al server
<a name="enable-server-logging"></a>

Per abilitare la registrazione degli accessi al server utilizzando la console Amazon S3, l'API REST di Amazon S3 AWS CLI e AWS SDKs, utilizza le seguenti procedure.

### Utilizzo della console S3
<a name="server-access-logging"></a>

1. Accedi Console di gestione AWS e apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Nel riquadro di navigazione sinistro, scegli **Bucket per uso generico**.

1. Nell’elenco dei bucket scegli il nome del bucket per il quale desideri abilitare la registrazione dei log degli accessi al server.

1. Scegliere **Properties (Proprietà)**.

1. Nella sezione **Server access logging (Registrazione degli accessi al server)** scegliere **Edit (Modifica)**.

1. In **Registrazione degli accessi al server**, seleziona **Abilita**. 

1. In **Bucket di destinazione**, specifica un bucket e un prefisso opzionale. Se specifichi un prefisso, ti consigliamo di includere una barra in avanti (`/`) dopo il prefisso per facilitare la ricerca dei log. 
**Nota**  
L'indicazione di un prefisso con una barra (`/`) semplifica l'individuazione degli oggetti del log. Se, ad esempio, specifichi il valore di prefisso `logs/`, la chiave di ogni oggetto del log creato da Amazon S3 è preceduta dal prefisso `logs/`, come segue:  

   ```
   logs/2013-11-01-21-32-16-E568B2907131C0C0
   ```
Se specifichi il valore del prefisso `logs`, l'oggetto del log viene visualizzato come segue:  

   ```
   logs2013-11-01-21-32-16-E568B2907131C0C0
   ```

1. In **Formato della chiave dell'oggetto di log**, esegui una delle seguenti operazioni:
   + Per scegliere il non-date-based partizionamento, scegli **[DestinationPrefix] [YYYY] - [MM] - [DD] - [hh] - [mm] - [ss] - [**]. UniqueString
   + Per scegliere il partizionamento basato sulla data, scegli **[DestinationPrefix] [SourceAccountId]/[SourceRegionSourceBucket]/[YYYY]/[MM]/[DD]/[YYYY] - [MM] - [DD] - [hh] - [mm] - [ss] - [UniqueString]**, quindi scegli **S3 event time** o **Log file delivery time**.

1. Scegli **Save changes** (Salva modifiche).

   Quando abiliti la registrazione di log degli accessi al server in un bucket, la console abilita la registrazione nel bucket di origine e aggiorna la policy del bucket per il bucket di destinazione in modo da concedere autorizzazioni `s3:PutObject` al principale del servizio di registrazione di log (`logging.s3.amazonaws.com`). Per ulteriori informazioni su questa policy del bucket, consulta [Concedi le autorizzazioni al principale del servizio di registrazione di log utilizzando una policy del bucket](#grant-log-delivery-permissions-bucket-policy).

   Puoi visualizzare i log nel bucket di destinazione. Dopo aver abilitato la registrazione degli accessi al server, potrebbero essere necessarie ore prima che i log vengano consegnati al bucket di destinazione. Per ulteriori informazioni su come e quando vengono distribuiti i log, consultare [Come vengono distribuiti i log?](ServerLogs.md#how-logs-delivered).

Per ulteriori informazioni, consulta [Visualizzazione delle proprietà di un bucket per uso generico S3](view-bucket-properties.md).

### Utilizzo della REST API
<a name="enable-logging-rest"></a>

Per abilitare i log, devi inviare una richiesta [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html) per aggiungere la configurazione della registrazione di log nel bucket di origine. La richiesta specifica il bucket di destinazione (noto anche come *bucket target*) e, facoltativamente, il prefisso da utilizzare con tutte le chiavi degli oggetti del log. 

L'esempio seguente identifica `amzn-s3-demo-destination-bucket` come bucket di destinazione e *`logs/`* come prefisso. 

```
1. <BucketLoggingStatus xmlns="http://doc.s3.amazonaws.com/2006-03-01">
2.   <LoggingEnabled>
3.     <TargetBucket>amzn-s3-demo-destination-bucket</TargetBucket>
4.     <TargetPrefix>logs/</TargetPrefix>
5.   </LoggingEnabled>
6. </BucketLoggingStatus>
```

L'esempio seguente identifica `amzn-s3-demo-destination-bucket` come bucket di destinazione, *`logs/`* come prefisso e `EventTime` come il formato della chiave dell'oggetto di log. 

```
 1. <BucketLoggingStatus xmlns="http://doc.s3.amazonaws.com/2006-03-01">
 2.   <LoggingEnabled>
 3.     <TargetBucket>amzn-s3-demo-destination-bucket</TargetBucket>
 4.     <TargetPrefix>logs/</TargetPrefix>
 5.     <TargetObjectKeyFormat>
 6.       <PartitionedPrefix>
 7.          <PartitionDateSource>EventTime</PartitionDateSource>
 8.       </PartitionedPrefix>
 9.   </TargetObjectKeyFormat>
10.   </LoggingEnabled>
11. </BucketLoggingStatus>
```

Gli oggetti del registri vengono scritti dall'account di distribuzione di log S3 e sono di proprietà di tale account. Al proprietario del bucket vengono concesse autorizzazioni complete sugli oggetti del log. Puoi usare in modo opzionale le concessioni di destinazione (note anche come *concessioni target*) per concedere le autorizzazioni ad altri utenti in modo che possano accedere ai log. Per ulteriori informazioni, consulta [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html). 

**Nota**  
Se il bucket di destinazione utilizza l'impostazione Proprietario del bucket applicato per Proprietà dell'oggetto, non puoi utilizzare le concessioni di destinazione per assegnare autorizzazioni ad altri utenti. Per concedere autorizzazioni ad altri utenti, puoi aggiornare la policy del bucket nel bucket di destinazione. Per ulteriori informazioni, consulta [Autorizzazioni per la distribuzione dei registri](#grant-log-delivery-permissions-general). 

Per recuperare la configurazione di registrazione di log su un bucket, utilizza l'operazione API [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETlogging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETlogging.html). 

Per eliminare la configurazione della registrazione di log, devi inviare una richiesta `PutBucketLogging`con un elemento `BucketLoggingStatus` vuoto: 

```
1. <BucketLoggingStatus xmlns="http://doc.s3.amazonaws.com/2006-03-01">
2. </BucketLoggingStatus>
```

Per abilitare la registrazione su un bucket, puoi utilizzare l'API Amazon S3 o le librerie wrapper SDK AWS .

### Usando il AWS SDKs
<a name="enable-logging-sdk"></a>

Gli esempi seguenti abilitano la registrazione di log in un bucket. Devi creare due bucket, uno di origine e uno di destinazione (target). Gli esempi aggiornano prima l'ACL del bucket sul bucket di destinazione. Quindi concedono al gruppo di consegna di log le autorizzazioni necessarie per scrivere i log sul bucket di destinazione e poi abilitano la registrazione di log sul bucket di origine. 

Questi esempi non funzionano sui bucket di destinazione che utilizzano l'impostazione Proprietario del bucket applicato per Proprietà dell'oggetto.

Se il bucket di destinazione (destinazione) utilizza l'impostazione imposta dal proprietario del bucket per la proprietà dell'oggetto, non è possibile impostare il bucket o l'oggetto. ACLs Inoltre, non puoi includere le concessioni di destinazione (destinazione) nella tua configurazione. [PutBucketLogging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html) È necessario utilizzare una policy di bucket per concedere l'accesso al principale del servizio di registrazione (`logging.s3.amazonaws.com`). Per ulteriori informazioni, consulta [Autorizzazioni per la distribuzione dei registri](#grant-log-delivery-permissions-general).

------
#### [ .NET ]

**SDK per .NET**  
 C'è di più su. GitHub Trova l'esempio completo e scopri di più sulla configurazione e l'esecuzione nel [Repository di esempi di codice AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3/S3#code-examples). 

```
    using System;
    using System.IO;
    using System.Threading.Tasks;
    using Amazon.S3;
    using Amazon.S3.Model;
    using Microsoft.Extensions.Configuration;

    /// <summary>
    /// This example shows how to enable logging on an Amazon Simple Storage
    /// Service (Amazon S3) bucket. You need to have two Amazon S3 buckets for
    /// this example. The first is the bucket for which you wish to enable
    /// logging, and the second is the location where you want to store the
    /// logs.
    /// </summary>
    public class ServerAccessLogging
    {
        private static IConfiguration _configuration = null!;

        public static async Task Main()
        {
            LoadConfig();

            string bucketName = _configuration["BucketName"];
            string logBucketName = _configuration["LogBucketName"];
            string logObjectKeyPrefix = _configuration["LogObjectKeyPrefix"];
            string accountId = _configuration["AccountId"];

            // If the AWS Region defined for your default user is different
            // from the Region where your Amazon S3 bucket is located,
            // pass the Region name to the Amazon S3 client object's constructor.
            // For example: RegionEndpoint.USWest2 or RegionEndpoint.USEast2.
            IAmazonS3 client = new AmazonS3Client();

            try
            {
                // Update bucket policy for target bucket to allow delivery of logs to it.
                await SetBucketPolicyToAllowLogDelivery(
                    client,
                    bucketName,
                    logBucketName,
                    logObjectKeyPrefix,
                    accountId);

                // Enable logging on the source bucket.
                await EnableLoggingAsync(
                    client,
                    bucketName,
                    logBucketName,
                    logObjectKeyPrefix);
            }
            catch (AmazonS3Exception e)
            {
                Console.WriteLine($"Error: {e.Message}");
            }
        }

        /// <summary>
        /// This method grants appropriate permissions for logging to the
        /// Amazon S3 bucket where the logs will be stored.
        /// </summary>
        /// <param name="client">The initialized Amazon S3 client which will be used
        /// to apply the bucket policy.</param>
        /// <param name="sourceBucketName">The name of the source bucket.</param>
        /// <param name="logBucketName">The name of the bucket where logging
        /// information will be stored.</param>
        /// <param name="logPrefix">The logging prefix where the logs should be delivered.</param>
        /// <param name="accountId">The account id of the account where the source bucket exists.</param>
        /// <returns>Async task.</returns>
        public static async Task SetBucketPolicyToAllowLogDelivery(
            IAmazonS3 client,
            string sourceBucketName,
            string logBucketName,
            string logPrefix,
            string accountId)
        {
            var resourceArn = @"""arn:aws:s3:::" + logBucketName + "/" + logPrefix + @"*""";

            var newPolicy = @"{
                                ""Statement"":[{
                                ""Sid"": ""S3ServerAccessLogsPolicy"",
                                ""Effect"": ""Allow"",
                                ""Principal"": { ""Service"": ""logging.s3.amazonaws.com"" },
                                ""Action"": [""s3:PutObject""],
                                ""Resource"": [" + resourceArn + @"],
                                ""Condition"": {
                                ""ArnLike"": { ""aws:SourceArn"": ""arn:aws:s3:::" + sourceBucketName + @""" },
                                ""StringEquals"": { ""aws:SourceAccount"": """ + accountId + @""" }
                                        }
                                    }]
                                }";
            Console.WriteLine($"The policy to apply to bucket {logBucketName} to enable logging:");
            Console.WriteLine(newPolicy);

            PutBucketPolicyRequest putRequest = new PutBucketPolicyRequest
            {
                BucketName = logBucketName,
                Policy = newPolicy,
            };
            await client.PutBucketPolicyAsync(putRequest);
            Console.WriteLine("Policy applied.");
        }

        /// <summary>
        /// This method enables logging for an Amazon S3 bucket. Logs will be stored
        /// in the bucket you selected for logging. Selected prefix
        /// will be prepended to each log object.
        /// </summary>
        /// <param name="client">The initialized Amazon S3 client which will be used
        /// to configure and apply logging to the selected Amazon S3 bucket.</param>
        /// <param name="bucketName">The name of the Amazon S3 bucket for which you
        /// wish to enable logging.</param>
        /// <param name="logBucketName">The name of the Amazon S3 bucket where logging
        /// information will be stored.</param>
        /// <param name="logObjectKeyPrefix">The prefix to prepend to each
        /// object key.</param>
        /// <returns>Async task.</returns>
        public static async Task EnableLoggingAsync(
            IAmazonS3 client,
            string bucketName,
            string logBucketName,
            string logObjectKeyPrefix)
        {
            Console.WriteLine($"Enabling logging for bucket {bucketName}.");
            var loggingConfig = new S3BucketLoggingConfig
            {
                TargetBucketName = logBucketName,
                TargetPrefix = logObjectKeyPrefix,
            };

            var putBucketLoggingRequest = new PutBucketLoggingRequest
            {
                BucketName = bucketName,
                LoggingConfig = loggingConfig,
            };
            await client.PutBucketLoggingAsync(putBucketLoggingRequest);
            Console.WriteLine($"Logging enabled.");
        }

        /// <summary>
        /// Loads configuration from settings files.
        /// </summary>
        public static void LoadConfig()
        {
            _configuration = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("settings.json") // Load settings from .json file.
                .AddJsonFile("settings.local.json", true) // Optionally, load local settings.
                .Build();
        }
    }
```
+  Per i dettagli sull'API, consulta la [PutBucketLogging](https://docs.aws.amazon.com/goto/DotNetSDKV3/s3-2006-03-01/PutBucketLogging)sezione *AWS SDK per .NET API Reference*. 

------
#### [ Java ]

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.s3.model.BucketLoggingStatus;
import software.amazon.awssdk.services.s3.model.LoggingEnabled;
import software.amazon.awssdk.services.s3.model.PartitionedPrefix;
import software.amazon.awssdk.services.s3.model.PutBucketLoggingRequest;
import software.amazon.awssdk.services.s3.model.TargetObjectKeyFormat;

// Class to set a bucket policy on a target S3 bucket and enable server access logging on a source S3 bucket.
public class ServerAccessLogging {
    private static S3Client s3Client;

    public static void main(String[] args) {
        String sourceBucketName = "SOURCE-BUCKET";
        String targetBucketName = "TARGET-BUCKET";
        String sourceAccountId = "123456789012";
        String targetPrefix = "logs/";

        // Create S3 Client.
        s3Client = S3Client.builder().
                region(Region.US_EAST_2)
                .build();

        // Set a bucket policy on the target S3 bucket to enable server access logging by granting the
        // logging.s3.amazonaws.com principal permission to use the PutObject operation.
        ServerAccessLogging serverAccessLogging = new ServerAccessLogging();
        serverAccessLogging.setTargetBucketPolicy(sourceAccountId, sourceBucketName, targetBucketName);

        // Enable server access logging on the source S3 bucket.
        serverAccessLogging.enableServerAccessLogging(sourceBucketName, targetBucketName,
                targetPrefix);

    }

    // Function to set a bucket policy on the target S3 bucket to enable server access logging by granting the
    // logging.s3.amazonaws.com principal permission to use the PutObject operation.
    public void setTargetBucketPolicy(String sourceAccountId, String sourceBucketName, String targetBucketName) {
        String policy = "{\n" +
                "    \"Version\": \"2012-10-17\",\n" +
                "    \"Statement\": [\n" +
                "        {\n" +
                "            \"Sid\": \"S3ServerAccessLogsPolicy\",\n" +
                "            \"Effect\": \"Allow\",\n" +
                "            \"Principal\": {\"Service\": \"logging.s3.amazonaws.com\"},\n" +
                "            \"Action\": [\n" +
                "                \"s3:PutObject\"\n" +
                "            ],\n" +
                "            \"Resource\": \"arn:aws:s3:::" + targetBucketName + "/*\",\n" +
                "            \"Condition\": {\n" +
                "                \"ArnLike\": {\n" +
                "                    \"aws:SourceArn\": \"arn:aws:s3:::" + sourceBucketName + "\"\n" +
                "                },\n" +
                "                \"StringEquals\": {\n" +
                "                    \"aws:SourceAccount\": \"" + sourceAccountId + "\"\n" +
                "                }\n" +
                "            }\n" +
                "        }\n" +
                "    ]\n" +
                "}";
        s3Client.putBucketPolicy(b -> b.bucket(targetBucketName).policy(policy));
    }

    // Function to enable server access logging on the source S3 bucket.
    public void enableServerAccessLogging(String sourceBucketName, String targetBucketName,
            String targetPrefix) {
        TargetObjectKeyFormat targetObjectKeyFormat = TargetObjectKeyFormat.builder()
                .partitionedPrefix(PartitionedPrefix.builder().partitionDateSource("EventTime").build())
                .build();
        LoggingEnabled loggingEnabled = LoggingEnabled.builder()
                .targetBucket(targetBucketName)
                .targetPrefix(targetPrefix)
                .targetObjectKeyFormat(targetObjectKeyFormat)
                .build();
        BucketLoggingStatus bucketLoggingStatus = BucketLoggingStatus.builder()
                .loggingEnabled(loggingEnabled)
                .build();
        s3Client.putBucketLogging(PutBucketLoggingRequest.builder()
                .bucket(sourceBucketName)
                .bucketLoggingStatus(bucketLoggingStatus)
                .build());
    }

}
```

------

### Utilizzando il AWS CLI
<a name="enabling-s3-access-logs-for-requests"></a>

Ti consigliamo di creare un bucket di registrazione dedicato in ogni bucket S3 in Regione AWS cui sono presenti bucket S3. Quindi, fare in modo che i log degli accessi Amazon S3 vengano recapitati al bucket S3. Per ulteriori informazioni ed esempi, consulta l'esempio [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-logging.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-logging.html) in *Riferimento ai comandi della AWS CLI *.

Se il bucket di destinazione (destinazione) utilizza l'impostazione imposta dal proprietario del bucket per Object Ownership, non puoi impostare il bucket o l'oggetto. ACLs Inoltre, non puoi includere le concessioni di destinazione (destinazione) nella tua configurazione. [PutBucketLogging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html) È necessario utilizzare una policy di bucket per concedere l'accesso al principale del servizio di registrazione (`logging.s3.amazonaws.com`). Per ulteriori informazioni, consulta [Autorizzazioni per la distribuzione dei registri](#grant-log-delivery-permissions-general).

**Example - Abilitare i log degli accessi con cinque bucket in due regioni**  
In questo esempio, sono presenti i cinque bucket seguenti:   
+ `amzn-s3-demo-source-bucket-us-east-1`
+ `amzn-s3-demo-source-bucket1-us-east-1`
+ `amzn-s3-demo-source-bucket2-us-east-1`
+ `amzn-s3-demo-bucket1-us-west-2`
+ `amzn-s3-demo-bucket2-us-west-2`
**Nota**  
Il passaggio finale della procedura seguente fornisce esempi di script bash che è possibile utilizzare per creare i bucket di registrazione di log e abilitare la registrazione di log degli accessi al server su questi bucket. Per utilizzare questi script, devi creare i file `policy.json` e `logging.json`, come descritto nella procedura seguente.

1. Crea due bucket di destinazione per la registrazione di log nelle regioni Stati Uniti occidentali (Oregon) e Stati Uniti orientali (N. Virginia) e assegna loro i nomi elencati di seguito:
   + `amzn-s3-demo-destination-bucket-logs-us-east-1`
   + `amzn-s3-demo-destination-bucket1-logs-us-west-2`

1. Più avanti in questi passaggi, abiliterai la registrazione di log degli accessi al server come segue:
   + `amzn-s3-demo-source-bucket-us-east-1` accede al bucket S3 `amzn-s3-demo-destination-bucket-logs-us-east-1` con prefisso `amzn-s3-demo-source-bucket-us-east-1`
   + `amzn-s3-demo-source-bucket1-us-east-1` accede al bucket S3 `amzn-s3-demo-destination-bucket-logs-us-east-1` con prefisso `amzn-s3-demo-source-bucket1-us-east-1`
   + `amzn-s3-demo-source-bucket2-us-east-1` accede al bucket S3 `amzn-s3-demo-destination-bucket-logs-us-east-1` con prefisso `amzn-s3-demo-source-bucket2-us-east-1`
   + `amzn-s3-demo-bucket1-us-west-2` accede al bucket S3 `amzn-s3-demo-destination-bucket1-logs-us-west-2` con prefisso `amzn-s3-demo-bucket1-us-west-2`
   + `amzn-s3-demo-bucket2-us-west-2` accede al bucket S3 `amzn-s3-demo-destination-bucket1-logs-us-west-2` con prefisso `amzn-s3-demo-bucket2-us-west-2`

1. Per ogni bucket di registrazione di log di destinazione, concedi le autorizzazioni per la consegna di log di accesso al server utilizzando una ACL di bucket *o* una policy del bucket:
   + **Aggiorna la policy del bucket** (consigliato): per concedere autorizzazioni al principale del servizio di registrazione di log, utilizza il comando `put-bucket-policy` seguente. Sostituisci `amzn-s3-demo-destination-bucket-logs` con il nome del tuo bucket di destinazione.

     ```
     1. aws s3api put-bucket-policy --bucket amzn-s3-demo-destination-bucket-logs --policy file://policy.json
     ```

     `Policy.json` è un documento JSON nella cartella corrente che contiene la policy del bucket seguente. Per utilizzare questa policy del bucket, sostituisci `user input placeholders` con le tue informazioni. Nella policy seguente, *`amzn-s3-demo-destination-bucket-logs`* è il bucket di destinazione in cui verranno distribuiti i log degli accessi al server e `amzn-s3-demo-source-bucket` è il bucket di origine. `SOURCE-ACCOUNT-ID` è l' Account AWS proprietario del bucket di origine.

------
#### [ JSON ]

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Sid": "S3ServerAccessLogsPolicy",
                 "Effect": "Allow",
                 "Principal": {
                     "Service": "logging.s3.amazonaws.com"
                 },
                 "Action": [
                     "s3:PutObject"
                 ],
                 "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket-logs/*",
                 "Condition": {
                     "ArnLike": {
                         "aws:SourceArn": "arn:aws:s3:::amzn-s3-demo-source-bucket"
                     },
                     "StringEquals": {
                         "aws:SourceAccount": "SOURCE-ACCOUNT-ID"
                     }
                 }
             }
         ]
     }
     ```

------
   + **Aggiorna l'ACL bucket**: per concedere le autorizzazioni al gruppo di distribuzione dei log S3, utilizza il comando `put-bucket-acl` seguente. Sostituisci *`amzn-s3-demo-destination-bucket-logs`* con il nome del tuo bucket di destinazione (target).

     ```
     1. aws s3api put-bucket-acl --bucket amzn-s3-demo-destination-bucket-logs  --grant-write URI=http://acs.amazonaws.com/groups/s3/LogDelivery --grant-read-acp URI=http://acs.amazonaws.com/groups/s3/LogDelivery 
     ```

1. Quindi, crea un file `logging.json` che contenga la configurazione di registrazione di log (in base a uno dei tre esempi che seguono). Dopo aver creato il file `logging.json`, puoi applicare la configurazione di registrazione di log utilizzando il comando `put-bucket-logging` seguente. Sostituisci *`amzn-s3-demo-destination-bucket-logs`* con il nome del tuo bucket di destinazione (target).

   ```
   1. aws s3api put-bucket-logging --bucket amzn-s3-demo-destination-bucket-logs --bucket-logging-status file://logging.json 
   ```
**Nota**  
Invece di usare questo comando `put-bucket-logging` per applicare la configurazione di registrazione di log su ogni bucket di destinazione, puoi usare uno degli script bash forniti nel passaggio successivo. Per utilizzare questi script, devi creare i file `policy.json` e `logging.json`, come descritto in questa procedura.

   Il file `logging.json` è un documento JSON nella cartella corrente che contiene la configurazione della registrazione di log. Se un bucket di destinazione utilizza l'impostazione Proprietario del bucket applicato per Proprietà dell'oggetto, la configurazione di registrazione di log non può contenere concessioni di destinazione (target). Per ulteriori informazioni, consulta [Autorizzazioni per la distribuzione dei registri](#grant-log-delivery-permissions-general).  
**Example – `logging.json` senza concessioni relative alla destinazione (target)**  

   Il seguente file di esempio `logging.json` contiene concessioni di destinazione (target). Pertanto, puoi applicare questa configurazione a un bucket di destinazione (target) che utilizza l'impostazione Proprietario del bucket applicato per Proprietà dell'oggetto.

   ```
     {
         "LoggingEnabled": {
             "TargetBucket": "amzn-s3-demo-destination-bucket-logs",
             "TargetPrefix": "amzn-s3-demo-destination-bucket/"
          }
      }
   ```  
**Example – `logging.json` con concessioni relative alla destinazione (target)**  

   Il seguente file di esempio `logging.json` contiene concessioni di destinazione (target).

   Se un bucket di destinazione utilizza l'impostazione Proprietario del bucket applicato per Proprietà dell'oggetto, non sarà possibile includere concessioni di destinazione (target) nella configurazione [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html). Per ulteriori informazioni, consulta [Autorizzazioni per la distribuzione dei registri](#grant-log-delivery-permissions-general).

   ```
     {
         "LoggingEnabled": {
             "TargetBucket": "amzn-s3-demo-destination-bucket-logs",
             "TargetPrefix": "amzn-s3-demo-destination-bucket/",
             "TargetGrants": [
                  {
                     "Grantee": {
                         "Type": "CanonicalUser",
                         "ID": "79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be"
                      },
                     "Permission": "FULL_CONTROL"
                  }
              ]
          }
      }
   ```

**Valori dell’assegnatario**  
È possibile specificare la persona (assegnatario) a cui si assegnano i diritti di accesso (utilizzando gli elementi della richiesta) nei seguenti modi:
   + In base all’ID della persona:

     ```
     {
       "Grantee": {
         "Type": "CanonicalUser",
         "ID": "ID"
       }
     }
     ```
   + In base all’URI:

     ```
     {
       "Grantee": {
         "Type": "Group",
         "URI": "http://acs.amazonaws.com/groups/global/AuthenticatedUsers"
       }
     }
     ```  
**Example – `logging.json` con il formato della chiave dell'oggetto di log impostato sull'ora dell'evento S3**  

   Il file `logging.json` seguente modifica il formato della chiave dell'oggetto di log in Ora evento S3. Per informazioni sull'impostazione del formato della chiave dell'oggetto di log, consulta [Come si abilita il recapito dei log?](ServerLogs.md#server-access-logging-overview).

   ```
     { 
       "LoggingEnabled": {
           "TargetBucket": "amzn-s3-demo-destination-bucket-logs",
           "TargetPrefix": "amzn-s3-demo-destination-bucket/",
           "TargetObjectKeyFormat": { 
               "PartitionedPrefix": { 
                   "PartitionDateSource": "EventTime" 
               }
            }
       }
   }
   ```

1. Utilizza uno dei seguenti script bash per aggiungere la registrazione di log degli accessi per tutti i bucket nel tuo account. Sostituisci *`amzn-s3-demo-destination-bucket-logs`* con il nome del bucket di destinazione (target) e sostituisci `us-west-2` con il nome della regione in cui si trovano i bucket.
**Nota**  
Questo script funziona solo se tutti i bucket si trovano nella stessa regione. Se ci sono bucket in più regioni, è necessario modificare lo script.   
**Example – Concedi l'accesso con le policy del bucket e aggiungi la registrazione per i bucket nel tuo account**  

   ```
     loggingBucket='amzn-s3-demo-destination-bucket-logs'
     region='us-west-2'
     
     
     # Create the logging bucket.
     aws s3 mb s3://$loggingBucket --region $region
     
     aws s3api put-bucket-policy --bucket $loggingBucket --policy file://policy.json
     
     # List the buckets in this account.
     buckets="$(aws s3 ls | awk '{print $3}')"
     
     # Put a bucket logging configuration on each bucket.
     for bucket in $buckets
         do 
           # This if statement excludes the logging bucket.
           if [ "$bucket" == "$loggingBucket" ] ; then
               continue;
           fi
           printf '{
             "LoggingEnabled": {
               "TargetBucket": "%s",
               "TargetPrefix": "%s/"
           }
         }' "$loggingBucket" "$bucket"  > logging.json
         aws s3api put-bucket-logging --bucket $bucket --bucket-logging-status file://logging.json
         echo "$bucket done"
     done
     
     rm logging.json
     
     echo "Complete"
   ```  
**Example — Concedi l'accesso con bucket ACLs e aggiungi la registrazione per i bucket nel tuo account**  

   ```
     loggingBucket='amzn-s3-demo-destination-bucket-logs'
     region='us-west-2'
     
     
     # Create the logging bucket.
     aws s3 mb s3://$loggingBucket --region $region
     
     aws s3api put-bucket-acl --bucket $loggingBucket --grant-write URI=http://acs.amazonaws.com/groups/s3/LogDelivery --grant-read-acp URI=http://acs.amazonaws.com/groups/s3/LogDelivery
     
     # List the buckets in this account.
     buckets="$(aws s3 ls | awk '{print $3}')"
     
     # Put a bucket logging configuration on each bucket.
     for bucket in $buckets
         do 
           # This if statement excludes the logging bucket.
           if [ "$bucket" == "$loggingBucket" ] ; then
               continue;
           fi
           printf '{
             "LoggingEnabled": {
               "TargetBucket": "%s",
               "TargetPrefix": "%s/"
           }
         }' "$loggingBucket" "$bucket"  > logging.json
         aws s3api put-bucket-logging --bucket $bucket --bucket-logging-status file://logging.json
         echo "$bucket done"
     done
     
     rm logging.json
     
     echo "Complete"
   ```

## Verifica della configurazione dei log degli accessi al server
<a name="verify-access-logs"></a>

Dopo aver abilitato la registrazione degli accessi al server, completa la procedura riportata di seguito: 
+ Accedi al bucket di destinazione e verifica che i file di log vengano distribuiti. Una volta impostati i log di accesso, Amazon S3 inizia immediatamente ad acquisire le richieste e a registrarle. Tuttavia, potrebbero essere necessarie alcune ore prima che i log vengano consegnati al bucket di destinazione. Per ulteriori informazioni, consultare [Tempo richiesto per l'applicazione delle modifiche dello stato di registrazione del bucket](ServerLogs.md#BucketLoggingStatusChanges) e [Consegna di log del server sulla base del miglior tentativo](ServerLogs.md#LogDeliveryBestEffort).

  Puoi anche verificare automaticamente la consegna dei log utilizzando i parametri delle richieste di Amazon S3 e configurando gli CloudWatch allarmi Amazon per questi parametri. Per ulteriori informazioni, consulta [Monitoraggio delle metriche con Amazon CloudWatch](cloudwatch-monitoring.md).
+ Verifica di essere in grado di aprire e leggere il contenuto dei file di log.

Per informazioni sulla risoluzione dei problemi relativi alla registrazione degli accessi al server, consultare [Risoluzione dei problemi di registrazione degli accessi al server](troubleshooting-server-access-logging.md).

# Formato del log di accesso al server Amazon S3
<a name="LogFormat"></a>

La registrazione degli accessi al server fornisce record dettagliati per le richieste che sono effettuate a un bucket Amazon S3. È possibile utilizzare i log degli accessi al server per i seguenti scopi: 
+ Esecuzione di controlli di sicurezza e degli accessi
+ Informazioni sulla base di clienti
+ Informazioni sulla fatturazione Amazon S3

In questa sezione viene descritto il formato e altri dettagli sui file di log di accesso al server Amazon S3.

I file dei log di accesso al server sono composti da una sequenza di record dei log 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 record di log.

**Nota**  
Qualsiasi campo può essere impostato su `-` per indicare che i dati sono sconosciuti o non disponibili, oppure che il campo non è applicabile a questa richiesta. 

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket1 [06/Feb/2019:00:00:38 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 3E57427F3EXAMPLE REST.GET.VERSIONING - "GET /amzn-s3-demo-bucket1?versioning HTTP/1.1" 200 - 113 - 7 - "-" "S3Console/0.4" - s9lzHYrFp76ZVxRcpX9+5cjAnEH2ROuNkd2BHfIa6UkFVdtjf5mKR3/eTPFvsiP/XV/VLi31234= SigV4 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader amzn-s3-demo-bucket1.s3.us-west-1.amazonaws.com TLSV1.2 arn:aws:s3:us-west-1:123456789012:accesspoint/example-AP Yes us-east-1
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket1 [06/Feb/2019:00:00:38 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 891CE47D2EXAMPLE REST.GET.LOGGING_STATUS - "GET /amzn-s3-demo-bucket1?logging HTTP/1.1" 200 - 242 - 11 - "-" "S3Console/0.4" - 9vKBE6vMhrNiWHZmb2L0mXOcqPGzQOI5XLnCtZNPxev+Hf+7tpT6sxDwDty4LHBUOZJG96N1234= SigV4 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader amzn-s3-demo-bucket1.s3.us-west-1.amazonaws.com TLSV1.2 - - us-east-1
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket1 [06/Feb/2019:00:00:38 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be A1206F460EXAMPLE REST.GET.BUCKETPOLICY - "GET /amzn-s3-demo-bucket1?policy HTTP/1.1" 404 NoSuchBucketPolicy 297 - 38 - "-" "S3Console/0.4" - BNaBsXZQQDbssi6xMBdBU2sLt+Yf5kZDmeBUP35sFoKa3sLLeMC78iwEIWxs99CRUrbS4n11234= SigV4 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader amzn-s3-demo-bucket1.s3.us-west-1.amazonaws.com TLSV1.2 - Yes us-east-1
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket1 [06/Feb/2019:00:01:00 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 7B4A0FABBEXAMPLE REST.GET.VERSIONING - "GET /amzn-s3-demo-bucket1?versioning HTTP/1.1" 200 - 113 - 33 - "-" "S3Console/0.4" - Ke1bUcazaN1jWuUlPJaxF64cQVpUEhoZKEG/hmy/gijN/I1DeWqDfFvnpybfEseEME/u7ME1234= SigV4 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader amzn-s3-demo-bucket1.s3.us-west-1.amazonaws.com TLSV1.2 - - us-east-1
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket1 [06/Feb/2019:00:01:57 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be DD6CC733AEXAMPLE REST.PUT.OBJECT s3-dg.pdf "PUT /amzn-s3-demo-bucket1/s3-dg.pdf HTTP/1.1" 200 - - 4406583 41754 28 "-" "S3Console/0.4" - 10S62Zv81kBW7BB6SX4XJ48o6kpcl6LPwEoizZQQxJd5qDSCTLX0TgS37kYUBKQW3+bPdrg1234= SigV4 ECDHE-RSA-AES128-SHA AuthHeader amzn-s3-demo-bucket1.s3.us-west-1.amazonaws.com TLSV1.2 - Yes us-east-1
```

Di seguito è riportato un esempio di record di log per l’operazione **Calcola il checksum**:

```
7cd47ef2be amzn-s3-demo-bucket [06/Feb/2019:00:00:38 +0000] - 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be e5042925-b524-4b3b-a869-f3881e78ff3a S3.COMPUTE.OBJECT.CHECKSUM example-object - - - - 1048576 - - - - - bPf7qjG4XwYdPgDQTl72GW/uotRhdPz2UryEyAFLDSRmKrakUkJCYLtAw6fdANcrsUYc1M/kIulXM1u5vZQT5g== - - - - - - - -
```

**Topics**
+ [

## Campi del record di log
](#log-record-fields)
+ [

## Registrazione aggiuntiva per operazioni di copia
](#AdditionalLoggingforCopyOperations)
+ [

## Informazioni sui log di accesso personalizzati
](#LogFormatCustom)
+ [

## Considerazioni in materia di programmazione per il formato esteso dei log di accesso al server
](#LogFormatExtensible)

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

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

**Proprietario del bucket**  
L'ID utente canonico del proprietario del bucket di origine. L'ID utente canonico è un'altra forma di ID. Account AWS Per ulteriori informazioni sull'ID utente canonico, consulta la sezione relativa agli [identificatori Account AWS](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html) nella *Riferimenti generali di AWS*. Per informazioni su come trovare l'ID utente canonico per il tuo account, consulta [Ricerca dell'ID utente canonico per l' Account AWS](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html#FindCanonicalId).  
**Esempio di inserimento**  

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
```

**Bucket**  
Il nome del bucket riguardo al quale è 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 al server.  
**Esempio di inserimento**  

```
amzn-s3-demo-bucket1
```

**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**  
Indirizzo IP apparente del richiedente. Dei proxy e firewall intermedi potrebbero oscurare l'indirizzo IP 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 era un utente IAM, questo campo restituisce il nome utente IAM del richiedente insieme a Account AWS quello a cui appartiene l'utente IAM. Questo identificatore è lo stesso che viene usato per accedere a scopi di controllo.  
**Esempio di inserimento**  

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
```
Se il richiedente utilizza un ruolo assunto, questo campo restituisce il ruolo IAM assunto.  
**Esempio di inserimento**  

```
arn:aws:sts::123456789012:assumed-role/roleName/test-role
```

**ID di richiesta**  
Una stringa generata da Amazon S3 per identificare in maniera univoca ogni richiesta. Per le richieste del processo **Calcola il checksum**, il campo **ID richiesta** visualizza l’ID del processo associato. Per ulteriori informazioni, consulta [Calcolo dei checksum](batch-ops-compute-checksums.md).  
**Esempio di inserimento**  

```
3E57427F33A59F07
```

**Operazione**  
L'operazione elencata qui viene dichiarata come `SOAP.operation`, `REST.HTTP_method.resource_type`, `WEBSITE.HTTP_method.resource_type`, oppure `BATCH.DELETE.OBJECT`, oppure `S3.action.resource_type` per [Ciclo di vita S3 e registrazione](lifecycle-and-other-bucket-config.md#lifecycle-general-considerations-logging). Per le richieste del processo [https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops-compute-checksums.html](https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops-compute-checksums.html), l’operazione è elencata come `S3.COMPUTE.OBJECT.CHECKSUM`.  
**Esempio di inserimento**  

```
REST.PUT.OBJECT
S3.COMPUTE.OBJECT.CHECKSUM
```

**Chiave**  
La parte chiave (nome dell'oggetto) della richiesta.  
**Esempio di inserimento**  

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

**Request-URI**  
La parte `Request-URI` del messaggio di richiesta HTTP. Questo campo può includere virgolette senza escape tratte dall'input dell'utente.  
**Esempio di inserimento**  

```
"GET /amzn-s3-demo-bucket1/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**  
Le [risposte di errore](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html) di 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 server. 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 sono stati necessari ad Amazon S3 per elaborare la 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
```

**Referer**  
Il valore dell'intestazione HTTP `Referer`, 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. Questo campo può includere virgolette senza escape tratte dall'input dell'utente.  
**Esempio di inserimento**  

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

**User-Agent**  
Il valore dell'intestazione HTTP `User-Agent`. Questo campo può includere virgolette senza escape tratte dall'input dell'utente.  
**Esempio di inserimento**  

```
"curl/7.15.1"
```

**Versione ID**  
L'ID della versione nella richiesta oppure `-` se l'operazione non prevede un parametro `versionId`.  
**Esempio di inserimento**  

```
3HL4kqtJvjVBH40Nrjfkd
```

**ID host**  
`x-amz-id-2` o ID richiesta esteso Amazon S3.   
**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 Transport Layer Security (TLS) negoziata per richieste HTTPS o `-` 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 `-` per richieste non autenticate.  
**Esempio di inserimento**  

```
AuthHeader
```

**Intestazione dell'host**  
L'endpoint utilizzato per connettersi ad Amazon S3.  
**Esempio di inserimento**  

```
s3.us-west-2.amazonaws.com
```
Alcune Regioni meno recenti supportano gli endpoint legacy. Potresti vedere questi endpoint nei log o nei log di accesso al server. AWS CloudTrail Per ulteriori informazioni, consulta [Endpoint legacy](VirtualHosting.md#s3-legacy-endpoints). Per un elenco completo degli endpoint e delle regioni Amazon S3, consultare la sezione relativa a [endpoint e quote di Amazon S3](https://docs.aws.amazon.com/general/latest/gr/s3.html) nella *Riferimenti generali di Amazon Web Services*.

**Versione TLS**  
La versione di Transport Layer Security (TLS) negoziata dal client. Il valore è uno dei seguenti: `TLSv1.1`, `TLSv1.2`, `TLSv1.3` o `-` se non è stato utilizzato TLS.  
**Esempio di inserimento**  

```
TLSv1.2
```

**Nome della risorsa Amazon (ARN) del punto di accesso**  
Il nome della risorsa Amazon (ARN) del punto di accesso della richiesta. Se il nome della risorsa Amazon (ARN) del punto di accesso ha un formato non valido oppure non viene utilizzato, il campo conterrà `-`. Per ulteriori informazioni sui punti di accesso, consulta [Utilizzo dei punti di accesso Amazon S3 per bucket per uso generico](using-access-points.md). Per ulteriori informazioni ARNs, consulta [Amazon Resource Name (ARN)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) nella *AWS Reference* Guide.  
**Esempio di inserimento**  

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

**aclRequired**  
Una stringa che indica se la richiesta richiede una lista di controllo degli accessi (ACL) per l'autorizzazione. Se la richiesta richiede una ACL per l'autorizzazione, la stringa è `Yes`. Se non ACLs fosse richiesto, la stringa è`-`. Per ulteriori informazioni su ACLs, vedere[Panoramica delle liste di controllo accessi (ACL)](acl-overview.md). Per ulteriori informazioni sull'utilizzo del `aclRequired` campo per disabilitare ACLs, vedere[Controllo della proprietà degli oggetti e disattivazione ACLs del bucket](about-object-ownership.md).   
**Esempio di inserimento**  

```
Yes
```

**Regione di origine**  
La AWS regione da cui proviene la richiesta. Questo campo mostra un trattino (`-`) quando non è possibile determinare la regione di origine (ad esempio PrivateLink connessioni, connessioni Direct Connect, indirizzi Bring your own IP (BYOIP) o indirizzi non AWS IP) o quando il registro viene generato da operazioni attivate in base a politiche o azioni impostate dal cliente, come ciclo di vita e checksum.  
**Esempio di inserimento**  

```
us-east-1
```

## Registrazione aggiuntiva per operazioni di copia
<a name="AdditionalLoggingforCopyOperations"></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 utente canonico è un'altra forma di ID. Account AWS Per ulteriori informazioni sull'ID utente canonico, consulta la sezione relativa agli [identificatori Account AWS](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html) nella *Riferimenti generali di AWS*. Per informazioni su come trovare l'ID utente canonico per il tuo account, consulta [Ricerca dell'ID utente canonico per l' Account AWS](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html#FindCanonicalId).  
**Esempio di inserimento**  

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
```

**Bucket**  
Nome del bucket che archivia l'oggetto che viene copiato.  
**Esempio di inserimento**  

```
amzn-s3-demo-bucket1
```

**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**  
Indirizzo IP apparente del richiedente. Dei proxy e firewall intermedi potrebbero oscurare l'indirizzo IP 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 era un utente IAM, questo campo restituirà il nome utente IAM del richiedente insieme a Utente root dell'account AWS quello a cui appartiene l'utente IAM. Questo identificatore è lo stesso che viene usato per accedere a scopi di controllo.  
**Esempio di inserimento**  

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
```
Se il richiedente utilizza un ruolo assunto, questo campo restituisce il ruolo IAM assunto.  
**Esempio di inserimento**  

```
arn:aws:sts::123456789012:assumed-role/roleName/test-role
```

**ID di richiesta**  
Una stringa generata da Amazon S3 per identificare in maniera univoca ogni richiesta. Per le richieste del processo **Calcola il checksum**, il campo **ID richiesta** visualizza l’ID del processo associato. Per ulteriori informazioni, consulta [Calcolo dei checksum](batch-ops-compute-checksums.md).  
**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" (nome oggetto) dell'oggetto che viene copiato o `-` se l'operazione non prevede un parametro chiave.   
**Esempio di inserimento**  

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

**Request-URI**  
La parte `Request-URI` del messaggio di richiesta HTTP. Questo campo può includere virgolette senza escape tratte dall'input dell'utente.  
**Esempio di inserimento**  

```
"GET /amzn-s3-demo-bucket1/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**  
Le [risposte di errore](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html) di Amazon S3 della porzione `GET` dell'operazione di copia oppure `-` se non si è verificato alcun errore.  
**Esempio di inserimento**  

```
NoSuchBucket
```

**Byte inviati**  
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 server. 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 sono stati necessari ad Amazon S3 per elaborare la 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
```

**Referer**  
Il valore dell'intestazione HTTP `Referer`, 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. Questo campo può includere virgolette senza escape tratte dall'input dell'utente.  
**Esempio di inserimento**  

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

**User-Agent**  
Il valore dell'intestazione HTTP `User-Agent`. Questo campo può includere virgolette senza escape tratte dall'input dell'utente.  
**Esempio di inserimento**  

```
"curl/7.15.1"
```

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

```
3HL4kqtJvjVBH40Nrjfkd
```

**ID host**  
`x-amz-id-2` o ID richiesta esteso Amazon S3.  
**Esempio di inserimento**  

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

**Signature Version**  
Versione della firma, `SigV2` o `SigV4`, utilizzata per autenticare la richiesta o `-` per richieste non autenticate.  
**Esempio di inserimento**  

```
SigV4
```

**Pacchetti di crittografia**  
La crittografia Transport Layer Security (TLS) negoziata per richieste HTTPS o `-` per HTTP.  
**Esempio di inserimento**  

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

**Tipo di autenticazione**  
Il tipo di autenticazione della richiesta utilizzato: `AuthHeader` per le intestazioni di autenticazione, `QueryString` per le stringhe di query (prefirmate URLs) o per le richieste non autenticate. `-`  
**Esempio di inserimento**  

```
AuthHeader
```

**Intestazione dell'host**  
L'endpoint utilizzato per connettersi ad Amazon S3.  
**Esempio di inserimento**  

```
s3.us-west-2.amazonaws.com
```
Alcune Regioni meno recenti supportano gli endpoint legacy. Potresti vedere questi endpoint nei log o nei log di accesso al server. AWS CloudTrail Per ulteriori informazioni, consulta [Endpoint legacy](VirtualHosting.md#s3-legacy-endpoints). Per un elenco completo degli endpoint e delle regioni Amazon S3, consultare la sezione relativa a [endpoint e quote di Amazon S3](https://docs.aws.amazon.com/general/latest/gr/s3.html) nella *Riferimenti generali di Amazon Web Services*.

**Versione TLS**  
La versione di Transport Layer Security (TLS) negoziata dal client. Il valore è uno dei seguenti: `TLSv1.1`, `TLSv1.2`, `TLSv1.3` o `-` se non è stato utilizzato TLS.  
**Esempio di inserimento**  

```
TLSv1.2
```

**Nome della risorsa Amazon (ARN) del punto di accesso**  
Il nome della risorsa Amazon (ARN) del punto di accesso della richiesta. Se il nome della risorsa Amazon (ARN) del punto di accesso ha un formato non valido oppure non viene utilizzato, il campo conterrà `-`. Per ulteriori informazioni sui punti di accesso, consulta [Utilizzo dei punti di accesso Amazon S3 per bucket per uso generico](using-access-points.md). Per ulteriori informazioni ARNs, consulta [Amazon Resource Name (ARN)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) nella *AWS Reference* Guide.  
**Esempio di inserimento**  

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

**aclRequired**  
Una stringa che indica se la richiesta richiede una lista di controllo degli accessi (ACL) per l'autorizzazione. Se la richiesta richiede una ACL per l'autorizzazione, la stringa è `Yes`. Se non ACLs fosse richiesto, la stringa è`-`. Per ulteriori informazioni su ACLs, vedere[Panoramica delle liste di controllo accessi (ACL)](acl-overview.md). Per ulteriori informazioni sull'utilizzo del `aclRequired` campo per disabilitare ACLs, vedere[Controllo della proprietà degli oggetti e disattivazione ACLs del bucket](about-object-ownership.md).   
**Esempio di inserimento**  

```
Yes
```

**Regione di origine**  
La AWS regione da cui proviene la richiesta. Questo campo mostra un trattino (`-`) quando non è possibile determinare la regione di origine (ad esempio PrivateLink connessioni, connessioni Direct Connect, indirizzi Bring your own IP (BYOIP) o indirizzi non AWS IP) o quando il registro viene generato da operazioni attivate in base a politiche o azioni impostate dal cliente, come ciclo di vita e checksum.  
**Esempio di inserimento**  

```
us-east-1
```

## Informazioni sui log di accesso personalizzati
<a name="LogFormatCustom"></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. Amazon S3 ignora i parametri di stringa di query che iniziano con `x-`, ma include quelli nel record del log degli accessi per la richiesta, come parte del campo `Request-URI` del record del log. 

Ad esempio, una richiesta `GET` per `"s3.amazonaws.com/amzn-s3-demo-bucket1/photos/2019/08/puppy.jpg?x-user=johndoe"` funziona come la richiesta `"s3.amazonaws.com/amzn-s3-demo-bucket1/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 dei log di accesso al server
<a name="LogFormatExtensible"></a>

Occasionalmente è possibile estendere il formato del report del log degli accessi aggiungendo nuovi campi alla fine di ogni linea. Pertanto, è necessario che il codice che analizza i log degli accessi al server sia in grado di gestire i campi che potrebbero non essere riconosciuti. 

# Eliminazione dei file di log Amazon S3
<a name="deleting-log-files-lifecycle"></a>

Un bucket Amazon S3 con la registrazione degli accessi al server abilitata può accumulare nel tempo molti oggetti del log del server. L'applicazione potrebbe necessitare di questi log di accesso per un periodo specifico dopo la creazione e successivamente potrebbe eliminarli. Puoi utilizzare la configurazione del ciclo di vita in Amazon S3 per impostare regole in modo che Amazon S3 accodi automaticamente questi oggetti per l'eliminazione alla fine del loro ciclo di vita. 

È possibile definire una configurazione del ciclo di vita per un sottoinsieme di oggetti nel bucket S3 utilizzando un prefisso condiviso. Se è stato specificato un prefisso nella configurazione della registrazione degli accessi al server, è possibile impostare una regola di configurazione del ciclo di vita per eliminare gli oggetti del log con quel prefisso. 

Supponi, ad esempio, che i tuoi oggetti di log abbiano il prefisso `logs/`. Puoi impostare una regola di configurazione del ciclo di vita per eliminare tutti gli oggetti nel bucket che hanno il prefisso `logs/` dopo un periodo di tempo specificato. 

Per ulteriori informazioni sulla configurazione del ciclo di vita, consulta [Gestione del ciclo di vita degli oggetti](object-lifecycle-mgmt.md).

Per ulteriori informazioni sulla registrazione di accesso al server, consulta [Registrazione delle richieste con registrazione dell'accesso al server](ServerLogs.md).

# Utilizzo dei log degli accessi al server Amazon S3 per identificare le richieste
<a name="using-s3-access-logs-to-identify-requests"></a>

Puoi identificare le richieste Amazon S3 con i log degli accessi al server Amazon S3. 

**Nota**  
Per identificare le richieste Amazon S3, ti consigliamo di utilizzare eventi AWS CloudTrail relativi ai dati anziché i log di accesso al server Amazon S3. CloudTrail gli eventi relativi ai dati sono più facili da configurare e contengono più informazioni. Per ulteriori informazioni, consulta [Identificazione delle richieste Amazon S3 tramite CloudTrail](cloudtrail-request-identification.md).
A seconda del numero di richieste di accesso ricevute, l'analisi dei log potrebbe richiedere più risorse o tempo rispetto all'utilizzo degli eventi relativi ai CloudTrail dati.

**Topics**
+ [

## Esecuzione di query sui log degli accessi per le richieste tramite Amazon Athena
](#querying-s3-access-logs-for-requests)
+ [

## Identificazione delle richieste di Signature versione 2 tramite i log degli accessi ad Amazon S3
](#using-s3-access-logs-to-identify-sigv2-requests)
+ [

## Identificazione delle richieste di accesso agli oggetti tramite i log degli accessi Amazon S3
](#using-s3-access-logs-to-identify-objects-access)

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

Puoi identificare le richieste ad Amazon S3 con i log degli accessi ad Amazon S3 utilizzando Amazon Athena. 

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

**Example**  
L'esempio seguente mostra come eseguire query sui log degli accessi al server Amazon S3 in Amazon Athena. Sostituisci `user input placeholders` che trovi nei seguenti esempi con le tue informazioni.  
Per specificare una posizione Amazon S3 in una query Athena, devi fornire un URI S3 per il bucket in cui vengono distribuiti i log. Questo URI deve includere il nome e il prefisso del bucket nel seguente formato: `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/home).

1. Nel Query Editor esegui un comando simile al seguente. Sostituisci `s3_access_logs_db` con il nome che desideri assegnare al database. 

   ```
   CREATE DATABASE s3_access_logs_db
   ```
**Nota**  
È consigliabile creare il database nello stesso modo in cui si utilizza il bucket Regione AWS S3. 

1. Nel Query Editor eseguire un comando simile al seguente per creare uno schema di tabella nel database creato nella fase 2. Sostituisci `s3_access_logs_db.mybucket_logs` con il nome che desideri assegnare alla tabella. 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 S3 come indicato in precedenza.

------
#### [ Date-based partitioning ]

   ```
   CREATE EXTERNAL TABLE s3_access_logs_db.mybucket_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,
    `accesspointarn` STRING,
    `aclrequired` STRING,
    `sourceregion` STRING)
    PARTITIONED BY (
      `timestamp` 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://bucket-name/prefix-name/account-id/region/source-bucket-name/'
    TBLPROPERTIES (
     'projection.enabled'='true', 
     'projection.timestamp.format'='yyyy/MM/dd', 
     'projection.timestamp.interval'='1', 
     'projection.timestamp.interval.unit'='DAYS', 
     'projection.timestamp.range'='2024/01/01,NOW', 
     'projection.timestamp.type'='date', 
     'storage.location.template'='s3://bucket-name/prefix-name/account-id/region/source-bucket-name/${timestamp}')
   ```

------
#### [ Non-date-based partitioning ]

   ```
   CREATE EXTERNAL TABLE `s3_access_logs_db.mybucket_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,
     `accesspointarn` STRING,
     `aclrequired` STRING,
     `sourceregion` 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 degli accessi al server Amazon S3.

**Example - Visualizza chi ha eliminato un oggetto e quando (timestamp, indirizzo IP e utente IAM)**  

```
SELECT requestdatetime, remoteip, requester, key 
FROM s3_access_logs_db.mybucket_logs 
WHERE key = 'images/picture.jpg' AND operation like '%DELETE%';
```

**Example - Visualizza tutte le operazioni eseguite da un utente IAM**  

```
SELECT * 
FROM s3_access_logs_db.mybucket_logs 
WHERE requester='arn:aws:iam::123456789123:user/user_name';
```

**Example - Visualizza tutte le operazioni eseguite su un oggetto in un periodo di tempo specifico**  

```
SELECT *
FROM s3_access_logs_db.mybucket_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');
```

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

```
SELECT coalesce(SUM(bytessent), 0) AS bytessenttotal
FROM s3_access_logs_db.mybucket_logs
WHERE remoteip='192.0.2.1'
AND parse_datetime(requestdatetime,'dd/MMM/yyyy:HH:mm:ss Z')
BETWEEN parse_datetime('2022-06-01','yyyy-MM-dd')
AND parse_datetime('2022-07-01','yyyy-MM-dd');
```

**Example — Trova IDs la richiesta di errori HTTP 5xx in un periodo di tempo specifico**  

```
SELECT requestdatetime, key, httpstatus, errorcode, requestid, hostid 
FROM s3_access_logs_db.mybucket_logs
WHERE httpstatus like '5%' AND timestamp
BETWEEN '2024/01/29'
AND '2024/01/30'
```

**Nota**  
Per ridurre il periodo di conservazione dei log, puoi creare una configurazione del ciclo di vita S3 per il bucket dei log degli accessi al server. Crea regole di configurazione del ciclo di vita per rimuovere i file di log periodicamente. In questo modo, si riduce la quantità di dati analizzati da Athena per ogni query. Per ulteriori informazioni, consulta [Impostazione di una configurazione del ciclo di vita S3 in un bucket](how-to-set-lifecycle-configuration-intro.md).

## Identificazione delle richieste di Signature versione 2 tramite i log degli accessi ad Amazon S3
<a name="using-s3-access-logs-to-identify-sigv2-requests"></a>

Il supporto di Amazon S3 per Signature Version 2 sta per essere disattivato in quanto obsoleto. Dopo, Amazon S3 non accetterà più le richieste che usano Signature Version 2 e tutte le richieste dovranno usare la firma *Signature Version 4*. Puoi identificare le richieste di accesso a Signature versione 2 utilizzando i log degli accessi ad Amazon S3. 

**Nota**  
Per identificare le richieste Signature versione 2, ti consigliamo di utilizzare gli eventi AWS CloudTrail relativi ai dati anziché i log di accesso al server Amazon S3. CloudTrail gli eventi di dati sono più facili da configurare e contengono più informazioni rispetto ai log di accesso al server. Per ulteriori informazioni, consulta [Identificazione delle richieste Amazon S3 Signature versione 2 mediante CloudTrail](cloudtrail-request-identification.md#cloudtrail-identification-sigv2-requests).

**Example - Visualizza tutti i richiedenti che inviano traffico Signature versione 2**  

```
SELECT requester, sigv, Count(sigv) as sigcount 
FROM s3_access_logs_db.mybucket_logs
GROUP BY requester, sigv;
```

## Identificazione delle richieste di accesso agli oggetti tramite i log degli accessi Amazon S3
<a name="using-s3-access-logs-to-identify-objects-access"></a>

Puoi utilizzare query sui log degli accessi al server Amazon S3 per identificare le richieste di accesso a oggetti Amazon S3, per operazioni come `GET`, `PUT` e `DELETE`, e ottenere ulteriori informazioni su queste richieste.

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

**Example : visualizza tutti i richiedenti che inviano richieste `PUT` di oggetti in un determinato periodo**  

```
SELECT bucket_name, requester, remoteip, key, httpstatus, errorcode, requestdatetime
FROM s3_access_logs_db.mybucket_logs
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. 

**Example : visualizza tutti i richiedenti che inviano richieste `GET` di oggetti in un determinato periodo**  

```
SELECT bucket_name, requester, remoteip, key, httpstatus, errorcode, requestdatetime
FROM s3_access_logs_db.mybucket_logs
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. 

**Example : visualizza tutti i richiedenti anonimi che effettuano richieste a un bucket in un determinato periodo**  

```
SELECT bucket_name, requester, remoteip, key, httpstatus, errorcode, requestdatetime
FROM s3_access_logs_db.mybucket_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')
```

La seguente query Amazon Athena mostra come identificare tutte le richieste ai bucket S3 che richiedono una lista di controllo degli accessi (ACL) per l'autorizzazione. È possibile utilizzare queste informazioni per migrare tali autorizzazioni ACL alle policy bucket appropriate e disabilitarle. ACLs Dopo aver creato queste politiche per i bucket, puoi disabilitarle. ACLs Per ulteriori informazioni sulla disabilitazione ACLs, consulta. [Prerequisiti per la disabilitazione ACLs](object-ownership-migrating-acls-prerequisites.md) 

**Example : identifica tutte le richieste che richiedono una ACL per l'autorizzazione**  

```
SELECT bucket_name, requester, key, operation, aclrequired, requestdatetime
FROM s3_access_logs_db.mybucket_logs
WHERE aclrequired = 'Yes' 
AND parse_datetime(requestdatetime,'dd/MMM/yyyy:HH:mm:ss Z')
BETWEEN parse_datetime('2022-05-10:00:00:00','yyyy-MM-dd:HH:mm:ss')
AND parse_datetime('2022-08-10:00:00:00','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 rivedere i risultati per le chiamate `PutObject` o `GetObject` da indirizzi IP o richiedenti imprevisti o non autorizzati e per l'identificazione di eventuali richieste anonime ai bucket.
La query recupera solo le informazioni a partire dall'orario in cui è stata abilitata la registrazione. 
Se si utilizzano i AWS CloudTrail log, vedere. [Identificazione dell'accesso agli oggetti S3 utilizzando CloudTrail](cloudtrail-request-identification.md#cloudtrail-identification-object-access) 

# Risoluzione dei problemi di registrazione degli accessi al server
<a name="troubleshooting-server-access-logging"></a>

Gli argomenti seguenti possono essere utili per risolvere i problemi che possono verificarsi durante la configurazione della registrazione con Amazon S3.

**Topics**
+ [

## Messaggi di errore comuni durante la configurazione della registrazione
](#common-errors)
+ [

## Risoluzione dei problemi di consegna
](#delivery-failures)

## Messaggi di errore comuni durante la configurazione della registrazione
<a name="common-errors"></a>

I seguenti messaggi di errore comuni possono apparire quando abiliti la registrazione tramite AWS Command Line Interface (AWS CLI) e: AWS SDKs 

Errore: Registrazione multi-posizione S3 non consentita

Se il bucket di destinazione (noto anche come *bucket target*) si trova in una regione diversa da quella del bucket di origine, si verifica l'errore Registrazione multi-posizione S3 non consentita. Per risolvere questo errore, assicuratevi che il bucket di destinazione configurato per ricevere i log di accesso si trovi nello stesso Regione AWS bucket di Account AWS origine.

Errore: Il proprietario del bucket da registrare e quello del bucket di destinazione devono coincidere

Quando si abilita la registrazione degli accessi al server, questo errore si verifica se il bucket di destinazione specificato appartiene a un account diverso. Per risolvere questo errore, assicurati che il bucket di destinazione sia nello stesso Account AWS del bucket di origine.

**Nota**  
Ti consigliamo di scegliere un bucket di destinazione diverso dal bucket di origine. Quando il bucket di origine e il bucket di destinazione coincidono, vengono creati log aggiuntivi per i log scritti nel bucket. Questa situazione può causare l'aumento delle spese di archiviazione. La registrazione di questi log aggiuntivi può rendere difficile la ricerca di log specifici. Tuttavia, per una gestione più semplice dei log, si consiglia di salvare i log degli accessi in un bucket diverso. Per ulteriori informazioni, consulta [Come si abilita il recapito dei log?](ServerLogs.md#server-access-logging-overview).

Errore: Il bucket di destinazione per la registrazione non esiste

Il bucket di destinazione deve esistere prima di impostare la configurazione. Questo errore indica che il bucket di destinazione non esiste o non può essere trovato. Verifica che il nome del bucket sia stato digitato correttamente, quindi riprova.

Errore: Concessioni di destinazione non consentite per i bucket con l'opzione Bucket owner enforced abilitata

Questo errore indica che il bucket di destinazione utilizza l'impostazione Proprietario del bucket applicato per Proprietà dell'oggetto S3. L'impostazione Proprietario del bucket applicato non supporta le concessioni di destinazione (target). Per ulteriori informazioni, consulta [Autorizzazioni per la distribuzione dei registri](enable-server-access-logging.md#grant-log-delivery-permissions-general).

## Risoluzione dei problemi di consegna
<a name="delivery-failures"></a>

Per evitare problemi di registrazione degli accessi al server, assicurati di seguire queste best practice:
+ **Il gruppo di distribuzione dei log S3 dispone dell'accesso in scrittura al bucket di destinazione**: il gruppo di distribuzione dei log S3 fornisce i log degli accessi al server al bucket di destinazione. Puoi usare una policy del bucket o una lista di controllo degli accessi (ACL) di un bucket per concedere l'accesso in scrittura al bucket di destinazione. Invece di una lista di controllo degli accessi (ACL) consigliamo di utilizzare una policy di bucket. Per ulteriori informazioni su come concedere l'accesso in scrittura al bucket di destinazione, consulta [Autorizzazioni per la distribuzione dei registri](enable-server-access-logging.md#grant-log-delivery-permissions-general).
**Nota**  
Se il bucket di destinazione utilizza l'impostazione Proprietario del bucket applicato per Proprietà dell'oggetto, tieni presente quanto segue:   
ACLs sono disabilitati e non influiscono più sulle autorizzazioni. Ciò significa che non è possibile aggiornare l'ACL del bucket per concedere l'accesso al gruppo di distribuzione dei log S3. Invece, è necessario aggiornare la policy del bucket per il bucket di destinazione per concedere l'accesso al principale del servizio di registrazione. 
Non puoi includere concessioni di destinazione nella configurazione `PutBucketLogging`. 
+ **La policy del bucket per il bucket di destinazione consente l'accesso ai log**: controlla la policy del bucket del bucket di destinazione. Nella policy di bucket cerca tutte le istruzioni contenenti `"Effect": "Deny"`. Verifica quindi che l'istruzione `Deny` non impedisca la scrittura dei log di accesso nel bucket.
+ **S3 Object Lock non è abilitato sul bucket di destinazione**: controlla se per il bucket di destinazione è stata abilitata l'opzione Object Lock. L'opzione Blocco oggetti blocca la consegna del log degli accessi al server. È necessario scegliere un bucket di destinazione in cui non sia abilitata l'opzione Object Lock.
+ **Le chiavi gestite da Amazon S3 (SSE-S3) vengono selezionate se la crittografia predefinita è abilitata sul bucket di destinazione**: puoi usare la crittografia bucket predefinita sul bucket di destinazione solo se utilizzi la crittografia lato server con chiavi gestite da Amazon S3 (SSE-S3). La crittografia predefinita lato server con chiavi AWS Key Management Service (AWS KMS) (SSE-KMS) non è supportata per i bucket di destinazione per la registrazione degli accessi al server. Per ulteriori informazioni su come abilitare la crittografia predefinita, consulta [Configurazione della crittografia predefinita](default-bucket-encryption.md).
+ **Nel bucket di destinazione l'opzione Pagamento a carico del richiedente non è abilitata**: non è supportato l'uso di un bucket con pagamento a carico del richiedente come bucket di destinazione per la registrazione degli accessi al server. Per consentire la consegna dei log di accesso ai server, disabilita l'opzione Pagamento a carico del richiedente nel bucket di destinazione.
+ **Rivedi le politiche di controllo del AWS Organizations servizio (SCPs) e le politiche di controllo delle risorse (RCPs)**: quando utilizzi AWS Organizations, controlla le politiche di controllo del servizio e le politiche di controllo delle risorse per assicurarti che l'accesso ad Amazon S3 sia consentito. Queste policy specificano le autorizzazioni massime per i principali e le risorse negli account interessati. Cerca nelle policy tutte le istruzioni che contengono `"Effect": "Deny"` e verificare che le istruzioni `Deny` non impediscano la scrittura dei log degli accessi nel bucket. Per ulteriori informazioni, consulta le [policy di autorizzazione in AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_authorization_policies.html) nella *Guida all'utente AWS Organizations *.
+ **Attendi qualche minuto affinché le modifiche recenti alla configurazione dei log siano effettive**: l'abilitazione della registrazione di accesso ai server per la prima volta o la modifica del bucket di destinazione per i log richiede tempo per essere pienamente effettiva. Potrebbe essere necessaria più di un'ora prima che tutte le richieste vengano registrate e consegnate correttamente. 

  Per verificare eventuali errori di consegna dei log, abilita le metriche delle richieste in Amazon. CloudWatch Se i log non vengono consegnati entro poche ore, cerca la metrica `4xxErrors`, che può indicare gli errori di consegna dei log. Per ulteriori informazioni sull'abilitazione delle metriche delle richieste, consulta [Creazione di una configurazione CloudWatch delle metriche per tutti gli oggetti nel bucket](configure-request-metrics-bucket.md).