Abilita i log dei controlli di integrità per il tuo Application Load Balancer - ELB

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

Abilita i log dei controlli di integrità per il tuo Application Load Balancer

Quando abiliti i log dei controlli di integrità per il tuo sistema di bilanciamento del carico, devi specificare il nome del bucket S3 in cui il load balancer memorizzerà i log. Il bucket deve avere una policy che conceda a ELB l'autorizzazione a scrivere nel bucket.

Fase 1: Crea un bucket S3

Quando abiliti i log di controllo dello stato, devi specificare un bucket S3 per i log di controllo dello stato. È possibile utilizzare un bucket esistente o creare un bucket specifico per i registri di controllo dello stato. Il bucket deve soddisfare i seguenti requisiti.

Requisiti
  • Il bucket deve trovarsi nella stessa regione del load balancer. Il bucket e il load balancer possono essere di proprietà di account differenti.

  • L'unica opzione di crittografia lato server supportata è data dalle chiavi gestite da Amazon S3 (SSE-S3). Per ulteriori informazioni, consulta Chiavi di crittografia gestite da Amazon S3 (SSE-S3).

Per creare un bucket S3 utilizzando la console Amazon S3
  1. Apri la console Amazon S3 all'indirizzo. https://console.aws.amazon.com/s3/

  2. Seleziona Crea bucket.

  3. Nella pagina Crea bucket, segui questi passaggi:

    1. In Nome bucket, immettere il nome del bucket. Il nome deve essere univoco rispetto a tutti i nomi di bucket esistenti in Amazon S3. In alcune regioni , possono esistere restrizioni aggiuntive sui nomi bucket. Per ulteriori informazioni, consulta Restrizioni e limitazioni del bucket nella Amazon S3 User Guide.

    2. Per Regione AWS , seleziona la regione in cui è stato creato il sistema di bilanciamento del carico.

    3. Per la crittografia predefinita, scegli le chiavi gestite da Amazon S3 (SSE-S3).

    4. Seleziona Crea bucket.

Fase 2: collegamento di una policy al bucket S3

Il bucket S3 deve avere una policy relativa ai bucket che conceda l'autorizzazione ELB a scrivere i log dei controlli di integrità 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. Ogni istruzione include informazioni su una singola autorizzazione e contiene una serie di elementi.

Se stai utilizzando un bucket esistente a cui è già associata una policy, puoi aggiungere alla policy l'istruzione per i log dei controlli di stato dell'ELB. In tal caso, ti consigliamo di valutare il set di autorizzazioni risultante per assicurarti che siano appropriate per gli utenti che devono accedere al bucket per i log dei controlli sanitari.

Questa policy concede le autorizzazioni al servizio di consegna dei log specificato.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "logdelivery.elasticloadbalancing.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/prefix/AWSLogs/123456789012/*" } ] }

PerResource, inserire l'ARN della posizione per i log di accesso, utilizzando il formato mostrato nella politica di esempio. Includi sempre l'ID dell'account con il sistema di bilanciamento del carico nel percorso delle risorse dell'ARN del bucket S3. Ciò garantisce che solo i sistemi di bilanciamento del carico dell'account specificato possano scrivere i log di accesso al bucket S3.

L'ARN specificato dipende dal fatto che si intenda includere un prefisso quando si abilitano i log di accesso nel passaggio 3.

Esempio: bucket S3 (ARN) con un prefisso

Il nome del bucket S3 è e il prefisso è. amzn-s3-demo-logging-bucket logging-prefix

arn:aws:s3:::amzn-s3-demo-logging-bucket/logging-prefix/AWSLogs/123456789012/*

AWS GovCloud (US)— L'esempio seguente utilizza la sintassi ARN per. AWS GovCloud (US) Regions

arn:aws-us-gov:s3:::amzn-s3-demo-logging-bucket/logging-prefix/AWSLogs/123456789012/*
Esempio di ARN per bucket S3 senza prefisso

Il nome del bucket S3 è. amzn-s3-demo-logging-bucket Non è presente alcuna porzione di prefisso nell'ARN del bucket S3.

arn:aws:s3:::amzn-s3-demo-logging-bucket/AWSLogs/123456789012/*

AWS GovCloud (US)— L'esempio seguente utilizza la sintassi ARN per. AWS GovCloud (US) Regions

arn:aws-us-gov:s3:::amzn-s3-demo-logging-bucket/AWSLogs/123456789012/*

In precedenza, per le regioni disponibili prima di agosto 2022, richiedevamo una politica che concedesse le autorizzazioni a un account ELB specifico per la regione. Questa politica precedente è ancora supportata, ma si consiglia di sostituirla con la politica più recente riportata sopra. Se preferisci continuare a utilizzare la politica precedente, che non è mostrata qui, puoi farlo.

A titolo di riferimento, ecco gli account IDs della ELB da specificare Principal nella politica precedente. Si noti che le regioni che non sono in questo elenco non supportano la politica precedente.

  • Stati Uniti orientali (Virginia settentrionale): 127311923021

  • Stati Uniti orientali (Ohio): 033677994240

  • Stati Uniti occidentali (California settentrionale): 027434742980

  • Stati Uniti occidentali (Oregon): 797873946194

  • Africa (Città del Capo): 098369216593

  • Asia Pacifico (Hong Kong): 754344448648

  • Asia Pacifico (Giacarta) – 589379963580

  • Asia Pacifico (Mumbai): 718504428378

  • Asia Pacifico (Osaka-Locale): 383597477331

  • Asia Pacifico (Seoul): 600734575887

  • Asia Pacifico (Singapore): 114774131450

  • Asia Pacifico (Sydney): 783225319266

  • Asia Pacifico (Tokyo): 582318560864

  • Canada (Centrale): 985666609251

  • Europa (Francoforte): 054676820928

  • Europa (Irlanda): 156460612806

  • Europa (Londra): 652711504416

  • Europa (Milano): 635631232127

  • Europa (Parigi): 009996457667

  • Europa (Stoccolma): 897822967062

  • Medio Oriente (Bahrein): 076674570225

  • Sud America (San Paolo): 507241528517

  • AWS GovCloud (Stati Uniti orientali) — 190560391635

  • AWS GovCloud (Stati Uniti occidentali) — 048591011584

La policy seguente concede le autorizzazioni al servizio di consegna dei log specificato. Utilizzare questa policy per i sistemi di bilanciamento del carico nelle zone Outpost.

{ "Effect": "Allow", "Principal": { "Service": "logdelivery.elb.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/prefix/AWSLogs/123456789012/*" "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } }

PerResource, inserire l'ARN della posizione per i log di accesso. Includi sempre l'ID dell'account con il sistema di bilanciamento del carico nel percorso delle risorse dell'ARN del bucket S3. Ciò garantisce che solo i sistemi di bilanciamento del carico dell'account specificato possano scrivere i log di accesso al bucket S3.

L'ARN specificato dipende dal fatto che si intenda includere un prefisso quando si abilitano i log di accesso nel passaggio 3.

Esempio: bucket S3 (ARN) con un prefisso

Il nome del bucket S3 è e il prefisso è. amzn-s3-demo-logging-bucket logging-prefix

arn:aws:s3:::amzn-s3-demo-logging-bucket/logging-prefix/AWSLogs/123456789012/*
Esempio di ARN per bucket S3 senza prefisso

Il nome del bucket S3 è. amzn-s3-demo-logging-bucket Non è presente alcuna porzione di prefisso nell'ARN del bucket S3.

arn:aws:s3:::amzn-s3-demo-logging-bucket/AWSLogs/123456789012/*

Per migliorare la sicurezza, usa un bucket S3 preciso. ARNs

  • Utilizza il percorso completo delle risorse, non solo l'ARN del bucket S3.

  • Includi la parte relativa all'ID dell'account dell'ARN del bucket S3.

  • Non utilizzare caratteri jolly (*) nella parte relativa all'ID dell'account dell'ARN del bucket S3.

Dopo aver creato la tua bucket policy, utilizza un'interfaccia Amazon S3, come la console AWS CLI o i comandi Amazon S3, per collegare la tua bucket policy al bucket S3.

Console
Per collegare la tua bucket policy al tuo bucket S3
  1. Apri la console Amazon S3 all'indirizzo. https://console.aws.amazon.com/s3/

  2. Seleziona il nome del bucket per aprirne la pagina dei dettagli.

  3. Scegli Autorizzazioni quindi seleziona Policy del bucket, Modifica.

  4. Crea o aggiorna la policy del bucket per concedere le autorizzazioni richieste.

  5. Scegli Save changes (Salva modifiche).

AWS CLI
Per collegare la tua policy sui bucket al tuo bucket S3

Utilizza il comando put-bucket-policy. In questo esempio, la policy del bucket è stata salvata nel file .json specificato.

aws s3api put-bucket-policy \ --bucket amzn-s3-demo-bucket \ --policy file://access-log-policy.json

Fase 3: Configurare i registri dei controlli sanitari

Utilizza la seguente procedura per configurare i log dei controlli di integrità per acquisire e inviare i file di registro al tuo bucket S3.

Requisiti

Il bucket deve soddisfare i requisiti descritti nella fase 1 e devi collegare una policy di bucket come descritto nella fase 2. Se si specifica un prefisso, questo non deve includere la stringa "». AWSLogs

Per gestire il bucket S3 per i registri dei controlli sanitari

Assicurati di disabilitare i registri dei controlli sanitari prima di eliminare il bucket che hai configurato per i registri dei controlli sanitari. Altrimenti, se esiste un nuovo bucket con lo stesso nome e la policy relativa ai bucket richiesta ma creato in un ambiente di Account AWS cui non sei il proprietario, ELB potrebbe scrivere i log dei controlli di integrità del tuo load balancer in questo nuovo bucket.

Console
Per abilitare i log dei controlli sanitari
  1. Apri la EC2 console Amazon 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. Per il monitoraggio, attiva i registri Health Check.

  6. In URI S3, inserisci l'URI S3 per i tuoi file di log. L'URI specificato dipende dall'utilizzo di un prefisso.

    • URI con prefisso: s3://bucket-name/prefix

    • URI senza prefisso: s3://bucket-name

  7. Scegli Save changes (Salva modifiche).

AWS CLI
Per abilitare i registri dei controlli sanitari

Utilizzare il modify-load-balancer-attributescomando con gli attributi correlati.

aws elbv2 modify-load-balancer-attributes \ --load-balancer-arn load-balancer-arn \ --attributes \ Key=health_check_logs.s3.enabled,Value=true \ Key=health_check_logs.s3.bucket,Value=amzn-s3-demo-logging-bucket \ Key=health_check_logs.s3.prefix,Value=logging-prefix
CloudFormation
Per abilitare i registri dei controlli sanitari

Aggiorna la AWS::ElasticLoadBalancingV2::LoadBalancerrisorsa per includere gli attributi correlati.

Resources: myLoadBalancer: Type: 'AWS::ElasticLoadBalancingV2::LoadBalancer' Properties: Name: my-alb Type: application Scheme: internal Subnets: - !Ref subnet-AZ1 - !Ref subnet-AZ2 SecurityGroups: - !Ref mySecurityGroup LoadBalancerAttributes: - Key: "health_check_logs.s3.enabled" Value: "true" - Key: "health_check_logs.s3.bucket" Value: "amzn-s3-demo-logging-bucket" - Key: "health_check_logs.s3.prefix" Value: "logging-prefix"

Fase 4: verifica delle autorizzazioni del bucket

Dopo aver abilitato i log dei controlli di integrità per il sistema di bilanciamento del carico, ELB convalida il bucket S3 e crea un file di test per garantire che la policy del bucket specifichi le autorizzazioni richieste. Puoi utilizzare la console Amazon S3 per verificare che il file di test sia stato creato. Il file di test non è un vero file di registro dei controlli sanitari; non contiene record di esempio.

Per verificare che ELB abbia creato un file di test nel bucket S3
  1. Apri la console Amazon S3 all'indirizzo. https://console.aws.amazon.com/s3/

  2. Seleziona il nome del bucket che hai specificato per i log dei controlli sanitari.

  3. Accedi al file di test, ELBHealthCheckLogTestFile. La posizione dipende dall'utilizzo di un prefisso.

    • Posizione con prefisso:amzn-s3-demo-logging-bucket///prefixAWSLogs123456789012ELBHealthCheckLogTestFile

    • Posizione senza prefisso:amzn-s3-demo-logging-bucket///AWSLogs123456789012ELBHealthCheckLogTestFile

risoluzione dei problemi

L'errore di accesso negato può essere provocato da una delle cause elencate di seguito:

  • La policy del bucket non concede all'ELB il permesso di scrivere registri di controllo dello stato di salute nel bucket. Verifica di utilizzare la policy di bucket corretta per la regione. Verifica che l'ARN della risorsa utilizzi lo stesso nome di bucket specificato quando hai abilitato i log dei controlli sanitari. Verifica che l'ARN della risorsa non includa un prefisso se non hai specificato un prefisso quando hai abilitato i registri dei controlli sanitari.

  • Il bucket utilizza un'opzione di crittografia lato server non supportata. Il bucket deve utilizzare chiavi gestite da Amazon S3 (SSE-S3).