Autenticazione reciproca con TLS Application 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à.

Autenticazione reciproca con TLS Application Load Balancer

TLSL'autenticazione reciproca è una variante della sicurezza del livello di trasporto ()TLS. Traditional TLS stabilisce comunicazioni sicure tra un server e un client, in cui il server deve fornire la propria identità ai propri client. Con mutualTLS, un load balancer negozia l'autenticazione reciproca tra il client e il server durante la negoziazione. TLS Quando utilizzi mutual TLS con Application Load Balancer, semplifichi la gestione dell'autenticazione e riduci il carico sulle tue applicazioni.

Utilizzando la modalità mutua TLS con Application Load Balancer, il sistema di bilanciamento del carico può gestire l'autenticazione dei client per garantire che solo client affidabili comunichino con le applicazioni di backend. Quando si utilizza questa funzionalità, Application Load Balancer autentica i client con certificati di autorità di certificazione (CA) di terze parti o utilizzando AWS Private Certificate Authority (PCA), facoltativamente, con controlli di revoca. Application Load Balancer trasmette le informazioni sul certificato client al backend, che le applicazioni possono utilizzare per l'autorizzazione. Utilizzando mutual TLS in Application Load Balancer, è possibile ottenere un'autenticazione integrata, scalabile e gestita per entità basate su certificati, che utilizza librerie consolidate.

Mutual TLS for Application Load Balancers offre le seguenti due opzioni per la convalida dei certificati client X.509v3:

Nota: i certificati client X.509v1 non sono supportati.

  • TLSPassthrough reciproco: quando si utilizza la modalità TLS passthrough reciproco, Application Load Balancer invia l'intera catena di certificati client alla destinazione utilizzando le intestazioni. HTTP Quindi, utilizzando la catena di certificati client, è possibile implementare l'autenticazione del bilanciamento del carico e la logica di autorizzazione del target corrispondenti nell'applicazione.

  • TLSVerifica reciproca: quando si utilizza la modalità di TLS verifica reciproca, Application Load Balancer esegue l'autenticazione del certificato client X.509 per i client quando un sistema di bilanciamento del carico negozia le connessioni. TLS

Per iniziare a utilizzare mutuo TLS in Application Load Balancer utilizzando il passthrough, è sufficiente configurare il listener in modo che accetti qualsiasi certificato dai client. Per utilizzare mutual TLS con la verifica, devi fare quanto segue:

  • Crea una nuova risorsa Trust Store.

  • Carica il tuo pacchetto di autorità di certificazione (CA) e, facoltativamente, gli elenchi di revoca.

  • Collega il trust store al listener configurato per verificare i certificati client.

Per step-by-step le procedure per configurare la modalità di TLS verifica reciproca con Application Load Balancer, vedere. Configurazione reciproca TLS su un Application Load Balancer

Prima di iniziare a configurare mutual TLS sul tuo Application Load Balancer

Prima di iniziare a configurare mutual TLS sul tuo Application Load Balancer, tieni presente quanto segue:

Quote

Gli Application Load Balancer includono alcuni limiti relativi alla quantità di trust store, certificati CA ed elenchi di revoca dei certificati utilizzati all'interno dell'account. AWS

Per ulteriori informazioni, consulta Quotas for your Application Load Balancers.

Requisiti per i certificati

Gli Application Load Balancer supportano quanto segue per i certificati utilizzati con l'autenticazione reciprocaTLS:

  • Certificato supportato: X.509v3

  • Chiavi pubbliche supportate: RSA 2K — 8K o secp256r1, secp384r1, secp521r1 ECDSA

  • Algoritmi di firma supportati:SHA256, 384, 512 con/, 384, 512 con hash EC/ ,384,512 con - con RSA SHA256 SHA256 RSASSA PSS MGF1

Pacchetti di certificati CA

Quanto segue si applica ai pacchetti di autorità di certificazione (CA):

  • Gli Application Load Balancer caricano ogni pacchetto di certificati dell'autorità di certificazione (CA) come batch. Gli Application Load Balancer non supportano il caricamento di singoli certificati. Se è necessario aggiungere nuovi certificati, è necessario caricare il file del pacchetto dei certificati.

  • Per sostituire un pacchetto di certificati CA, utilizza il. ModifyTrustStoreAPI

Ordine di certificati per il passthrough

Quando si utilizza il TLS passthrough reciproco, Application Load Balancer inserisce delle intestazioni per presentare la catena di certificati dei client alle destinazioni del backend. L'ordine di presentazione inizia con i certificati leaf e termina con il certificato root.

Ripresa della sessione

La ripresa della sessione non è supportata quando si utilizzano le modalità di trasmissione reciproca o di verifica con un TLS Application Load Balancer.

HTTPintestazioni

Gli Application Load Balancer utilizzano le X-Amzn-Mtls intestazioni per inviare informazioni sui certificati quando negozia le connessioni client tramite mutuo. TLS Per ulteriori informazioni ed esempi di intestazioni, vedere. HTTPintestazioni e mutui TLS

File di certificato CA

