Configura TLS reciproco per un bilanciatore del carico delle applicazioni esterno globale

Questa pagina mostra esempi di configurazione del protocollo TLS reciproca (mTLS) per un bilanciatore del carico delle applicazioni esterno globale.

Prima di iniziare

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.

  1. Assicurati di aver già creato la risorsa ServerTLSPolicy. Per istruzioni, vedi Crea le risorse di sicurezza di rete.

  2. 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 è denominato TARGET_HTTPS_PROXY_NAME nei passaggi seguenti.

  3. 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.
  4. Elenca tutte le ServerTlsPolicies risorse in la località specificata del progetto corrente.

    Console

    1. Nella console Google Cloud, vai alla pagina Autenticazione client.

      Vai a Autenticazione client

    2. Sono visualizzate tutte le ServerTlsPolicies risorse.

    gcloud

    Per visualizzare un elenco di tutte le autenticazioni client (ServerTlsPolicies), utilizza Comando gcloud network-security server-tls-policies list:

    gcloud network-security server-tls-policies list \
      --location=REGION
    

    Sostituisci quanto segue:

    REGION: usa global.

    Prendi nota del nome della risorsa ServerTlsPolicies per configurare mTLS. Questo nome è denominato SERVER_TLS_POLICY_NAME nel passaggio successivo.

  5. Per aggiungere il file di risorse ServerTlsPolicy TARGET_PROXY_FILENAME, usa questo comando. Sostituisci PROJECT_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
    
  6. 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.

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

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