Formato del log di accesso al server Amazon S3 - Amazon Simple Storage Service

Formato del log di accesso al server Amazon S3

La registrazione degli accessi al server fornisce record dettagliati per le richieste che sono effettuate a un bucket Amazon S3. Puoi utilizzare i log di accesso al server per controlli di sicurezza e accesso, conoscere la tua base clienti o capire meglio la fattura 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.

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

Campi dei record dei log

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 dell'ID Account AWS. Per ulteriori informazioni sull'ID utente canonico, consulta Identificatori account di Account AWS in Riferimenti generali AWS. Per informazioni su come trovare l'ID utente canonico per il tuo account, consulta Ricerca dell'ID utente canonico per l'Account AWS.

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

awsexamplebucket1
Orario

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

Esempio di inserimento

[06/Feb/2019:00:00:38 +0000]
IP remoto

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

Esempio di inserimento

192.0.2.3
Richiedente

L'ID utente canonico del richiedente o - per richieste non autenticate. Se il richiedente era un utente IAM, questo campo restituisce il nome utente IAM del richiedente insieme all'account root AWS a cui appartiene l'utente IAM. Questo identificatore è lo stesso utilizzato a scopo di controllo dell'accesso.

Esempio di inserimento

79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
ID di richiesta

Una stringa generata da Amazon S3 per identificare in maniera univoca ogni richiesta.

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 e registrazione.

Esempio di inserimento

REST.PUT.OBJECT
Chiave

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

Esempio di inserimento

/photos/2019/08/puppy.jpg
URI della richiesta

La parte URI della richiesta del messaggio di richiesta HTTP.

Esempio di inserimento

"GET /awsexamplebucket1/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

Amazon S3 Codice di errore 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 della 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 della risposta.

Esempio di inserimento

10
Referer

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

Esempio di inserimento

"http://www.amazon.com/webservices"
Utente-agente

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

Esempio di inserimento

"curl/7.15.1"
ID versione

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

Esempio di inserimento

3HL4kqtJvjVBH40Nrjfkd
ID host

L'ID di richiesta esteso x-amz-id-2 o 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 Secure Sockets Layer (SSL) negoziata per richieste HTTPS o un - per HTTP.

Esempio di inserimento

ECDHE-RSA-AES128-GCM-SHA256
Tipo di autenticazione

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

Esempio di inserimento

AuthHeader
Intestazione dell'host

L'endpoint utilizzato per connettersi ad Amazon S3.

Esempio di inserimento

s3.us-west-2.amazonaws.com

Alcune regioni meno recenti supportano gli endpoint legacy. Questi endpoint potrebbero essere visualizzati nei log di accesso al server o nei log di AWS CloudTrail. Per ulteriori informazioni, consulta Endpoint legacy. Per un elenco completo degli endpoint e delle Regioni Amazon S3, consulta Endpoint e quote di Amazon S3 in Riferimenti generali di Amazon Web Services.

Versione TLS

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

Esempio di inserimento

TLSv1.2
Punti di accesso ARN (Amazon Resource Name)

L'Amazon Resource Name (ARN) del punto di accesso della richiesta. Se l'ARN del punto di accesso è malformato o non viene utilizzato, il campo conterrà un '-'. Per ulteriori informazioni sui punti di accesso, consulta Utilizzo degli access point. Per ulteriori informazioni sugli ARN, consulta l'argomento suAmazon Resource Name (ARN) nella Guida di riferimento AWS.

Esempio di inserimento

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

Registrazione aggiuntiva per operazioni di copia

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 che archivia l'oggetto che viene copiato. L'ID utente canonico è un'altra forma dell'ID Account AWS. Per ulteriori informazioni sull'ID utente canonico, consulta Identificatori account di Account AWS in Riferimenti generali AWS. Per informazioni su come trovare l'ID utente canonico per il tuo account, consulta Ricerca dell'ID utente canonico per l'Account AWS.

Esempio di inserimento

