Configurazione della registrazione di log standard (v2) - Amazon CloudFront

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

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:

  1. Imposta le autorizzazioni richieste per il Servizio AWS di destinazione dei log specificato.

  2. Configura la registrazione di log standard dalla console CloudFront o dall’API CloudWatch.

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

Abilitazione della registrazione di log standard (console CloudFront)

Come abilitare la registrazione di log standard per una distribuzione CloudFront (console)
  1. Utilizza la console CloudFront per aggiornare una distribuzione esistente.

  2. Scegli la scheda Logging (Utilizzo log).

  3. Scegli Aggiungi, quindi seleziona il servizio di ricezione dei log:

    • File di log CloudWatch

    • Firehose

    • Amazon S3

  4. 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/MyLogPrefix. Se non si specifica un prefisso, uno verrà aggiunto automaticamente da CloudFront. Per ulteriori informazioni, consulta Invio di log ad Amazon S3.

  5. Per Impostazioni aggiuntive, facoltativo, puoi specificare le seguenti opzioni:

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

    2. (Solo Amazon S3) Per Partizionamento, specifica il percorso per partizionare i dati del file di log.

    3. (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.

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

    5. Per Delimitatore di campo, specifica come separare i campi di log.

  6. Completa le fasi per aggiornare o creare la distribuzione.

  7. Per aggiungere un’altra destinazione, ripeti le fasi da 3 a 6.

  8. Nella pagina Log, verifica che lo stato dei log standard sia Abilitato accanto alla distribuzione.

  9. (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 regione us-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)
  1. 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

  2. Successivamente, utilizza l’operazione API PutDeliverySource di CloudWatch per creare un’origine di consegna per la distribuzione.

    1. Inserisci un nome per l’origine di consegna.

    2. Passa il resourceArn della distribuzione.

    3. Per logType, specifica ACCESS_LOGS come tipo di log che vengono raccolti.

    4. 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_LOGS

      Output

      { "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" } }
  3. Utilizza l’operazione API PutDeliveryDestination per configurare il percorso di archiviazione dei log.

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

    2. Per outputFormat, specifica il formato di output per i log.

    3. 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-bucket

      Output

      { "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.

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

    1. Per deliverySourceName, specifica il nome dell’origine.

    2. Per deliveryDestinationArn, specifica l’ARN della destinazione di consegna.

    3. Per fieldDelimiter, specifica la stringa per separare ogni campo di log.

    4. Per recordFields, specifica i campi di log che desideri.

    5. Se utilizzi S3, specifica se usare enableHiveCompatiblePath e suffixPath.

    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-destination

    Output

    { "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": "" }
  5. 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
  1. Per creare la destinazione di consegna dei log, puoi inserire il comando AWS CLI seguente. Questo esempio utilizza la stringa MyLogPrefix per creare un prefisso per i log di accesso.

    aws logs put-delivery-destination --name cloudfront-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/MyLogPrefix"} } }
    Nota

    Se specifichi un bucket S3 senza un prefisso, CloudFront aggiungerà automaticamente AWSLogs/<account-ID>/CloudFront come prefisso che viene visualizzato in suffixPath nella destinazione di consegna S3. Per ulteriori informazioni, consulta S3DeliveryConfiguration.

  2. 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 111111111111 con l’ID dell’account di origine e specifica l’ARN della destinazione di consegna dall’output della fase 1.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "AllowCreateDelivery", "Effect": "Allow", "Principal": {"AWS": "111111111111"}, "Action": ["logs:CreateDelivery"], "Resource": "arn:aws:logs:us-east-1:222222222222:delivery-destination:cloudfront-delivery-destination" } ] }
  3. Salva il file, ad esempio deliverypolicy.json.

  4. Per collegare la policy precedente alla destinazione di consegna, inserisci il comando AWS CLI seguente.

    aws logs put-delivery-destination-policy --delivery-destination-name cloudfront-delivery-destination --delivery-destination-policy file://deliverypolicy.json
  5. 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 di eseguire l’azione s3: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:*"} } }
  6. 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
  1. 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 --name s3-cf-delivery --resource-arn arn:aws:cloudfront::111111111111:distribution/E1TR1RHV123ABC --log-type ACCESS_LOGS

    Output

    { "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" } }
  2. 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-name s3-cf-delivery --delivery-destination-arn arn:aws:logs:us-east-1:222222222222:delivery-destination:cloudfront-delivery-destination

    Output

    { "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" } }
  3. Verifica che la consegna tra account sia andata a buon fine.

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

    2. Dall’account di destinazione, accedi alla console Amazon S3 e scegli il bucket Amazon S3. Viene visualizzato il prefisso MyLogPrefix nel nome del bucket e gli eventuali log di accesso forniti a tale cartella.

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 o l’API CloudWatch. Le modifiche apportate alle impostazioni di registrazione diventano effettive entro 12 ore.

Per ulteriori informazioni, consulta i seguenti argomenti:

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.

  1. timestamp(ms): timestamp in millisecondi.

  2. origin-fbl: il numero di secondi di latenza del primo byte tra CloudFront e l’origine.

  3. origin-lbl: il numero di secondi di latenza dell’ultimo byte tra CloudFront e l’origine.

  4. asn: l’Autonomous System Number (ASN) del visualizzatore.

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

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

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.

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} 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/<your-account-ID>/CloudFront/
amzn-s3-demo-bucket myFolderA/ AWSLogs/{account-id}/CloudFront/myFolderA/ No amzn-s3-demo-bucket/AWSLogs/<your-account-ID>/CloudFront/myFolderA/
amzn-s3-demo-bucket myFolderA/ AWSLogs/{account-id}/CloudFront/myFolderA/ amzn-s3-demo-bucket/AWSLogs/aws-account-id=<your-account-ID>/CloudFront/myFolderA/
amzn-s3-demo-bucket myFolderA/{yyyy} AWSLogs/{account-id}/CloudFront/myFolderA/{yyyy} amzn-s3-demo-bucket/AWSLogs/aws-account-id=<your-account-ID>/CloudFront/myFolderA/year=2025

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/ amzn-s3-demo-bucket/AWSLogs/aws-account-id=<your-account-ID>/CloudFront/
amzn-s3-demo-bucket myFolderA/{accountid} AWSLogs/{account-id}/CloudFront/myFolderA/{accountid} amzn-s3-demo-bucket/AWSLogs/aws-account-id=<your-account-ID>/CloudFront/myFolderA/accountid=<your-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 come aws-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 come accountid.

  • 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
  1. Accedi alla Console CloudFront.

  2. Scegli Distribuzione, quindi scegli l’ID distribuzione.

  3. Scegli Registrazione, quindi in Destinazioni log standard, seleziona la destinazione.

  4. Scegli Gestisci, quindi seleziona Elimina.

  5. 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
  1. Il percorso del suffisso predefinito è AWSLogs/{account-id}/CloudFront e lo sostituisci con myFolderA.

  2. Poiché il nuovo percorso del suffisso è diverso dal percorso specificato nella policy di bucket di Amazon S3, i log di accesso non verranno consegnati.

  3. Puoi effettuare uno dei seguenti passaggi:

    • Aggiorna l’autorizzazione del bucket Amazon S3 da amzn-s3-demo-bucket/AWSLogs/<your-account-ID>/CloudFront/* aamzn-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
File di log CloudWatch
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. In Livello a pagamento, scegli la scheda Log, quindi in Log forniti, visualizza le informazioni relative a ciascuna destinazione di consegna.

Per ulteriori informazioni sui prezzi per ciascun Servizio AWS, consulta i seguenti argomenti: