Questa pagina mostra esempi di configurazione di TLS reciproco (mTLS) per un bilanciatore del carico delle applicazioni classico.
Prima di iniziare
- Leggi la panoramica sul bilanciatore del carico delle applicazioni esterno.
- Leggi la panoramica sul protocollo TLS reciproco.
- Configura il TLS reciproco con i certificati forniti dall'utente o il TLS reciproco con una CA privata.
- Un bilanciatore del carico delle applicazioni classico supporta servizi e bucket di backend diversi. Assicurati di aver configurato un bilanciatore del carico delle applicazioni classico con uno dei seguenti backend supportati:
Configurare la crittografia mTLS per il bilanciatore del carico
Affinché l'autenticazione TLS reciproca (mTLS) funzioni, dopo aver configurato un bilanciatore del carico devi aggiornare il proxy HTTPS di destinazione utilizzando la risorsa ServerTLSPolicy
.
Assicurati di aver già creato la risorsa
ServerTLSPolicy
. Per le istruzioni, consulta Creare le risorse di sicurezza di rete.Per elencare tutti i proxy HTTPS di destinazione nel tuo progetto, utilizza il comando
gcloud compute target-https-proxies list
:gcloud compute target-https-proxies list
Prendi nota del nome del proxy HTTPS di destinazione per collegare la risorsa
ServerTLSPolicy
. Questo nome sarà indicato comeTARGET_HTTPS_PROXY_NAME
nei seguenti passaggi.Per esportare la configurazione di un proxy HTTPS di destinazione in un file, utilizza il comando
gcloud beta compute target-https-proxies export
.globale
gcloud beta compute target-https-proxies export TARGET_HTTPS_PROXY_NAME \ --destination=TARGET_PROXY_FILENAME \ --global
Sostituisci quanto segue:
TARGET_HTTPS_PROXY_NAME
: il nome del proxy di destinazione.TARGET_PROXY_FILENAME
: il nome di un file YAML. Ad esempio,mtls_target_proxy.yaml
.
Elenca tutte le risorse
ServerTlsPolicies
nella località specificata del progetto attuale.Console
Nella console Google Cloud, vai alla pagina Autenticazione client.
Sono visualizzate tutte le risorse
ServerTlsPolicies
.
gcloud
Per elencare tutte le risorse di autenticazione client (
ServerTlsPolicies
), utilizza il comandogcloud network-security server-tls-policies list
:gcloud network-security server-tls-policies list \ --location=REGION
Sostituisci quanto segue:
REGION
: usaglobal
.Prendi nota del nome della risorsa
ServerTlsPolicies
per configurare mTLS. Questo nome sarà indicato comeSERVER_TLS_POLICY_NAME
nel passaggio successivo.Per aggiungere il file di risorse
ServerTlsPolicy
TARGET_PROXY_FILENAME
, utilizza il comando seguente. SostituisciPROJECT_ID
con l'ID del tuo progetto Google Cloud.echo "serverTlsPolicy: //networksecurity.googleapis.com/projects/PROJECT_ID/locations/REGION/serverTlsPolicies/SERVER_TLS_POLICY_NAME" >> TARGET_PROXY_FILENAME
Per importare la configurazione di un proxy HTTPS di destinazione da un file, utilizza il comando
gcloud beta compute target-https-proxies import
.globale
gcloud beta compute target-https-proxies import TARGET_HTTPS_PROXY_NAME \ --source=TARGET_PROXY_FILENAME \ --global
Sostituisci quanto segue:
TARGET_HTTPS_PROXY_NAME
: il nome del proxy di destinazione.TARGET_PROXY_FILENAME
: il nome di un file YAML. Ad esempio,mtls_target_proxy.yaml
.
Aggiungere intestazioni personalizzate mTLS
Con mTLS abilitato, puoi utilizzare le intestazioni personalizzate per passare informazioni sulla connessione mTLS ai servizi di backend. Puoi anche abilitare il logging in modo che nei log vengano acquisiti gli errori di connessione mTLS.Per elencare tutti i servizi di backend nel progetto, utilizza il comando
gcloud compute backend-services list
:gcloud compute backend-services list
Prendi nota del nome del servizio di backend per abilitare intestazioni e logging personalizzati. Questo nome sarà indicato come
BACKEND_SERVICE
nel passaggio seguente.Per aggiornare il servizio di backend, utilizza il comando
gcloud compute backend-services update
:gcloud compute backend-services update BACKEND_SERVICE \ --global \ --enable-logging \ --logging-sample-rate=1 \ --custom-request-header='X-Client-Cert-Present:{client_cert_present}' \ --custom-request-header='X-Client-Cert-Chain-Verified:{client_cert_chain_verified}' \ --custom-request-header='X-Client-Cert-Error:{client_cert_error}' \ --custom-request-header='X-Client-Cert-Hash:{client_cert_sha256_fingerprint}' \ --custom-request-header='X-Client-Cert-Serial-Number:{client_cert_serial_number}' \ --custom-request-header='X-Client-Cert-SPIFFE:{client_cert_spiffe_id}' \ --custom-request-header='X-Client-Cert-URI-SANs:{client_cert_uri_sans}' \ --custom-request-header='X-Client-Cert-DNSName-SANs:{client_cert_dnsname_sans}' \ --custom-request-header='X-Client-Cert-Valid-Not-Before:{client_cert_valid_not_before}' \ --custom-request-header='X-Client-Cert-Valid-Not-After:{client_cert_valid_not_after}'
Passaggi successivi
- Configurare il protocollo TLS comune per un bilanciatore del carico delle applicazioni esterno globale
- Configurare il protocollo TLS reciproca con una CA privata
- Configurare il protocollo TLS reciproco con i certificati forniti dall'utente
- Visualizza i log per la convalida dei certificati client mTLS
- Pulisci una configurazione del bilanciamento del carico