Log di accesso per il Network Load Balancer - Sistema di bilanciamento del carico elastico

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 per il Network Load Balancer

Elastic Load Balancing fornisce log di accesso che acquisiscono informazioni dettagliate sulle richieste TLS inviate al 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 sistema di bilanciamento del carico, 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.

Puoi abilitare la crittografia lato server con chiavi di crittografia gestite da Amazon S3 (SSE-S3) o usare Key Management Service con chiavi gestite dal cliente (SSE-KMS CMK) per il bucket 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 registro è crittografato con una chiave univoca, a sua volta crittografata con una chiave KMS che viene ruotata regolarmente. Per ulteriori informazioni, consulta Specificare la crittografia Amazon S3 (SSE-S3) e Specificare la crittografia lato server con (SSE-KMS) nella Guida per l'utente di Amazon AWS KMS S3.

Non sono previsti costi aggiuntivi per i log di accesso. Vengono addebitati i costi di archiviazione 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 ciascun nodo del sistema di bilanciamento del carico 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' Account AWS ID del proprietario.

Regione

La regione del load balancer 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

tipo

Il tipo di listener. Il valore supportato è tls.

version

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.

ascoltatore

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, tlsv12 e tlsv13. 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.

tls_connection_creation_time

L'ora registrata all'inizio della connessione TLS, nel formato ISO 8601.

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 - - - 2018-12-20T02:59:30

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" 2020-04-01T08:51:20

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 load balancer.

  • Il prefisso specificato non deve includere AWSLogs. Aggiungiamo la parte del nome del file che inizia con AWSLogs 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": ["012345678912"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:012345678912:*"] } } }, { "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": ["012345678912"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:012345678912:*"] } } } ] }

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

Crittografia

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

  • Chiavi gestite da Amazon S3 (SSE-S3)

  • AWS KMS chiavi memorizzate in AWS Key Management Service (SSE-KMS) †

† Con i log di accesso a Network Load Balancer, non è possibile utilizzare chiavi AWS gestite, ma solo chiavi gestite dal cliente.

Per ulteriori informazioni, consulta Specificare la crittografia Amazon S3 (SSE-S3) e Specificare la crittografia lato server con (SSE-KMS) nella Guida per l'utente di Amazon AWS KMS S3.

La policy della 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 sistema di bilanciamento del carico, devi specificare il bucket S3 in cui il sistema archivierà i log. Assicurati di esserne il proprietario e di avere configurato la policy del bucket richiesta. Per ulteriori informazioni, consulta Requisiti del bucket.

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

  2. Selezionare Sistemi di bilanciamento del carico nel riquadro di navigazione.

  3. Seleziona il nome del sistema di bilanciamento del carico per aprirne la pagina dei dettagli.

  4. Nella scheda Attributi, scegli Modifica.

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

    1. In Monitoraggio, attiva Log di accesso.

    2. Scegli Sfoglia S3 e seleziona il bucket da usare. In alternativa, inserisci il percorso del bucket S3, compreso l'eventuale prefisso.

    3. Seleziona Salvataggio delle modifiche.

Per abilitare la registrazione degli accessi utilizzando il 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. Apri la console Amazon EC2 all'indirizzo https://console.aws.amazon.com/ec2/.

  2. Selezionare Sistemi di bilanciamento del carico nel riquadro di navigazione.

  3. Seleziona il nome del sistema di bilanciamento del carico per aprirne la pagina dei dettagli.

  4. Nella scheda Attributi, scegli Modifica.

  5. In Monitoraggio, disabilita Log di accesso.

  6. Seleziona Salvataggio delle modifiche.

Per disabilitare la registrazione degli accessi utilizzando il 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 li apri tramite la console Amazon S3, i file vengono decompressi e le informazioni 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. Potrebbe non essere possibile 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: