Questa pagina mostra esempi di configurazione del protocollo TLS reciproca (mTLS) per un bilanciatore del carico delle applicazioni esterno globale.
Prima di iniziare
- Leggi la panoramica del bilanciatore del carico delle applicazioni esterno.
- Leggi la panoramica su TLS reciproco.
- Configura il TLS reciproco con certificati forniti dall'utente o TLS reciproca con una CA privata.
- I bilanciatori del carico delle applicazioni esterni globali supportano diverse
dei servizi di backend e dei bucket.
Assicurati di aver configurato un bilanciatore del carico delle applicazioni esterno globale con uno dei
seguenti backend supportati:
- Backend di gruppi di istanze VM
- Bucket Cloud Storage (supportato solo se esiste almeno un servizio di backend collegato a al bilanciatore del carico, oltre che al bucket di backend)
- Cloud Run, App Engine o Cloud Functions
- Connettività ibrida
Configura mTLS per il bilanciatore del carico
Affinché autenticazione TLS reciproca (mTLS) funzioni, dopo aver configurato un bilanciatore del carico,
devi aggiornare il proxy HTTPS di destinazione utilizzando ServerTLSPolicy
risorsa.
Assicurati di aver già creato la risorsa
ServerTLSPolicy
. Per istruzioni, vedi Crea le risorse di sicurezza di rete.Per elencare tutti i proxy HTTPS di destinazione nel progetto, utilizza la classe Comando
gcloud compute target-https-proxies list
:gcloud compute target-https-proxies list
Prendi nota del nome del proxy HTTPS di destinazione per collegare il
ServerTLSPolicy
risorsa. Questo nome è denominatoTARGET_HTTPS_PROXY_NAME
nei passaggi seguenti.Per esportare la configurazione di un proxy HTTPS di destinazione in un file, utilizza
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 target proxy.TARGET_PROXY_FILENAME
: il nome di un file YAML. Ad esempio,mtls_target_proxy.yaml
.
Elenca tutte le
ServerTlsPolicies
risorse in la località specificata del progetto corrente.Console
Nella console Google Cloud, vai alla pagina Autenticazione client.
Sono visualizzate tutte le
ServerTlsPolicies
risorse.
gcloud
Per visualizzare un elenco di tutte le autenticazioni client (
ServerTlsPolicies
), utilizza 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 è denominatoSERVER_TLS_POLICY_NAME
nel passaggio successivo.Per aggiungere il file di risorse
ServerTlsPolicy
TARGET_PROXY_FILENAME
, usa questo comando. 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 la classe 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 target proxy.TARGET_PROXY_FILENAME
: il nome di un file YAML. Ad esempio,mtls_target_proxy.yaml
.
Aggiungi intestazioni personalizzate mTLS
Con mTLS abilitato, puoi utilizzare intestazioni personalizzate per passare informazioni sulla connessione mTLS ai servizi di backend. Puoi anche abilitare il logging in modo che Errori di connessione mTLS vengono acquisite nei log.Per elencare tutti i servizi di backend nel progetto, utilizza 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 è indicato come
BACKEND_SERVICE
in al passaggio successivo.Per aggiornare il servizio di backend, utilizza la classe 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
- Configura TLS reciproco per un bilanciatore del carico delle applicazioni classico
- Configura TLS reciprocamente con una CA privata
- Configura TLS reciproco con certificati forniti dall'utente
- Visualizza i log per la convalida dei certificati client mTLS
- Eseguire la pulizia di una configurazione di bilanciamento del carico