Configurazione della registrazione di log standard (v2)
Puoi abilitare la registrazione di log standard quando durante la creazione o l’aggiornamento di una distribuzione. La registrazione di log standard (v2) include le seguenti funzionalità:
-
Invio di log di accesso ad Amazon CloudWatch Logs, Amazon Data Firehose e Amazon Simple Storage Service (Amazon S3).
-
Selezione dei campi di log desiderati. Puoi anche selezionare un sottoinsieme di campi di log in tempo reale.
-
Selezione dei formati file di log di output aggiuntivi.
Se utilizzi Amazon S3, hai a disposizione le seguenti funzionalità opzionali:
-
Invio di log a Regioni AWS di adesione.
-
Organizzazione dei log con il partizionamento.
-
Abilitazione di nomi di file compatibili con Hive.
Per ulteriori informazioni, consulta Invio di log ad Amazon S3.
Per iniziare a utilizzare la registrazione di log standard, completa le fasi seguenti:
-
Imposta le autorizzazioni richieste per il Servizio AWS di destinazione dei log specificato.
-
Configura la registrazione di log standard dalla console CloudFront o dall’API CloudWatch.
-
Visualizza i log di accesso.
Nota
-
Se abiliti la registrazione di log standard (v2), ciò non influisce né modifica la registrazione di log standard (legacy). Puoi continuare a utilizzare la registrazione di log standard (legacy) per la distribuzione, oltre a utilizzare la registrazione di log standard (v2). Per ulteriori informazioni, consulta Configurazione della registrazione di log standard (legacy).
-
Se hai già abilitato la registrazione di log standard (legacy) e desideri abilitare la registrazione di log standard (v2) su Amazon S3, ti consigliamo di specificare un bucket Amazon S3 diverso o di utilizzare un percorso separato nello stesso bucket (ad esempio, utilizzare un prefisso di log o il partizionamento). Questo consente di tenere traccia di quali file di log sono associati a quale distribuzione ed evita la sovrascrittura reciproca dei file di log.
Autorizzazioni
CloudFront utilizza i log forniti da CloudWatch per consegnare i log di accesso. Per farlo, devi disporre delle autorizzazioni per il Servizio AWS specificato in modo da poter abilitare la consegna della registrazione di log.
Per visualizzare le autorizzazioni richieste per ogni destinazione di registrazione di log, scegli uno dei seguenti argomenti nella Guida per l’utente di Amazon CloudWatch Logs.
Dopo aver impostato le autorizzazioni per la destinazione della registrazione di log, puoi abilitare la registrazione di log standard per la distribuzione.
Nota
CloudFront supporta l’invio di log di accesso ad Account AWS diversi (tra account). Per abilitare la consegna tra account, entrambi gli account (il tuo e quello di ricezione) devono disporre delle autorizzazioni necessarie. Per ulteriori informazioni, consulta la sezione Abilitazione della registrazione di log standard per la consegna tra account o l’esempio di consegna tra account nella Guida per l’utente di Amazon CloudWatch Logs.
Abilitazione della registrazione di log standard
Per abilitare la registrazione di log standard, puoi utilizzare la console CloudFront o l’API CloudWatch.
Indice
Abilitazione della registrazione di log standard (console CloudFront)
Come abilitare la registrazione di log standard per una distribuzione CloudFront (console)
-
Utilizza la console CloudFront per aggiornare una distribuzione esistente.
-
Scegli la scheda Logging (Utilizzo log).
Scegli Aggiungi, quindi seleziona il servizio di ricezione dei log:
-
File di log CloudWatch
-
Firehose
-
Amazon S3
-
-
Per la destinazione, seleziona la risorsa per il servizio in uso. Se non hai ancora creato la risorsa, puoi scegliere Crea o consultare la seguente documentazione.
-
Per CloudWatch Logs, immetti il Nome del gruppo di log.
-
Per Firehose, accedi al Flusso di consegna di Firehose.
-
Per Amazon S3, inserisci il Nome bucket.
Suggerimento
Per specificare un prefisso, inserisci il prefisso dopo il nome del bucket, ad esempio
amzn-s3-demo-bucket.s3.amazonaws.com/. Se non si specifica un prefisso, uno verrà aggiunto automaticamente da CloudFront. Per ulteriori informazioni, consulta Invio di log ad Amazon S3.MyLogPrefix
-
-
Per Impostazioni aggiuntive, facoltativo, puoi specificare le seguenti opzioni:
-
Per Selezione del campo, seleziona i nomi dei campi di log che desideri consegnare alla destinazione. Puoi selezionare i campi dei log di accesso e un sottoinsieme di campi di log in tempo reale.
-
(Solo Amazon S3) Per Partizionamento, specifica il percorso per partizionare i dati del file di log.
-
(Solo Amazon S3) Per Formato file compatibile con Hive, puoi selezionare la casella di controllo per utilizzare percorsi S3 compatibili con Hive. Questo consente di semplificare il caricamento di nuovi dati negli strumenti compatibili con Hive.
-
Per Formato di output, specifica il formato preferito.
Nota
Se scegli Parquet, questa opzione comporta costi CloudWatch per la conversione dei log di accesso in Apache Parquet. Per ulteriori informazioni, consulta la sezione Log forniti per Prezzi di CloudWatch
. -
Per Delimitatore di campo, specifica come separare i campi di log.
-
-
Completa le fasi per aggiornare o creare la distribuzione.
-
Per aggiungere un’altra destinazione, ripeti le fasi da 3 a 6.
-
Nella pagina Log, verifica che lo stato dei log standard sia Abilitato accanto alla distribuzione.
(Facoltativo) Per abilitare la registrazione di cookie, scegli Gestione, Impostazioni e attiva la Registrazione di cookie, quindi scegli Salva modifiche.
Suggerimento
Registrazione di cookie è un’impostazione globale che si applica a tutte registrazioni di log standard per la distribuzione. Non puoi sovrascrivere questa impostazione per destinazioni di consegna separate.
Per ulteriori informazioni sui campi di log e di consegna della registrazione di log standard, consulta Riferimento alla registrazione di log standard.
Abilitazione della registrazione di log standard (API CloudWatch)
Puoi anche utilizzare l’API CloudWatch per abilitare la registrazione di log standard per le distribuzioni.
Note
-
Quando chiami l’API CloudWatch per abilitare la registrazione di log standard, devi specificare la regione Stati Uniti orientali (Virginia settentrionale) (
us-east-1), anche se desideri abilitare la consegna tra regioni verso un’altra destinazione. Ad esempio, se desideri inviare i log di accesso a un bucket S3 nella regione Europa (Irlanda) (eu-west-1), utilizza l’API CloudWatch nella regioneus-east-1. -
È disponibile un’opzione aggiuntiva per includere i cookie nella registrazione di log standard. Nell’API CloudFront, si tratta del parametro
IncludeCookies. Se configuri la registrazione di log degli accessi utilizzando l’API CloudWatch e specifichi di voler includere i cookie, devi utilizzare la console CloudFront o l’API CloudFront per aggiornare la distribuzione in modo da includere i cookie. In caso contrario, CloudFront non può inviare cookie alla destinazione dei log. Per ulteriori informazioni, consulta Registrazione dei cookie.
Come abilitare la registrazione di log standard per una distribuzione (API CloudWatch)
-
Dopo aver creato una distribuzione, puoi ottenere il nome della risorsa Amazon (ARN).
Puoi trovare l’ARN dalla pagina Distribuzione della console CloudFront oppure puoi utilizzare l’operazione API GetDistribution. Un ARN di distribuzione segue il formato:
arn:aws:cloudfront::123456789012:distribution/d111111abcdef8 -
Successivamente, utilizza l’operazione API PutDeliverySource di CloudWatch per creare un’origine di consegna per la distribuzione.
-
Inserisci un nome per l’origine di consegna.
-
Passa il
resourceArndella distribuzione. -
Per
logType, specificaACCESS_LOGScome tipo di log che vengono raccolti. -
Esempio Comando put-delivery-source di AWS CLI di esempio
Di seguito è riportato un esempio di configurazione dell’origine di consegna per una distribuzione.
aws logs put-delivery-source --name S3-delivery --resource-arn arn:aws:cloudfront::123456789012:distribution/d111111abcdef8 --log-type ACCESS_LOGSOutput
{ "deliverySource": { "name": "S3-delivery", "arn": "arn:aws:logs:us-east-1:123456789012:delivery-source:S3-delivery", "resourceArns": [ "arn:aws:cloudfront::123456789012:distribution/d111111abcdef8" ], "service": "cloudfront", "logType": "ACCESS_LOGS" } }
-
-
Utilizza l’operazione API PutDeliveryDestination per configurare il percorso di archiviazione dei log.
-
Per
destinationResourceArn, specifica l’ARN della destinazione. Può essere un gruppo di log di CloudWatch Logs, un flusso di consegna di Firehose o un bucket Amazon S3. -
Per
outputFormat, specifica il formato di output per i log. -
Esempio Comando put-delivery-destination di AWS CLI di esempio
Di seguito è riportato un esempio di configurazione di una destinazione di consegna a un bucket Amazon S3.
aws logs put-delivery-destination --name S3-destination --delivery-destination-configuration destinationResourceArn=arn:aws:s3:::amzn-s3-demo-bucketOutput
{ "name": "S3-destination", "arn": "arn:aws:logs:us-east-1:123456789012:delivery-destination:S3-destination", "deliveryDestinationType": "S3", "deliveryDestinationConfiguration": { "destinationResourceArn": "arn:aws:s3:::amzn-s3-demo-bucket" } }
Nota
Se si effettuano consegne di log tra account, è necessario utilizzare l’operazione API PutDeliveryDestinationPolicy per assegnare una policy AWS Identity and Access Management (IAM) all’account di destinazione. La policy IAM consente la consegna da un account a un altro.
-
-
Utilizza l’operazione API CreateDelivery per collegare l’origine di consegna alla destinazione creata nelle fasi precedenti. Questa operazione API associa l’origine di consegna alla destinazione finale.
-
Per
deliverySourceName, specifica il nome dell’origine. -
Per
deliveryDestinationArn, specifica l’ARN della destinazione di consegna. -
Per
fieldDelimiter, specifica la stringa per separare ogni campo di log. -
Per
recordFields, specifica i campi di log che desideri. -
Se utilizzi S3, specifica se usare
enableHiveCompatiblePathesuffixPath.
Esempio Comando create-delivery di AWS CLI di esempio
Di seguito è riportato un esempio di creazione di una consegna.
aws logs create-delivery --delivery-source-name cf-delivery --delivery-destination-arn arn:aws:logs:us-east-1:123456789012:delivery-destination:S3-destinationOutput
{ "id": "abcNegnBoTR123", "arn": "arn:aws:logs:us-east-1:123456789012:delivery:abcNegnBoTR123", "deliverySourceName": "cf-delivery", "deliveryDestinationArn": "arn:aws:logs:us-east-1:123456789012:delivery-destination:S3-destination", "deliveryDestinationType": "S3", "recordFields": [ "date", "time", "x-edge-location", "sc-bytes", "c-ip", "cs-method", "cs(Host)", "cs-uri-stem", "sc-status", "cs(Referer)", "cs(User-Agent)", "cs-uri-query", "cs(Cookie)", "x-edge-result-type", "x-edge-request-id", "x-host-header", "cs-protocol", "cs-bytes", "time-taken", "x-forwarded-for", "ssl-protocol", "ssl-cipher", "x-edge-response-result-type", "cs-protocol-version", "fle-status", "fle-encrypted-fields", "c-port", "time-to-first-byte", "x-edge-detailed-result-type", "sc-content-type", "sc-content-len", "sc-range-start", "sc-range-end", "c-country", "cache-behavior-path-pattern" ], "fieldDelimiter": "" } -
-
Dalla console CloudFront, nella pagina Log, verifica che lo stato dei log standard sia Abilitato accanto alla distribuzione.
Per ulteriori informazioni sui campi di log e di consegna della registrazione di log standard, consulta Riferimento alla registrazione di log standard.
Nota
Per abilitare la registrazione di log standard (v2) per CloudFront utilizzando AWS CloudFormation, puoi utilizzare le seguenti proprietà di CloudWatch Logs:
ResourceArn è la distribuzione CloudFront e LogType deve essere ACCESS_LOGS come tipo di log supportato.
Abilitazione della registrazione di log standard per la consegna tra account
Se abiliti la registrazione di log standard per l’Account AWS e desideri distribuire i log di accesso in un altro account, assicurati di configurare correttamente l’account di origine e l’account di destinazione. L’account di origine con la distribuzione CloudFront invia i log di accesso all’account di destinazione.
In questa procedura di esempio, l’account di origine (111111111111) invia i log di accesso a un bucket Amazon S3 nell’account di destinazione (222222222222). Per inviare i log di accesso a un bucket Amazon S3 nell’account di destinazione, utilizza la AWS CLI.
Configurazione dell’account di destinazione
Per l’account di destinazione, completa la procedura seguente.
Come configurare l’account di destinazione
-
Per creare la destinazione di consegna dei log, puoi inserire il comando AWS CLI seguente. Questo esempio utilizza la stringa
per creare un prefisso per i log di accesso.MyLogPrefixaws logs put-delivery-destination --namecloudfront-delivery-destination--delivery-destination-configuration "destinationResourceArn=arn:aws:s3:::amzn-s3-demo-bucket-cloudfront-logs/MyLogPrefix"Output
{ "deliveryDestination": { "name": "cloudfront-delivery-destination", "arn": "arn:aws:logs:us-east-1:222222222222:delivery-destination:cloudfront-delivery-destination", "deliveryDestinationType": "S3", "deliveryDestinationConfiguration": {"destinationResourceArn": "arn:aws:s3:::amzn-s3-demo-bucket-cloudfront-logs/"} } }MyLogPrefixNota
Se specifichi un bucket S3 senza un prefisso, CloudFront aggiungerà automaticamente
AWSLogs/come prefisso che viene visualizzato in<account-ID>/CloudFrontsuffixPathnella destinazione di consegna S3. Per ulteriori informazioni, consulta S3DeliveryConfiguration. -
Aggiungi la policy di risorse per la destinazione di consegna di log per consentire all’account di origine di creare una consegna di log.
Nella policy seguente, sostituisci
111111111111con l’ID dell’account di origine e specifica l’ARN della destinazione di consegna dall’output della fase 1. -
Salva il file, ad esempio
deliverypolicy.json. -
Per collegare la policy precedente alla destinazione di consegna, inserisci il comando AWS CLI seguente.
aws logs put-delivery-destination-policy --delivery-destination-namecloudfront-delivery-destination--delivery-destination-policy file://deliverypolicy.json -
Aggiungi la seguente istruzione alla policy di bucket Amazon S3 di destinazione, sostituendo l’ARN della risorsa e l’ID dell’account di origine. Questa policy consente al principale del servizio
delivery---logs.amazonaws.com.rproxy.govskope.cadi eseguire l’aziones3:PutObject.{ "Sid": "AWSLogsDeliveryWrite", "Effect": "Allow", "Principal": {"Service": "delivery.logs.amazonaws.com"}, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket-cloudfront-logs/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": "111111111111" }, "ArnLike": {"aws:SourceArn": "arn:aws:logs:us-east-1:111111111111:delivery-source:*"} } } -
Se utilizzi AWS KMS per il bucket, aggiungi la seguente istruzione alla policy della chiave KMS per concedere le autorizzazioni al principale del servizio
delivery.logs.amazonaws.com.{ "Sid": "Allow Logs Delivery to use the key", "Effect": "Allow", "Principal": {"Service": "delivery.logs.amazonaws.com"}, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": {"aws:SourceAccount": "111111111111"}, "ArnLike": {"aws:SourceArn": "arn:aws:logs:us-east-1:111111111111:delivery-source:*"} } }
Configurazione dell’account di origine
Dopo aver configurato l’account di destinazione, segui questa procedura per creare l’origine di consegna e abilitare la registrazione di log per la distribuzione nell’account di origine.
Come configurare l’account di origine
-
Crea un’origine di consegna per la registrazione di log standard CloudFront in modo da poter inviare i file di log a CloudWatch Logs.
Puoi immettere il comando AWS CLI seguente, sostituendo il nome e l’ARN della distribuzione.
aws logs put-delivery-source --names3-cf-delivery--resource-arn arn:aws:cloudfront::111111111111:distribution/E1TR1RHV123ABC--log-type ACCESS_LOGSOutput
{ "deliverySource": { "name": "s3-cf-delivery", "arn": "arn:aws:logs:us-east-1:111111111111:delivery-source:s3-cf-delivery", "resourceArns": ["arn:aws:cloudfront::111111111111:distribution/E1TR1RHV123ABC"], "service": "cloudfront", "logType": "ACCESS_LOGS" } } -
Crea una consegna per mappare l’origine di consegna dei log dell’account di origine e la destinazione di consegna dei log dell’account di destinazione.
Nel comando AWS CLI seguente, specifica l’ARN della destinazione di consegna dall’output della Fase 1: Configurazione dell’account di destinazione.
aws logs create-delivery --delivery-source-names3-cf-delivery--delivery-destination-arn arn:aws:logs:us-east-1:222222222222:delivery-destination:cloudfront-delivery-destinationOutput
{ "delivery": { "id": "OPmOpLahVzhx1234", "arn": "arn:aws:logs:us-east-1:111111111111:delivery:OPmOpLahVzhx1234", "deliverySourceName": "s3-cf-delivery", "deliveryDestinationArn": "arn:aws:logs:us-east-1:222222222222:delivery-destination:cloudfront-delivery-destination", "deliveryDestinationType": "S3", "recordFields": [ "date", "time", "x-edge-location", "sc-bytes", "c-ip", "cs-method", "cs(Host)", "cs-uri-stem", "sc-status", "cs(Referer)", "cs(User-Agent)", "cs-uri-query", "cs(Cookie)", "x-edge-result-type", "x-edge-request-id", "x-host-header", "cs-protocol", "cs-bytes", "time-taken", "x-forwarded-for", "ssl-protocol", "ssl-cipher", "x-edge-response-result-type", "cs-protocol-version", "fle-status", "fle-encrypted-fields", "c-port", "time-to-first-byte", "x-edge-detailed-result-type", "sc-content-type", "sc-content-len", "sc-range-start", "sc-range-end", "c-country", "cache-behavior-path-pattern" ], "fieldDelimiter": "\t" } } -
Verifica che la consegna tra account sia andata a buon fine.
-
Dall’account di
origine, accedi alla console CloudFront e scegli la distribuzione. Nella scheda Registrazione di log, in Tipo, viene visualizzata una voce creata per la consegna di log tra account S3. -
Dall’account di
destinazione, accedi alla console Amazon S3 e scegli il bucket Amazon S3. Viene visualizzato il prefissonel nome del bucket e gli eventuali log di accesso forniti a tale cartella.MyLogPrefix
-
Formato del file di output
A seconda della destinazione di consegna scelta, puoi specificare uno dei seguenti formati per i file di log:
-
JSON
-
Plain
-
w3c
-
Raw
-
Parquet (solo Amazon S3)
Nota
Puoi impostare il formato di output solo quando crei per la prima volta la destinazione di consegna. Questo non può essere aggiornato in un secondo momento. Per modificare il formato di output, elimina la consegna e creane un’altra.
Per ulteriori informazioni, consulta PutDeliveryDestination nella Documentazione di riferimento delle API di Amazon CloudWatch Logs.
Modifica delle impostazioni di registrazione di log standard
Puoi abilitare o disabilitare la registrazione di log e aggiornare altre impostazioni di log utilizzando la console CloudFront
Per ulteriori informazioni, consulta i seguenti argomenti:
-
Per aggiornare una distribuzione utilizzando la console CloudFront, consulta Aggiornamento di una distribuzione.
-
Per aggiornare una distribuzione utilizzando l’API CloudFront, consulta UpdateDistribution nella Documentazione di riferimento delle API di Amazon CloudFront.
-
Per ulteriori informazioni sulle operazioni API di CloudWatch Logs, consulta Documentazione di riferimento delle API di Amazon CloudWatch Logs.
Campi dei log di accesso
Puoi selezionare gli stessi campi di log supportati dalla registrazione di log standard (legacy). Per ulteriori informazioni, consulta i campi dei file di log.
Inoltre, puoi selezionare i seguenti campi di log in tempo reale.
-
timestamp(ms): timestamp in millisecondi. -
origin-fbl: il numero di secondi di latenza del primo byte tra CloudFront e l’origine. -
origin-lbl: il numero di secondi di latenza dell’ultimo byte tra CloudFront e l’origine. -
asn: l’Autonomous System Number (ASN) del visualizzatore. c-country: un codice paese che rappresenta la posizione geografica del visualizzatore, determinata dal relativo indirizzo IP. Per un elenco dei codici paese, vedere ISO 3166-1 alpha-2. cache-behavior-path-pattern: il modello di percorso che identifica il comportamento della cache corrispondente alla richiesta visualizzatore.
Invio di log a CloudWatch Logs
Per inviare i log a CloudWatch Logs, crea o utilizza un gruppo di log CloudWatch Logs esistente. Per ulteriori informazioni sulla configurazione del gruppo di log CloudWatch Logs, consulta Utilizzo di gruppi di log e flussi di log.
Dopo aver creato un gruppo di log, devi disporre delle autorizzazioni obbligatorie per consentire la registrazione di log standard. Per ulteriori informazioni sulle autorizzazioni obbligatorie, consulta Log inviati a CloudWatch Logs nella Guida per l’utente di Amazon CloudWatch Logs.
Note
-
Quando specifichi il nome del gruppo di log CloudWatch Logs, utilizza solo il modello regex
[\w-]. Per ulteriori informazioni, consulta l’operazione API PutDeliveryDestination nella Documentazione di riferimento delle API di Amazon CloudWatch Logs. -
Verifica che la policy di risorse del gruppo di log non superi il limite di dimensione. Consulta la sezione Considerazioni sui limiti delle dimensioni della policy delle risorse del gruppo di log nell’argomento CloudWatch Logs.
Esempio di log di accesso inviato a CloudWatch Logs
{ "date": "2024-11-14", "time": "21:34:06", "x-edge-location": "SOF50-P2", "asn": "16509", "timestamp(ms)": "1731620046814", "origin-fbl": "0.251", "origin-lbl": "0.251", "x-host-header": "d111111abcdef8.cloudfront.net", "cs(Cookie)": "examplecookie=value" }
Invio di log a Firehose
Per inviare i log a Firehose, crea o utilizza un flusso di consegna di Firehose esistente. Quindi, specifica il flusso di consegna di Firehose come la distribuzione di consegna dei log. È necessario specificare un flusso di consegna di Firehose nella regione us-east-1 Stati Uniti orientali (Virginia settentrionale).
Per informazioni sulla creazione del flusso di consegna, consulta Creazione di un flusso di consegna di Amazon Data Firehose.
Dopo aver creato un flusso di consegna, devi disporre delle autorizzazioni richieste per consentire la registrazione di log standard. Per ulteriori informazioni, consulta Log inviati a Firehose nella Guida per l’utente di Amazon CloudWatch Logs.
Nota
Durante la specifica del nome del flusso Firehose, utilizza solo il pattern regex [\w-]. Per ulteriori informazioni, consulta l’operazione API PutDeliveryDestination nella Documentazione di riferimento delle API di Amazon CloudWatch Logs.
Esempio di log di accesso inviato a Firehose
{"date":"2024-11-15","time":"19:45:51","x-edge-location":"SOF50-P2","asn":"16509","timestamp(ms)":"1731699951183","origin-fbl":"0.254","origin-lbl":"0.254","x-host-header":"d111111abcdef8.cloudfront.net","cs(Cookie)":"examplecookie=value"} {"date":"2024-11-15","time":"19:45:52","x-edge-location":"SOF50-P2","asn":"16509","timestamp(ms)":"1731699952950","origin-fbl":"0.125","origin-lbl":"0.125","x-host-header":"d111111abcdef8.cloudfront.net","cs(Cookie)":"examplecookie=value"}
Invio di log ad Amazon S3
Per inviare log di accesso ad Amazon S3, crea o usa un bucket S3 esistente. Quando abiliti la registrazione di log in CloudFront, specifica il nome del bucket. Per ulteriori informazioni sulla creazione di un bucket, consulta Creazione di un bucket nella Guida per l’utente di Amazon Simple Storage Service.
Dopo aver creato un bucket, devi disporre delle autorizzazioni richieste per consentire la registrazione di log standard. Per ulteriori informazioni, consulta Registri inviati a Amazon S3 nella Guida per l'utente di File di log Amazon CloudWatch.
-
Dopo aver abilitato la registrazione di log, AWS aggiunge automaticamente le policy di bucket richieste.
-
Puoi anche utilizzare i bucket S3 nelle Regioni AWS di adesione.
Nota
Se hai già abilitato la registrazione di log standard (legacy) e desideri abilitare la registrazione di log standard (v2) su Amazon S3, ti consigliamo di specificare un bucket Amazon S3 diverso o di utilizzare un percorso separato nello stesso bucket (ad esempio, utilizzare un prefisso di log o il partizionamento). Questo consente di tenere traccia di quali file di log sono associati a quale distribuzione ed evita la sovrascrittura reciproca dei file di log.
Argomenti
Specifica di un bucket S3
Durante la specifica di un bucket S3 come destinazione di consegna, tieni presente quanto segue.
Il nome del bucket S3 può utilizzare solo il modello regex [\w-]. Per ulteriori informazioni, consulta l’operazione API PutDeliveryDestination nella Documentazione di riferimento delle API di Amazon CloudWatch Logs.
Se hai specificato un prefisso per il bucket S3, i log vengono visualizzati in tale percorso. Se non specifichi un prefisso, CloudFront aggiungerà automaticamente il prefisso AWSLogs/. {account-id}/CloudFront
Per ulteriori informazioni, consulta Percorsi di esempio per accedere ai log.
Partizionamento
Puoi utilizzare il partizionamento per organizzare i log di accesso quando CloudFront li invia al bucket S3. Ciò consente di organizzare e individuare i log di accesso in base al percorso desiderato.
Puoi utilizzare le seguenti variabili per creare un percorso cartella.
-
{DistributionId}oppure{distributionid} -
{yyyy} -
{MM} -
{dd} -
{HH} -
{accountid}
Puoi usare un numero qualsiasi di variabili e specificare i nomi delle cartelle nel percorso. CloudFront usa quindi questo percorso per creare una struttura di cartelle per te nel bucket S3.
Esempi
-
my_distribution_log_data/{DistributionId}/logs -
/cloudfront/{DistributionId}/my_distribution_log_data/{yyyy}/{MM}/{dd}/{HH}/logs
Nota
Puoi utilizzare entrambe le variabili per l’ID di distribuzione nel percorso del suffisso. Tuttavia, se stai inviando i log di accesso a AWS Glue, usa la variabile {distributionid} perché AWS Glue prevede che i nomi delle partizioni siano in minuscolo. Aggiorna la configurazione di log esistente in CloudFront per sostituire {DistributionId} con {distributionid}.
Formato del nome del file compatibile con Hive
Puoi utilizzare questa opzione affinché gli oggetti S3 che contengono i log di accesso consegnati utilizzino una struttura di prefissi che consenta l’integrazione con Apache Hive. Per ulteriori informazioni, consulta l’operazione API CreateDelivery.
Esempio
/cloudfront/DistributionId={DistributionId}/my_distribution_log_data/year={yyyy}/month={MM}/day={dd}/hour={HH}/logs
Per ulteriori informazioni sul partizionamento e sulle opzioni compatibili con Hive, consulta l’elemento S3DeliveryConfiguration nella Documentazione di riferimento delle API di Amazon CloudWatch Logs.
Percorsi di esempio per accedere ai log
Durante la specifica di un bucket S3 come destinazione, puoi utilizzare le opzioni seguenti per creare il percorso ai log di accesso:
-
Un bucket Amazon S3, con o senza prefisso
-
Partizionamento, utilizzando una variabile fornita da CloudFront o inserendo la propria
-
Abilitazione dell’opzione compatibile con Hive
Nelle tabelle seguenti viene mostrato come vengono visualizzati i log di accesso nel bucket, a seconda delle opzioni scelte.
Bucket Amazon S3 con un prefisso
| Nome del bucket Amazon S3 | Partizione specificata nel percorso del suffisso | Percorso del suffisso aggiornato | Compatibilità con Hive abilitata? | I log di accesso vengono inviati a |
|---|---|---|---|---|
amzn-s3-demo-bucket/MyLogPrefix |
Nessuno | Nessuno | No | amzn-s3-demo-bucket/MyLogPrefix/ |
amzn-s3-demo-bucket/MyLogPrefix |
myFolderA/ |
myFolderA/ |
No | amzn-s3-demo-bucket/MyLogPrefix/myFolderA/ |
amzn-s3-demo-bucket/MyLogPrefix |
myFolderA/{yyyy} |
myFolderA/{yyyy} |
Sì | amzn-s3-demo-bucket/MyLogPrefix/myFolderA/year=2025 |
Bucket Amazon S3 senza un prefisso
| Nome del bucket Amazon S3 | Partizione specificata nel percorso del suffisso | Percorso del suffisso aggiornato | Compatibilità con Hive abilitata? | I log di accesso vengono inviati a |
|---|---|---|---|---|
amzn-s3-demo-bucket |
Nessuno | AWSLogs/{account-id}/CloudFront/ |
No | amzn-s3-demo-bucket/AWSLogs/ |
amzn-s3-demo-bucket |
myFolderA/ |
AWSLogs/{account-id}/CloudFront/myFolderA/ |
No | amzn-s3-demo-bucket/AWSLogs/ |
amzn-s3-demo-bucket |
myFolderA/ |
AWSLogs/{account-id}/CloudFront/myFolderA/ |
Sì | amzn-s3-demo-bucket/AWSLogs/aws-account-id= |
amzn-s3-demo-bucket |
myFolderA/{yyyy} |
AWSLogs/{account-id}/CloudFront/myFolderA/{yyyy} |
Sì | amzn-s3-demo-bucket/AWSLogs/aws-account-id= |
ID Account AWS come una partizione
| Nome del bucket Amazon S3 | Partizione specificata nel percorso del suffisso | Percorso del suffisso aggiornato | Compatibilità con Hive abilitata? | I log di accesso vengono inviati a |
|---|---|---|---|---|
amzn-s3-demo-bucket |
Nessuno | AWSLogs/{account-id}/CloudFront/ |
Sì | amzn-s3-demo-bucket/AWSLogs/aws-account-id= |
amzn-s3-demo-bucket |
myFolderA/{accountid} |
AWSLogs/{account-id}/CloudFront/myFolderA/{accountid} |
Sì | amzn-s3-demo-bucket/AWSLogs/aws-account-id= |
Note
-
La variabile
{account-id}è riservata a CloudFront. CloudFront aggiunge automaticamente questa variabile al percorso del suffisso se si specifica un bucket Amazon S3 senza un prefisso. Se i log sono compatibili con Hive, questa variabile viene visualizzata comeaws-account-id. -
Puoi utilizzare la variabile
{accountid}in modo che CloudFront aggiunga l’ID account al percorso del suffisso. Se i log sono compatibili con Hive, questa variabile viene visualizzata comeaccountid. -
Per ulteriori informazioni sul percorso del suffisso, consulta S3DeliveryConfiguration.
Esempio di log di accesso inviato ad Amazon S3
#Fields: date time x-edge-location asn timestamp(ms) x-host-header cs(Cookie) 2024-11-14 22:30:25 SOF50-P2 16509 1731623425421 d111111abcdef8.cloudfront.net examplecookie=value2
Disabilitazione della registrazione di log standard
Puoi disabilitare la registrazione di log standard per la distribuzione se non è più necessaria.
Come disabilitare la registrazione di log standard
-
Accedi alla Console CloudFront.
-
Scegli Distribuzione, quindi scegli l’ID distribuzione.
-
Scegli Registrazione, quindi in Destinazioni log standard, seleziona la destinazione.
-
Scegli Gestisci, quindi seleziona Elimina.
-
Ripeti la fase precedente se disponi di più registrazioni di log standard.
Nota
Quando elimini la registrazione di log standard dalla console CloudFront, questa azione elimina solo la consegna e la destinazione di consegna. Non elimina l’origine di consegna dall’Account AWS. Per eliminare un’origine di consegna, specifica il nome dell’origine di distribuzione nel comando aws logs delete-delivery-source --name DeliverySourceName. Per ulteriori informazioni, consulta DeleteDeliverySource nella Documentazione di riferimento delle API di Amazon CloudWatch Logs.
Risoluzione dei problemi
Utilizza le informazioni seguenti per correggere problemi comuni quando utilizzi la registrazione di log standard CloudFront (v2).
L’origine di consegna esiste già
Quando si abilita la registrazione di log standard per una consegna, viene creata un’origine di consegna. Utilizza quindi tale origine di consegna per creare consegne verso il tipo di destinazione che desideri: CloudWatch Logs, Firehose, Amazon S3. Attualmente è possibile avere una sola origine di consegna per ogni distribuzione. Se tenti di creare un’altra origine di consegna per la stessa distribuzione, viene visualizzato il seguente messaggio di errore.
This ResourceId has already been used in another Delivery Source in this account
Per creare un’altra origine di consegna, elimina prima quella esistente. Per ulteriori informazioni, consulta DeleteDeliverySource nella Documentazione di riferimento delle API di Amazon CloudWatch Logs.
Ho cambiato il percorso del suffisso e il bucket Amazon S3 non può ricevere i miei log
Se hai abilitato la registrazione di log standard (v2) e specifichi un bucket ARN senza un prefisso, CloudFront aggiungerà il seguente valore predefinito al percorso del suffisso: AWSLogs/{account-id}/CloudFront. Se utilizzi la console CloudFront o l’operazione API UpdateDeliveryConfiguration per specificare un percorso del suffisso diverso, devi aggiornare la policy di bucket Amazon S3 per utilizzare lo stesso percorso.
Esempio: aggiornamento del percorso del suffisso
-
Il percorso del suffisso predefinito è
AWSLogs/{account-id}/CloudFronte lo sostituisci conmyFolderA. -
Poiché il nuovo percorso del suffisso è diverso dal percorso specificato nella policy di bucket di Amazon S3, i log di accesso non verranno consegnati.
-
Puoi effettuare uno dei seguenti passaggi:
-
Aggiorna l’autorizzazione del bucket Amazon S3 da
amzn-s3-demo-bucket/AWSLogs/a<your-account-ID>/CloudFront/*amzn-s3-demo-bucket/myFolderA/*. -
Aggiorna la configurazione di registrazione di log per usare nuovamente il suffisso predefinito:
AWSLogs/{account-id}/CloudFront
-
Per ulteriori informazioni, consulta Autorizzazioni.
Eliminazione di file di log
CloudFront non elimina automaticamente i file di log dalla destinazione. Per informazioni sull’eliminazione di file di log, consulta i seguenti argomenti:
Amazon S3
-
Eliminazione di oggetti nella Guida per l’utente di Amazon Simple Storage Service Console.
File di log CloudWatch
-
Utilizzo di gruppi di log e flussi di log nella Guida per l’utente di Amazon CloudWatch Logs
-
DeleteLogGroup nella Documentazione di riferimento delle API di Amazon CloudWatch Logs
Firehose
-
DeleteDeliveryStream nella Documentazione di riferimento delle API di Amazon Data Firehose
Prezzi
CloudFront non addebita alcun costo per l’abilitazione dei log standard. Tuttavia, potrebbero essere addebitati costi per la consegna, l’acquisizione, l’archiviazione o l’accesso, a seconda della destinazione di consegna dei log selezionata. Per ulteriori informazioni, consulta la pagina Prezzi di Amazon CloudWatch Logs
Per ulteriori informazioni sui prezzi per ciascun Servizio AWS, consulta i seguenti argomenti:
-
Nota
Non sono previsti costi aggiuntivi per la consegna dei log ad Amazon S3, ma sono previsti costi Amazon S3 per l’archiviazione e l’accesso ai file di log. Se abiliti l’opzione Parquet per convertire i log di accesso in Apache Parquet, questa opzione comporta costi CloudWatch. Per ulteriori informazioni, consulta la sezione Log forniti per Prezzi di CloudWatch
.