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

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configurazione della registrazione di log standard (v2)

Puoi abilitare i log di accesso (log standard) quando crei o aggiorni una distribuzione. La registrazione di log standard (v2) include le seguenti funzionalità:

  • Invia i 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 di accesso in tempo reale.

  • Selezione dei formati file di log di output aggiuntivi.

Se utilizzi Amazon S3, hai a disposizione le seguenti funzionalità opzionali:

  • Invia i log a opt-in. Regioni AWS

  • 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 la persona specificata Servizio AWS che riceverà i tuoi registri.

  2. Configura la registrazione standard dalla CloudFront console 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.

Permissions

CloudFront utilizza i CloudWatch log forniti per fornire i log di accesso. A tale scopo, sono necessarie le autorizzazioni necessarie per consentire Servizio AWS la consegna dei log.

Per visualizzare le autorizzazioni richieste per ogni destinazione di registrazione, scegli uno dei seguenti argomenti nella Amazon CloudWatch Logs User Guide.

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 a diversi account Account AWS (più 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 Abilitazione della registrazione di log standard per la consegna tra account sezione o l'esempio di consegna tra account nella Amazon CloudWatch Logs User Guide.

Abilitazione della registrazione di log standard

Per abilitare la registrazione standard, puoi utilizzare la CloudFront console o l'API. CloudWatch

Abilita la registrazione standard (console) CloudFront

Per abilitare la registrazione standard per una CloudFront distribuzione (console)
  1. Usa la CloudFront console per aggiornare una distribuzione esistente.

  2. Scegli la scheda Logging (Utilizzo log).

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

    • CloudWatch Registri

    • Firehose

    • Simple Storage Service (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 Log, inserisci 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 specifichi un prefisso, CloudFront ne aggiungerà automaticamente uno. 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. È possibile selezionare i campi del registro degli accessi e un sottoinsieme di campi del registro degli accessi 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 dei CloudWatch costi per la conversione dei log di accesso in Apache Parquet. Per ulteriori informazioni, consulta la sezione Vided Logs per i prezzi. 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.

Abilita la registrazione standard (API) CloudWatch

Puoi anche utilizzare l' CloudWatch API per abilitare la registrazione standard per le tue distribuzioni.

Note
  • Quando chiami l' CloudWatch API per abilitare la registrazione 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' CloudWatch API nella regione. us-east-1

  • È disponibile un’opzione aggiuntiva per includere i cookie nella registrazione di log standard. Nell' CloudFront API, questo è il parametro. IncludeCookies Se configuri la registrazione degli accessi utilizzando l' CloudWatch API e specifichi che desideri includere i cookie, devi utilizzare la CloudFront console o l' CloudFront API per aggiornare la distribuzione in modo da includere i cookie. In caso contrario, non è CloudFront possibile inviare i cookie alla destinazione del registro. Per ulteriori informazioni, consulta Registrazione dei cookie.

Per abilitare la registrazione standard per una distribuzione (CloudWatch API)
  1. Dopo aver creato una distribuzione, puoi ottenere il nome della risorsa Amazon (ARN).

    Puoi trovare l'ARN dalla pagina Distribuzione della CloudFront console oppure puoi utilizzare l'operazione GetDistributionAPI. Un ARN di distribuzione segue il formato: arn:aws:cloudfront::123456789012:distribution/d111111abcdef8

  2. Successivamente, utilizza l'operazione CloudWatch PutDeliverySourceAPI per creare una fonte 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 AWS CLI put-delivery-source Comando 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 PutDeliveryDestinationAPI per configurare dove archiviare i log.

    1. Per destinationResourceArn, specifica l’ARN della destinazione. Può trattarsi di un gruppo di log CloudWatch Logs, di un flusso di distribuzione Firehose o di un bucket Amazon S3.

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

    3. Esempio Comando di esempio AWS CLI put-delivery-destination

      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 stai distribuendo log su più account, devi utilizzare l'operazione PutDeliveryDestinationPolicyAPI 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 CreateDeliveryAPI per collegare l'origine di consegna alla destinazione creata nei passaggi 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 di AWS CLI comando create-delivery

    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 CloudFront console, nella pagina Registri, verifica che lo stato standard dei log 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 standard (v2) per l' CloudFront utilizzo AWS CloudFormation, puoi utilizzare le seguenti proprietà Logs: CloudWatch

ResourceArnè la CloudFront distribuzione e LogType deve essere il tipo di ACCESS_LOGS registro supportato.

Abilitazione della registrazione di log standard per la consegna tra account

Se abiliti la registrazione standard per il tuo account Account AWS e desideri inviare i log di accesso a un altro account, assicurati di configurare correttamente l'account di origine e l'account di destinazione. L'account di origine con la CloudFront distribuzione invia i propri log di accesso all'account di destinazione.

In questa procedura di esempio, l'account di origine invia i propri log di accesso a un bucket Amazon S3 nell'account di destinazione (111111111111). 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 prefisso, lo CloudFront aggiungerà automaticamente AWSLogs/<account-ID>/CloudFront come prefisso che appare nella destinazione di consegna S3. suffixPath Per ulteriori informazioni, consulta S3. DeliveryConfiguration

  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 seguente politica, sostituisci 111111111111 con l'ID dell'account di origine e specifica l'ARN della destinazione di consegna dall'output del passaggio 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 allegare la politica precedente alla destinazione di consegna, inserisci il seguente AWS CLI comando.

    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 lo utilizzi AWS KMS per il tuo bucket, aggiungi la seguente dichiarazione alla politica chiave KMS per concedere le autorizzazioni al responsabile del delivery.logs.amazonaws.com servizio.

    { "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 una fonte di consegna per la registrazione CloudFront standard in modo da poter inviare i file di registro a Logs. CloudWatch

    È possibile immettere il seguente AWS CLI comando, 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 AWS CLI comando seguente, specificare l'ARN della destinazione di consegna dall'output del Passaggio 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'sourceaccount, accedi alla CloudFront console e scegli la tua distribuzione. Nella scheda Registrazione di log, in Tipo, viene visualizzata una voce creata per la consegna di log tra account S3.

    2. Dall'destinationaccount, accedi alla console Amazon S3 e scegli il tuo 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 seguito. Per modificare il formato di output, elimina la consegna e creane un’altra.

Per ulteriori informazioni, PutDeliveryDestinationconsulta Amazon CloudWatch Logs API Reference.

Modifica delle impostazioni di registrazione di log standard

Puoi abilitare o disabilitare la registrazione e aggiornare altre impostazioni di registro utilizzando la CloudFront console o l' CloudWatch API. 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 di accesso in tempo reale.

  1. timestamp(ms): timestamp in millisecondi.

  2. origin-fbl— Il numero di secondi di latenza del primo byte tra l'origine CloudFront e l'origine.

  3. origin-lbl— Il numero di secondi di latenza dell'ultimo byte tra e l'origine. CloudFront

  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.

Inviare i log ai Logs CloudWatch

Per inviare log a CloudWatch Logs, create o utilizzate un gruppo di log Logs esistente CloudWatch . Per ulteriori informazioni sulla configurazione di un gruppo di log CloudWatch Logs, vedere Working with Log Groups and Log Streams.

Dopo aver creato un gruppo di log, devi disporre delle autorizzazioni obbligatorie per consentire la registrazione di log standard. Per ulteriori informazioni sulle autorizzazioni richieste, consulta Logs sent to Logs nella Amazon CloudWatch CloudWatch Logs User Guide.

Note

Esempio di log di accesso inviato a Logs CloudWatch

{ "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 Logs sent to Firehose nella CloudWatch Amazon Logs User Guide.

Nota

Durante la specifica del nome del flusso Firehose, utilizza solo il pattern regex [\w-]. Per ulteriori informazioni, consulta il funzionamento dell'PutDeliveryDestinationAPI nell'Amazon CloudWatch Logs API Reference.

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 l'accesso 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 Logs sent to Amazon S3 nella CloudWatch Amazon Logs User Guide.

  • Dopo aver abilitato la registrazione, aggiunge AWS automaticamente le policy relative ai bucket necessarie.

  • 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 il funzionamento dell'PutDeliveryDestinationAPI nell'Amazon CloudWatch Logs API Reference.

Se hai specificato un prefisso per il bucket S3, i log vengono visualizzati in tale percorso. Se non specifichi un prefisso, lo CloudFront aggiungerà automaticamente. AWSLogs/{account-id}/CloudFront

Per ulteriori informazioni, consulta Percorsi di esempio per accedere ai log.

Partizionamento

Puoi usare il partizionamento per organizzare i log di accesso quando li CloudFront invii al tuo 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} o {distributionid}

  • {yyyy}

  • {MM}

  • {dd}

  • {HH}

  • {accountid}

Puoi utilizzare un numero qualsiasi di variabili e specificare i nomi delle cartelle nel tuo percorso. CloudFrontquindi utilizza 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, devi usare la {distributionid} variabile perché AWS Glue prevede che i nomi delle partizioni siano in minuscolo. Aggiorna la configurazione di registro esistente per sostituirla con. CloudFront {DistributionId} {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 S3 DeliveryConfiguration nell'Amazon Logs API Reference. CloudWatch

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 o inserendo una variabile personalizzata CloudFront

  • 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

Account AWS ID come 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 {account-id} variabile è riservata CloudFront a. CloudFrontaggiunge automaticamente questa variabile al percorso del suffisso se specifichi un bucket Amazon S3 senza prefisso. Se i log sono compatibili con Hive, questa variabile viene visualizzata come aws-account-id.

  • Puoi usare la {accountid} variabile in modo da CloudFront aggiungere l'ID del tuo 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 S3. DeliveryConfiguration

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. Accedere alla console CloudFront .

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

  3. Scegli Registrazione, quindi in Accedi alle destinazioni del registro, 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 standard dalla CloudFront console, questa azione elimina solo la consegna e la destinazione di consegna. Non elimina la fonte di consegna dal tuo. 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, DeleteDeliverySourceconsulta Amazon CloudWatch Logs API Reference.

Risoluzione dei problemi

Utilizza le seguenti informazioni per risolvere i problemi più comuni quando lavori con la registrazione CloudFront standard (v2).

L’origine di consegna esiste già

Quando si abilita la registrazione di log standard per una consegna, viene creata un’origine di consegna. Puoi quindi utilizzare tale fonte di consegna per creare consegne al 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, DeleteDeliverySourceconsulta Amazon CloudWatch Logs API Reference.

Ho cambiato il percorso del suffisso e il bucket Amazon S3 non può ricevere i miei log

Se hai abilitato la registrazione standard (v2) e specifichi un bucket ARN senza prefisso CloudFront , aggiungerà il seguente valore predefinito al percorso del suffisso:. AWSLogs/{account-id}/CloudFront Se utilizzi la CloudFront console o l'operazione UpdateDeliveryConfigurationAPI per specificare un percorso di suffisso diverso, devi aggiornare la policy del 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 Permissions.

Eliminazione di file di log

CloudFront non elimina automaticamente i file di registro dalla tua destinazione. Per informazioni sull’eliminazione di file di log, consulta i seguenti argomenti:

Simple Storage Service (Amazon S3)
CloudWatch Registri
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 dei 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 di ciascuno di essi Servizio AWS, consulta i seguenti argomenti:

  • Prezzi di Amazon CloudWatch Logs

  • Prezzi di Amazon Data Firehose

  • Prezzi di Amazon S3

    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 dei costi. CloudWatch Per ulteriori informazioni, consulta la sezione Vided Logs per i prezzi. CloudWatch