Log di accesso di Network Load Balancer - Elastic Load Balancing

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

Log di accesso di Network Load Balancer

Elastic Load Balancing fornisce log di accesso che acquisiscono informazioni dettagliate sulle richieste TLS inviate al tuo Network Load Balancer. Puoi utilizzare questi log per analizzare i modelli di traffico e risolvere i problemi che potresti incontrare.

Importante

I log di accesso sono creati solo se il sistema di bilanciamento del carico ha un listener TLS e contengono informazioni solo sulle richieste TLS.

La registrazione degli accessi è una funzionalità facoltativa di Elastic Load Balancing che viene disabilitata per impostazione predefinita. Dopo aver abilitato la registrazione degli accessi per il load balancer, Elastic Load Balancing acquisisce i log come file compressi e li archivia nel bucket Amazon S3 specificato. Puoi disabilitare la registrazione degli accessi in qualsiasi momento.

È possibile abilitare la crittografia lato server con chiavi di crittografia gestite da Amazon S3 (SSE-S3). Ogni file di log di accesso viene crittografato automaticamente prima di essere archiviato nel bucket S3 e decrittografato quando vi accedi. Non hai bisogno di intervenire in alcun modo in quanto non vi sono differenze nella modalità in cui accedi ai file di log crittografati e non crittografati. Ogni file di log è crittografato con una chiave univoca che è a sua volta crittografata con una chiave master che viene ruotata regolarmente. Per ulteriori informazioni, consulta Specificazione della crittografia Amazon S3 (SSE-S3) e Specificazione della crittografia lato server conAWS KMS (SSE-KMS) nella Guida per l'utente di Amazon S3.

Non sono previsti costi aggiuntivi per i log di accesso. Verranno addebitati i costi di storage per Amazon S3, ma non per la larghezza di banda utilizzata da Elastic Load Balancing per inviare i file di log ad Amazon S3. Per ulteriori informazioni sui costi di storage, consultare Prezzi di Amazon S3.

File di log di accesso

Elastic Load Balancing pubblica un file di log per ogni nodo del load balancer ogni 5 minuti. La consegna dei log è caratterizzata da consistenza finale. Il load balancer è in grado di consegnare più log per lo stesso periodo. In genere questo accade se il sito è a traffico elevato.

I nomi dei file di log di accesso utilizzano il formato seguente:

bucket[/prefix]/AWSLogs/aws-account-id/elasticloadbalancing/region/yyyy/mm/dd/aws-account-id_elasticloadbalancing_region_net.load-balancer-id_end-time_random-string.log.gz
bucket

Nome del bucket S3.

prefisso

Il prefisso (gerarchia logica) nel bucket. Se non specifichi un prefisso, i log vengono collocati a livello di root del bucket.

aws-account-id

L'ID dell'account AWS del proprietario.

Regione

La regione del sistema di bilanciamento del carico e del bucket S3.

yyyy/mm/dd

La data in cui il log è stato consegnato.

load-balancer-id

L'ID risorsa del sistema di bilanciamento del carico. Se l'ID risorsa contiene barre (/), queste sono sostituite da punti (.).

end-time

La data e l'ora di fine dell'intervallo dei log. Ad esempio, l'ora di fine 20181220T2340Z contiene le voci delle richieste effettuate tra le 23:35 e le 23:40.

random-string

Una stringa casuale generata dal sistema.

Di seguito è riportato un esempio di nome di file di log:

s3://my-bucket/prefix/AWSLogs/123456789012/elasticloadbalancing/us-east-2/2020/05/01/123456789012_elasticloadbalancing_us-east-2_net.my-loadbalancer.1234567890abcdef_20200501T0000Z_20sg8hgm.log.gz

È possibile archiviare i file di log nel bucket per un periodo di tempo indeterminato, ma è anche possibile definire regole per il ciclo di vita di Amazon S3 per archiviare o eliminare automaticamente i file di log. Per ulteriori informazioni, consulta Gestione del ciclo di vita dello storage nella Guida per l'utente di Amazon S3.