79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
Bucket

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

Esempio di inserimento

awsexamplebucket1
Orario

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

Esempio di inserimento

[06/Feb/2019:00:00:38 +0000]
IP remoto

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

Esempio di inserimento

192.0.2.3
Richiedente

L'ID utente canonico del richiedente o - per richieste non autenticate. Se il richiedente era un utente IAM, questo campo restituirà il nome utente IAM del richiedente insieme all'account root AWS a cui appartiene l'utente IAM. Questo identificatore è lo stesso utilizzato a scopo di controllo dell'accesso.

Esempio di inserimento

79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
ID di richiesta

Una stringa generata da Amazon S3 per identificare in maniera univoca ogni richiesta.

Esempio di inserimento

3E57427F33A59F07
Operazione

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

Esempio di inserimento

REST.COPY.OBJECT_GET
Chiave

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

Esempio di inserimento

/photos/2019/08/puppy.jpg
URI della richiesta

La parte URI della richiesta del messaggio di richiesta HTTP.

Esempio di inserimento

"GET /awsexamplebucket1/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

Codice di errore Amazon S3 della porzione GET dell'operazione di copia o "-" se non si è verificato alcun errore.

Esempio di inserimento

NoSuchBucket
Byte inviati

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

Esempio di inserimento

2662992
Dimensione oggetto

La dimensione totale dell'oggetto in questione.

Esempio di inserimento

3462992
Tempo totale

Il numero di millisecondi durante i quali la richiesta è stata in transito dalla prospettiva del server. Questo valore viene misurato dal momento in cui si riceve la richiesta al momento in cui viene inviato l'ultimo byte della 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 della risposta.

Esempio di inserimento

10
Referer

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

Esempio di inserimento

"http://www.amazon.com/webservices"
Utente-agente

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

Esempio di inserimento

"curl/7.15.1"
ID versione

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

L'ID di richiesta esteso x-amz-id-2 o 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 Secure Sockets Layer (SSL) negoziata per richieste HTTPS o un - per HTTP.

Esempio di inserimento

ECDHE-RSA-AES128-GCM-SHA256
Tipo di autenticazione

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

Esempio di inserimento

AuthHeader
Intestazione dell'host

L'endpoint utilizzato per connettersi ad Amazon S3.

Esempio di inserimento

s3.us-west-2.amazonaws.com

Alcune regioni meno recenti supportano gli endpoint legacy. Questi endpoint potrebbero essere visualizzati nei log di accesso al server o nei log AWS CloudTrail. Per ulteriori informazioni, consulta Endpoint legacy. Per un elenco completo degli endpoint e delle Regioni Amazon S3, consulta Endpoint e quote di Amazon S3 in Riferimenti generali di Amazon Web Services.

Versione TLS

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

Esempio di inserimento

TLSv1.2
Punti di accesso ARN (Amazon Resource Name)

L'Amazon Resource Name (ARN) del punto di accesso della richiesta. Se l'ARN del punto di accesso è malformato o non viene utilizzato, il campo conterrà un '-'. Per ulteriori informazioni sui punti di accesso, consulta Utilizzo degli access point. Per ulteriori informazioni sugli ARN, consulta l'argomento suAmazon Resource Name (ARN) nella Guida di riferimento AWS.

Esempio di inserimento

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

Informazioni sui log di accesso personalizzati

È 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 di accesso per la richiesta, come parte del campo Request-URI del record del log.

Ad esempio, una richiesta GET di "s3.amazonaws.com/awsexamplebucket1/photos/2019/08/puppy.jpg?x-user=johndoe" funziona come la richiesta di "s3.amazonaws.com/awsexamplebucket1/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

Di tanto in tanto, è possibile estendere il formato dei record di log di accesso aggiungendo nuovi campi alla fine di ogni linea. Pertanto, è necessario scrivere qualsiasi codice che analizzi i log di accesso al server per gestire i campi alla fine che potrebbero non essere riconosciuti.