Questa pagina mostra esempi di configurazione di TLS reciproco (mTLS) per un bilanciatore del carico delle applicazioni esterno regionale.
Prima di iniziare
- Leggi la panoramica sul bilanciatore del carico delle applicazioni esterno.
- Leggi la panoramica sul protocollo TLS reciproco.
- Configurare il TLS reciproco con i certificati forniti dall'utente.
- I bilanciatori del carico delle applicazioni esterni regionali supportano servizi e bucket di backend diversi. Assicurati di aver configurato un bilanciatore del carico delle applicazioni esterno regionale 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
.regionale
gcloud beta compute target-https-proxies export TARGET_HTTPS_PROXY_NAME \ --destination=TARGET_PROXY_FILENAME \ --region=REGION
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
REGION
: la regione in cui hai configurato il bilanciatore del carico.
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
: la regione in cui hai configurato il bilanciatore del carico. Per bilanciatori del carico delle applicazioni interni tra regioni, utilizzaglobal
.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
.regionale
gcloud beta compute target-https-proxies import TARGET_HTTPS_PROXY_NAME \ --source=TARGET_PROXY_FILENAME \ --region=REGION
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
REGION
: la regione in cui hai configurato il bilanciatore del carico.
Aggiungere intestazioni personalizzate mTLS
Con mTLS abilitato, puoi utilizzare intestazioni personalizzate per passare informazioni sulla connessione mTLS alla mappa URL. Puoi anche abilitare il logging in modo che nei log vengano acquisiti gli errori di connessione mTLS.Per elencare tutte le mappe URL nel progetto, utilizza il
comando gcloud beta compute url-maps list
:
gcloud beta compute url-maps list
Prendi nota del nome della mappa URL per attivare le intestazioni e il logging personalizzati.
Questo nome sarà indicato come URL_MAP_NAME
nel
passaggio seguente.
regionale
gcloud compute url-maps edit URL_MAP_NAME --region=REGION
Di seguito è riportato un file YAML di esempio che mostra come utilizzare le variabili nelle intestazioni delle richieste personalizzate (requestHeadersToAdd
). Puoi usare le stesse variabili per inviare intestazioni di risposta personalizzate (responseHeadersToAdd
).
defaultService: regions/REGION/backendServices/BACKEND_SERVICE_1 name: regional-lb-map region: region/REGION headerAction: requestHeadersToAdd: - headerName: "X-Client-Cert-Present" headerValue: "{client_cert_present}" - headerName: "X-Client-Cert-Chain-Verified" headerValue: "{client_cert_chain_verified}" - headerName: "X-Client-Cert-Error" headerValue: "{client_cert_error}" - headerName: "X-Client-Cert-Hash" headerValue: "{client_cert_sha256_fingerprint}" - headerName: "X-Client-Cert-Serial-Number" headerValue: "{client_cert_serial_number}" - headerName: "X-Client-Cert-SPIFFE" headerValue: "{client_cert_spiffe_id}" - headerName: "X-Client-Cert-URI-SANs" headerValue: "{client_cert_uri_sans}" - headerName: "X-Client-Cert-DNSName-SANs" headerValue: "{client_cert_dnsname_sans}" - headerName: "X-Client-Cert-Valid-Not-Before" headerValue: "{client_cert_valid_not_before}" - headerName: "X-Client-Cert-Valid-Not-After" headerValue: "{client_cert_valid_not_after}" - headerName: "X-Client-Cert-Issuer-Dn" headerValue: "{client_cert_issuer_dn}" - headerName: "X-Client-Cert-Subject-Dn" headerValue: "{client_cert_subject_dn}" - headerName: "X-Client-Cert-Leaf" headerValue: "{client_cert_leaf}" - headerName: "X-Client-Cert-Chain" headerValue: "{client_cert_chain}"
Passaggi successivi
- 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