I file di certificato CA devono soddisfare i seguenti requisiti:

  • Il file di certificato deve utilizzare il formato PEM (Privacy Enhanced Mail).

  • Il contenuto del certificato deve essere racchiuso entro i -----END CERTIFICATE----- limiti -----BEGIN CERTIFICATE----- e.

  • I commenti devono essere preceduti da un # carattere e non devono contenere alcun carattere. -

  • Non possono esserci righe vuote.

Esempio di certificato non accettato (non valido):

# comments Certificate: Data: Version: 3 (0x2) Serial Number: 01 Signature Algorithm: ecdsa-with-SHA384 Issuer: C=US, O=EXAMPLE, OU=EXAMPLE, CN=EXAMPLE Validity Not Before: Jan 11 23:57:57 2024 GMT Not After : Jan 10 00:57:57 2029 GMT Subject: C=US, O=EXAMPLE, OU=EXAMPLE, CN=EXAMPLE Subject Public Key Info: Public Key Algorithm: id-ecPublicKey Public-Key: (384 bit) pub: 00:01:02:03:04:05:06:07:08 ASN1 OID: secp384r1 NIST CURVE: P-384 X509v3 extensions: X509v3 Key Usage: critical Digital Signature, Key Encipherment, Certificate Sign, CRL Sign X509v3 Basic Constraints: critical CA:TRUE X509v3 Subject Key Identifier: 00:01:02:03:04:05:06:07:08 X509v3 Subject Alternative Name: URI:EXAMPLE.COM Signature Algorithm: ecdsa-with-SHA384 00:01:02:03:04:05:06:07:08 -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE-----

Esempi di certificati accettati (validi):

  1. Certificato singolo (PEMcodificato):

    # comments -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE-----
  2. Certificati multipli (codificati)PEM:

    # comments -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE----- # comments -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE-----

HTTPintestazioni e mutui TLS

Questa sezione descrive le HTTP intestazioni utilizzate dagli Application Load Balancer per inviare le informazioni sui certificati quando si negoziano connessioni con i client utilizzando Mutual. TLS Le X-Amzn-Mtls intestazioni specifiche utilizzate da Application Load Balancer dipendono dalla modalità TLS reciproca specificata: modalità passthrough o modalità di verifica.

Per informazioni su altre HTTP intestazioni supportate da Application Load Balancers, consulta. HTTPheader e Application Load Balancer

HTTPintestazione per la modalità passthrough

Per la modalità reciproca TLS in modalità passthrough, Application Load Balancer utilizza l'intestazione seguente.

Questa intestazione contiene il PEM formato con URL codifica dell'intera catena di certificati client presentata nella connessione, con caratteri sicuri. +=/

Contenuto dell'intestazione di esempio:

X-Amzn-Mtls-Clientcert: -----BEGIN%20CERTIFICATE-----%0AMIID<...reduced...>do0g%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIID1<...reduced...>3eZlyKA%3D%3D%0A-----END%20CERTIFICATE-----%0A

HTTPintestazioni per la modalità di verifica

Per la modalità TLS di verifica reciproca, gli Application Load Balancer utilizzano le seguenti intestazioni.

Questa intestazione contiene una rappresentazione esadecimale del numero di serie del certificato Leaf.

Contenuto dell'intestazione di esempio:

X-Amzn-Mtls-Clientcert-Serial-Number: 03A5B1

Questa intestazione contiene una rappresentazione in formato stringa del nome distinto (DN) dell'emittenteRFC2253.

Contenuto dell'intestazione di esempio:

X-Amzn-Mtls-Clientcert-Issuer: CN=rootcamtls.com,OU=rootCA,O=mTLS,L=Seattle,ST=Washington,C=US

Questa intestazione contiene una rappresentazione in RFC2253 formato stringa del nome distinto (DN) del soggetto.

Contenuto dell'intestazione di esempio:

X-Amzn-Mtls-Clientcert-Subject: CN=client_.com,OU=client-3,O=mTLS,ST=Washington,C=US

Questa intestazione contiene il formato 01 della data e. ISO86 notBefore notAfter

Contenuto dell'intestazione di esempio:

X-Amzn-Mtls-Clientcert-Validity: NotBefore=2023-09-21T01:50:17Z;NotAfter=2024-09-20T01:50:17Z

Questa intestazione contiene un formato codificato del certificato leaf, con caratteri URL sicuriPEM. +=/

Esempio di contenuto dell'intestazione:

X-Amzn-Mtls-Clientcert-Leaf: -----BEGIN%20CERTIFICATE-----%0AMIIG<...reduced...>NmrUlw%0A-----END%20CERTIFICATE-----%0A

Registri di connessione per Application Load Balancer

Elastic Load Balancing fornisce log di connessione che acquisiscono gli attributi delle richieste inviate agli Application Load Balancer. I log di connessione contengono informazioni come l'indirizzo IP e la porta del client, le informazioni sul certificato del client, i risultati della connessione e i codici utilizzati. TLS Questi registri di connessione possono quindi essere utilizzati per esaminare i modelli di richiesta e altre tendenze.

Per ulteriori informazioni sui log di connessione, consulta Log di connessione per l'Application Load Balancer