Voci dei log di accesso

La seguente tabella descrive, in ordine, i campi di una voce di un log di accesso. Tutti i campi sono delimitati da spazi. Quando ne vengono introdotti di nuovi, i campi vengono aggiunti alla fine della voce del log. Quando si elaborano i file di log, consigliamo di ignorare eventuali campi inattesi alla fine della voce di log.

Campo Descrizione

type

Il tipo di listener. Il valore supportato è tls.

versione

La versione della voce di log. La versione corrente è 2.0.

time

L'ora registrata alla fine della connessione TLS, nel formato ISO 8601.

elb

L'ID risorsa del sistema di bilanciamento del carico.

listener

L'ID risorsa del listener TLS per la connessione.

client:port

L'indirizzo IP e la porta del client.

destination:port

L'indirizzo IP e la porta di destinazione. Se il client si connette direttamente al sistema di bilanciamento del carico, la destinazione è il listener. Se il client si connette utilizzando un servizio endpoint VPC, la destinazione è l'endpoint VPC.

connection_time

Il tempo totale per il completamento della connessione, dall'inizio alla chiusura, in millisecondi.

tls_handshake_time

Il tempo totale per il completamento dell'handshake TLS dopo che la connessione TCP è stata stabilita, inclusi i ritardi lato client, in millisecondi. Questo tempo è incluso nel campo connection_time.

received_bytes

Il numero di byte ricevuti dal sistema di bilanciamento del carico dal client, dopo la decrittografia.

sent_bytes

Il numero di byte inviati dal sistema di bilanciamento del carico al client, prima della decrittografia.

incoming_tls_alert

Il valore intero degli avvisi TLS ricevuti dal sistema di bilanciamento del carico dal client, se presenti. In caso contrario, questo valore è impostato su -.

chosen_cert_arn

L'ARN del certificato servito al client. Se non viene inviato un messaggio di saluto client valido, questo valore è impostato su -.

chosen_cert_serial

Riservato per uso futuro. Questo valore è sempre impostato su -.

tls_cipher

La suite di crittografia negoziata con il client, nel formato OpenSSL. Se la negoziazione TLS non viene completata, questo valore è impostato su -.

tls_protocol_version

Il protocollo TLS negoziato con il client, in formato stringa. I valori possibili sono tlsv10, tlsv11 e tlsv12. Se la negoziazione TLS non viene completata, questo valore è impostato su -.

tls_named_group

Riservato per uso futuro. Questo valore è sempre impostato su -.

domain_name

Il valore dell'estensione nome_server nel messaggio di saluto client. Questo valore è codificato in formato URL. Se non viene inviato un messaggio di saluto client valido o l'estensione non è presente, questo valore è impostato su -.

alpn_fe_protocol

Il protocollo dell’applicazione negoziato con il client, in formato stringa. I valori possibili sono h2, http/1.1 e http/1.0. Se nel listener TLS non è configurata alcuna policy ALPN, non viene trovato alcun protocollo corrispondente o non viene inviato alcun elenco di protocolli valido, questo valore è impostato su -.

alpn_be_protocol

Il protocollo dell’applicazione negoziato con il client, in formato stringa. I valori possibili sono h2, http/1.1 e http/1.0. Se nel listener TLS non è configurata alcuna policy ALPN, non viene trovato alcun protocollo corrispondente o non viene inviato alcun elenco di protocolli valido, questo valore è impostato su -.

alpn_client_preference_list

Il valore dell'estensione application_layer_protocol_negotiation nel messaggio di benvenuto del client. Questo valore è codificato in formato URL. Ogni protocollo è racchiuso tra virgolette e i protocolli sono separati da una virgola. Se nel listener TLS non è configurata alcuna policy ALPN, non viene inviato alcun messaggio di benvenuto del client valido o l'estensione non è presente, questo valore è impostato su -. La stringa viene troncata se è più lunga di 256 byte.

