Abilitazione della registrazione degli accessi al server Amazon S3
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 default, Amazon S3 non raccoglie i log degli accessi 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 si deve trovare nella stessa Regione AWS e nello stesso Account AWS del bucket di 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.
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?
-
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 di Amazon S3, l'API Amazon S3, la AWS Command Line Interface (AWS CLI) o gli SDK AWS.
Autorizzazioni per la distribuzione dei registri
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 di log, è possibile utilizzare una policy del bucket o le liste di controllo degli accessi (ACL) del bucket, a seconda delle impostazioni di Proprietà dell'oggetto S3 del bucket di destinazione. Invece di una lista di controllo degli accessi (ACL) consigliamo di utilizzare una policy del bucket.
Impostazione proprietario del bucket applicato per S3 Object Ownership
Se il bucket di destinazione utilizza l'impostazione proprietario del bucket applicato per Proprietà dell'oggetto, le ACL vengono disabilitate 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 PutBucketLogging.
Per informazioni sulla migrazione delle ACL del bucket esistenti per la consegna dei log degli accessi a una policy del bucket, consulta Concedere l'accesso al gruppo di consegna di log S3 per la registrazione di log degli accessi al server. Per ulteriori informazioni su Object Ownership, consulta Controllo della proprietà degli oggetti e disabilitazione degli ACL per il bucket. Quando crei nuovi bucket, le ACL sono disabilitate 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.
Concessione dell'accesso utilizzando le liste di controllo degli accessi (ACL) del bucket
Puoi utilizzare in alternativa le liste di controllo degli accessi (ACL) del bucket per concedere l'accesso per la consegna di log degli accessi. 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 distribuzione dei log S3 tramite le ACL bucket. Per ulteriori informazioni, consulta Controllo della proprietà degli oggetti e disabilitazione degli ACL per il bucket. Per informazioni sulla migrazione delle ACL del bucket esistenti per la consegna dei log degli accessi a una policy del bucket, consulta Concedere l'accesso al gruppo di consegna di log S3 per la registrazione di log degli accessi al server. 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.
Concedi le autorizzazioni al principale del servizio di registrazione di log utilizzando una policy del bucket
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 con le tue informazioni. Nella seguente policy, user input placeholders è il bucket di destinazione in cui verranno distribuiti i log degli accessi al server e amzn-s3-demo-destination-bucket è il bucket di origine. amzn-s3-demo-source-bucket è il prefisso di destinazione facoltativo (noto anche come prefisso target) da utilizzare per gli oggetti di log. EXAMPLE-LOGGING-PREFIX è l’Account AWS proprietario del bucket di origine. SOURCE-ACCOUNT-ID
Nota
Se nella policy del bucket sono presenti istruzioni Deny, assicurati che non impediscano ad Amazon S3 di distribuire i log di accesso.
Concedere autorizzazioni al gruppo di distribuzione dei log utilizzando l'ACL bucket
Nota
Come best practice di sicurezza, Amazon S3 disabilita le liste di controllo degli accessi (ACL) per impostazione predefinita in tutti i nuovi bucket. Per ulteriori informazioni sulle autorizzazioni ACL nella console di Amazon S3, consulta Configurazione delle ACL.
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 Proprietario del bucket applicato per Proprietà dell'oggetto, non puoi impostare le ACL di bucket o di oggetti. Inoltre, non puoi includere concessioni di destinazione (note anche come concessioni target) nella configurazione PutBucketLogging. 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.
Nelle liste di controllo degli accessi del bucket, il gruppo di consegna di log è rappresentato dall'URL seguente.
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:
<Grant> <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Group"> <URI>http://acs.amazonaws.com/groups/s3/LogDelivery</URI> </Grantee> <Permission>WRITE</Permission> </Grant> <Grant> <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Group"> <URI>http://acs.amazonaws.com/groups/s3/LogDelivery</URI> </Grantee> <Permission>READ_ACP</Permission> </Grant>
Per esempi sull'aggiunta a livello di programmazione di concessioni ACL, consulta la sezione Configurazione delle ACL.
Importante
Quando abiliti la registrazione degli accessi al server Amazon S3 utilizzando AWS CloudFormation in un bucket e utilizzi le ACL per concedere l'accesso al gruppo di distribuzione dei log S3, devi anche aggiungere "AccessControl": "LogDeliveryWrite" nel modello di CloudFormation. Questa operazione è importante perché puoi concedere tali autorizzazioni solo creando una ACL per il bucket, ma non puoi creare ACL personalizzate per i bucket in CloudFormation. Con CloudFormation è possibile utilizzare solo ACL predefinite.
Come abilitare la registrazione degli accessi al server
Per abilitare la registrazione di log degli accessi al server tramite la console Amazon S3, la REST API di Amazon S3, gli AWS SDK e la AWS CLI, utilizza le procedure seguenti.
Accedi alla Console di gestione AWS e apri la console Amazon S3 all’indirizzo https://console.aws.amazon.com/s3/
. -
Nel riquadro di navigazione sinistro, scegli Bucket per uso generico.
-
Nell’elenco dei bucket scegli il nome del bucket per il quale desideri abilitare la registrazione dei log degli accessi al server.
-
Scegliere Properties (Proprietà).
-
Nella sezione Server access logging (Registrazione degli accessi al server) scegliere Edit (Modifica).
-
In Registrazione degli accessi al server, seleziona Abilita.
-
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 prefissologs/, la chiave di ogni oggetto del log creato da Amazon S3 è preceduta dal prefissologs/, come segue:logs/2013-11-01-21-32-16-E568B2907131C0C0Se specifichi il valore del prefisso
logs, l'oggetto del log viene visualizzato come segue:logs2013-11-01-21-32-16-E568B2907131C0C0 -
In Formato della chiave dell'oggetto di log, esegui una delle seguenti operazioni:
-
Per scegliere un partizionamento non basato sulla data, vai a [DestinationPrefix][YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString].
-
Per scegliere il partizionamento basato sulla data, vai a [DestinationPrefix][SourceAccountId]/[SourceRegion]/[SourceBucket]/[YYYY]/[MM]/[DD]/[YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString], quindi scegli Ora evento S3 o Ora di consegna dei file di log.
-
-
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:PutObjectal 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.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?.
Per ulteriori informazioni, consulta Visualizzazione delle proprietà di un bucket per uso generico S3.
Per abilitare i log, devi inviare una richiesta PutBucketLogging 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 come bucket di destinazione e amzn-s3-demo-destination-bucket come prefisso. logs/
<BucketLoggingStatus xmlns="http://doc.s3.amazonaws.com/2006-03-01"> <LoggingEnabled> <TargetBucket>amzn-s3-demo-destination-bucket</TargetBucket> <TargetPrefix>logs/</TargetPrefix> </LoggingEnabled> </BucketLoggingStatus>
L'esempio seguente identifica come bucket di destinazione, amzn-s3-demo-destination-bucket come prefisso e logs/EventTime come il formato della chiave dell'oggetto di log.
<BucketLoggingStatus xmlns="http://doc.s3.amazonaws.com/2006-03-01"> <LoggingEnabled> <TargetBucket>amzn-s3-demo-destination-bucket</TargetBucket> <TargetPrefix>logs/</TargetPrefix> <TargetObjectKeyFormat> <PartitionedPrefix> <PartitionDateSource>EventTime</PartitionDateSource> </PartitionedPrefix> </TargetObjectKeyFormat> </LoggingEnabled> </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 PutBucketLogging.
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.
Per recuperare la configurazione di registrazione di log su un bucket, utilizza l'operazione API GetBucketLogging.
Per eliminare la configurazione della registrazione di log, devi inviare una richiesta PutBucketLoggingcon un elemento BucketLoggingStatus vuoto:
<BucketLoggingStatus xmlns="http://doc.s3.amazonaws.com/2006-03-01"> </BucketLoggingStatus>
Per abilitare la registrazione di log su un bucket, puoi utilizzare l'API di Amazon S3 o le librerie wrapper di AWS SDK.
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 (target) utilizza l'impostazione Proprietario del bucket applicato per Proprietà dell'oggetto, non sarà possibile impostare le ACL di bucket o di oggetti. Inoltre, non puoi includere concessioni di destinazione (target) nella tua configurazione PutBucketLogging. È 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.
Si consiglia di creare un bucket di registrazione dedicato in ogni Regione AWS in cui si dispone di 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 put-bucket-logging
Se il bucket di destinazione (target) utilizza l'impostazione Proprietario del bucket applicato per Proprietà dell'oggetto, non sarà possibile impostare le ACL di bucket o di oggetti. Inoltre, non puoi includere concessioni di destinazione (target) nella tua configurazione PutBucketLogging. È 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.
Esempio - 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.
-
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
-
-
Più avanti in questi passaggi, abiliterai la registrazione di log degli accessi al server come segue:
-
accede al bucket S3amzn-s3-demo-source-bucket-us-east-1con prefissoamzn-s3-demo-destination-bucket-logs-us-east-1amzn-s3-demo-source-bucket-us-east-1 -
accede al bucket S3amzn-s3-demo-source-bucket1-us-east-1con prefissoamzn-s3-demo-destination-bucket-logs-us-east-1amzn-s3-demo-source-bucket1-us-east-1 -
accede al bucket S3amzn-s3-demo-source-bucket2-us-east-1con prefissoamzn-s3-demo-destination-bucket-logs-us-east-1amzn-s3-demo-source-bucket2-us-east-1 -
accede al bucket S3amzn-s3-demo-bucket1-us-west-2con prefissoamzn-s3-demo-destination-bucket1-logs-us-west-2amzn-s3-demo-bucket1-us-west-2 -
accede al bucket S3amzn-s3-demo-bucket2-us-west-2con prefissoamzn-s3-demo-destination-bucket1-logs-us-west-2amzn-s3-demo-bucket2-us-west-2
-
-
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-policyseguente. Sostituiscicon il nome del tuo bucket di destinazione.amzn-s3-demo-destination-bucket-logsaws s3api put-bucket-policy --bucket--policy file://policy.jsonamzn-s3-demo-destination-bucket-logsPolicy.jsonè un documento JSON nella cartella corrente che contiene la policy del bucket seguente. Per utilizzare questa policy del bucket, sostituiscicon le tue informazioni. Nella policy seguente,user input placeholdersè il bucket di destinazione in cui verranno distribuiti i log degli accessi al server eamzn-s3-demo-destination-bucket-logsè il bucket di origine.amzn-s3-demo-source-bucketè l'Account AWS proprietario del bucket di origine.SOURCE-ACCOUNT-ID -
Aggiorna l'ACL bucket: per concedere le autorizzazioni al gruppo di distribuzione dei log S3, utilizza il comando
put-bucket-aclseguente. Sostituiscicon il nome del tuo bucket di destinazione (target).amzn-s3-demo-destination-bucket-logsaws s3api put-bucket-acl --bucket--grant-write URI=http://acs.amazonaws.com/groups/s3/LogDelivery --grant-read-acp URI=http://acs.amazonaws.com/groups/s3/LogDeliveryamzn-s3-demo-destination-bucket-logs
-
-
Quindi, crea un file
logging.jsonche contenga la configurazione di registrazione di log (in base a uno dei tre esempi che seguono). Dopo aver creato il filelogging.json, puoi applicare la configurazione di registrazione di log utilizzando il comandoput-bucket-loggingseguente. Sostituiscicon il nome del tuo bucket di destinazione (target).amzn-s3-demo-destination-bucket-logsaws s3api put-bucket-logging --bucket--bucket-logging-status file://logging.jsonamzn-s3-demo-destination-bucket-logsNota
Invece di usare questo comando
put-bucket-loggingper 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 filepolicy.jsonelogging.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.Esempio –
logging.jsonsenza concessioni relative alla destinazione (target)Il seguente file di esempio
logging.jsoncontiene 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/" } }Esempio –
logging.jsoncon concessioni relative alla destinazione (target)Il seguente file di esempio
logging.jsoncontiene 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 PutBucketLogging. Per ulteriori informazioni, consulta Autorizzazioni per la distribuzione dei registri.
{ "LoggingEnabled": { "TargetBucket": "amzn-s3-demo-destination-bucket-logs", "TargetPrefix": "amzn-s3-demo-destination-bucket/", "TargetGrants": [ { "Grantee": { "Type": "AmazonCustomerByEmail", "EmailAddress": "user@example.com" }, "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", "DisplayName": "GranteesEmail" } }DisplayNameè facoltativo e viene ignorato nella richiesta. -
In base all’indirizzo e-mail:
{ "Grantee": { "Type": "AmazonCustomerByEmail", "EmailAddress": "username@example.com" } }L’assegnatario viene risolto in
CanonicalUsere, in risposta a una richiestaGetObjectAcl, appare comeCanonicalUser.Nota
L’utilizzo di indirizzi e-mail per specificare un assegnatario è supportato soltanto in alcune Regioni AWS. Per ulteriori informazioni, consulta Grantee nella documentazione di riferimento delle API di Amazon S3.
-
In base all’URI:
{ "Grantee": { "Type": "Group", "URI": "http://acs.amazonaws.com/groups/global/AuthenticatedUsers" } }
Esempio –
logging.jsoncon il formato della chiave dell'oggetto di log impostato sull'ora dell'evento S3Il file
logging.jsonseguente 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?.{ "LoggingEnabled": { "TargetBucket": "amzn-s3-demo-destination-bucket-logs", "TargetPrefix": "amzn-s3-demo-destination-bucket/", "TargetObjectKeyFormat": { "PartitionedPrefix": { "PartitionDateSource": "EventTime" } } } } -
-
Utilizza uno dei seguenti script bash per aggiungere la registrazione di log degli accessi per tutti i bucket nel tuo account. Sostituisci
con il nome del bucket di destinazione (target) e sostituisciamzn-s3-demo-destination-bucket-logscon il nome della regione in cui si trovano i bucket.us-west-2Nota
Questo script funziona solo se tutti i bucket si trovano nella stessa regione. Se ci sono bucket in più regioni, è necessario modificare lo script.
Esempio – 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"Esempio – Concedi l'accesso con ACL di 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-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
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, consulta Tempo richiesto per l'applicazione delle modifiche dello stato di registrazione del bucket e Consegna di log del server sulla base del miglior tentativo.
Puoi anche verificare automaticamente la distribuzione dei log utilizzando le metriche delle richieste di Amazon S3 e impostando gli allarmi Amazon CloudWatch per tali metriche. Per ulteriori informazioni, consulta Monitoraggio dei parametri con Amazon CloudWatch.
-
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.