Voci di log di esempio

Di seguito sono riportati esempi di voci di log; Il testo appare su più linee solo per semplificarne la lettura.

Di seguito è riportato un esempio per un listener TLS senza una policy ALPN.

tls 2.0 2018-12-20T02:59:40 net/my-network-loadbalancer/c6e77e28c25b2234 g3d4b5e8bb8464cd 72.21.218.154:51341 172.100.100.185:443 5 2 98 246 - arn:aws:acm:us-east-2:671290407336:certificate/2a108f19-aded-46b0-8493-c63eb1ef4a99 - ECDHE-RSA-AES128-SHA tlsv12 - my-network-loadbalancer-c6e77e28c25b2234.elb.us-east-2.amazonaws.com - - -

Di seguito è riportato un esempio per un listener TLS con una policy ALPN.

tls 2.0 2020-04-01T08:51:42 net/my-network-loadbalancer/c6e77e28c25b2234 g3d4b5e8bb8464cd 72.21.218.154:51341 172.100.100.185:443 5 2 98 246 - arn:aws:acm:us-east-2:671290407336:certificate/2a108f19-aded-46b0-8493-c63eb1ef4a99 - ECDHE-RSA-AES128-SHA tlsv12 - my-network-loadbalancer-c6e77e28c25b2234.elb.us-east-2.amazonaws.com h2 h2 "h2","http/1.1"

Requisiti del bucket

Quando abiliti la registrazione degli accessi, devi specificare un bucket S3 per i log di accesso. Il bucket può essere di proprietà di un account differente rispetto all'account proprietario del load balancer. Il bucket deve soddisfare i seguenti requisiti.

Requisiti
  • Il bucket deve trovarsi nella stessa regione del sistema di bilanciamento del carico.

  • Il prefisso specificato non deve includereAWS Log. Aggiungiamo la parte del nome del file che inizia conAWS Log dopo il nome del bucket e il prefisso specificato.

  • Il bucket deve disporre di una relativa policy che conceda l'autorizzazione a scrivere i log di accesso nel bucket. Le policy dei bucket sono una raccolta di istruzioni JSON scritte nella sintassi della policy di accesso per definire le autorizzazioni di accesso per il tuo bucket. Di seguito è riportata una policy di esempio.

    { "Version": "2012-10-17", "Id": "AWSLogDeliveryWrite", "Statement": [ { "Sid": "AWSLogDeliveryAclCheck", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::my-bucket", "Condition": { "StringEquals": { "aws:SourceAccount": ["0123456789"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:0123456789:*"] } } }, { "Sid": "AWSLogDeliveryWrite", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::my-bucket/AWSLogs/account-ID/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": ["0123456789"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:0123456789:*"] } } } ] }

Nella policy precedente, peraws:SourceAccount, specifica l'elenco dei numeri di conto per i quali i registri vengono consegnati a questo bucket. Per aws:SourceArn, specifica l'elenco di ARN della risorsa che genera i registri, nel formato arn:aws:logs:source-region:source-account-id:*.

Encryption (Crittografia)

Puoi abilitare la crittografia lato server per il tuo bucket di log degli accessi Amazon S3 in uno dei seguenti modi:

  • Chiavi gestite Amazon S3 (SSE-S3)

  • AWS KMSchiavi archiviate inAWS Key Management Service (SSE-KMS) †

† Con i registri di accesso di Network Load Balancer, non è possibile utilizzare chiaviAWS gestite, è necessario utilizzare chiavi gestite dal cliente.

Per ulteriori informazioni, consulta Specificazione della crittografia Amazon S3 (SSE-S3) e Specificazione della crittografia lato server conAWS KMS (SSE-KMS) nella Guida per l'utente di Amazon S3.

La politica chiave deve consentire al servizio di crittografare e decrittografare i log. Di seguito è riportata una policy di esempio.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" } ] }

Abilitazione della registrazione degli accessi

Quando abiliti la registrazione degli accessi per il tuo sistema di bilanciamento del carico, devi specificare il nome del bucket S3 in cui il sistema archivierà i log. Per ulteriori informazioni, consulta Requisiti del bucket.

Per abilitare la registrazione degli accessi tramite la console
  1. Aprire la console Amazon EC2 all'indirizzo https://console.aws.amazon.com/ec2/.

  2. Selezionare Load Balancers (Sistemi di bilanciamento del carico) nel riquadro di navigazione.

  3. Seleziona il load balancer.

  4. Nella scheda Description (Descrizione) scegli Edit attributes (Modifica attributi).

  5. Nella pagina Edit load balancer attributes (Modifica gli attributi del sistema di bilanciamento del carico), procedere come segue:

    1. Per Access logs (Log di accesso), scegliere Enable (Abilita).

    2. Per S3 location (Posizione S3), digitare il nome del bucket S3, inclusi eventuali prefissi (ad esempio, my-loadbalancer-logs/my-app). È possibile specificare il nome di un bucket esistente o un nome per un nuovo bucket. Se si specifica un bucket esistente, accertarsi di esserne il proprietario e di avere configurato la policy dei bucket richiesta.

    3. (Facoltativo) Se il bucket non esiste, scegliere Create this location for me (Crea questa posizione per me). È necessario specificare un nome univoco rispetto a tutti i nomi di bucket esistenti in Amazon S3 e seguire le convenzioni di denominazione DNS. Per ulteriori informazioni, consulta Restrizioni e limitazioni dei bucket nella Guida per l'utente di Amazon S3.

    4. Seleziona Salva.

Per abilitare la registrazione degli accessi tramite AWS CLI

Utilizza il comando modify-load-balancer-attributes.

Disabilitazione della registrazione degli accessi

Puoi disabilitare la registrazione degli accessi per il tuo sistema di bilanciamento del carico in qualsiasi momento. Dopo avere disabilitato la registrazione degli accessi, i log di accesso rimangono nel tuo bucket S3 finché non li elimini. Per ulteriori informazioni, consulta Utilizzo dei bucket nella Guida per l'utente di Amazon Simple Storage Service.

Per disabilitare la registrazione degli accessi tramite la console
  1. Aprire la console Amazon EC2 all'indirizzo https://console.aws.amazon.com/ec2/.

  2. Selezionare Load Balancers (Sistemi di bilanciamento del carico) nel riquadro di navigazione.

  3. Seleziona il load balancer.

  4. Nella scheda Description (Descrizione) scegli Edit attributes (Modifica attributi).

  5. Per Access logs (Log di accesso), deselezionare Enable (Abilita).

  6. Seleziona Salva.

Per disabilitare la registrazione degli accessi tramite AWS CLI

Utilizza il comando modify-load-balancer-attributes.

Elaborazione dei file di log di accesso

I file di log di accesso sono compressi. Se si aprono i file tramite la console Amazon S3, vengono decompressi e le informazioni vengono visualizzate. Se scarichi i file, li devi decomprimere per visualizzare le informazioni.

Se il sito Web ha notevole quantità di domanda, il tuo load balancer può generare i file di log con i gigabyte di dati. Potresti non essere in grado di elaborare una quantità così grande di dati utilizzando l' line-by-line elaborazione. Pertanto, potresti dover utilizzare gli strumenti di analisi che offrono soluzioni di elaborazione parallela. Ad esempio, puoi utilizzare i seguenti strumenti per analizzare ed elaborare i log di accesso:

  • Amazon Athena è un servizio di query interattivo che semplifica l'analisi dei dati in Amazon S3 con SQL standard. Per ulteriori informazioni, consulta la sezione relativa all'Esecuzione di query sui log Network Load Balancer nella Guida per l'utente di Amazon Athena.

  • Loggly

  • Splunk

  • Sumo Logic