Cette page présente des exemples de configuration du protocole TLS mutuel (mTLS) pour un équilibreur de charge d'application classique.
Avant de commencer
- Consultez la présentation de l'équilibreur de charge d'application externe.
- Consultez la présentation du protocole TLS mutuel.
- Configurez un protocole TLS mutuel avec des certificats fournis par l'utilisateur ou un protocole TLS mutuel avec une autorité de certification privée.
- Un équilibreur de charge d'application classique est compatible avec différents buckets et services de backend. Assurez-vous d'avoir configuré un équilibreur de charge d'application classique avec l'un des backends compatibles suivants :
Configurer mTLS pour l'équilibreur de charge
Pour que l'authentification TLS mutuelle fonctionne, une fois que vous avez configuré un équilibreur de charge, vous devez mettre à jour le proxy HTTPS cible à l'aide de la ressource ServerTLSPolicy
.
Assurez-vous d'avoir déjà créé la ressource
ServerTLSPolicy
. Pour obtenir des instructions, consultez la section Créer les ressources de sécurité réseau.Pour répertorier tous les proxys HTTPS cibles de votre projet, utilisez la commande
gcloud compute target-https-proxies list
:gcloud compute target-https-proxies list
Notez le nom du proxy HTTPS cible pour associer la ressource
ServerTLSPolicy
. Ce nom sera appeléTARGET_HTTPS_PROXY_NAME
dans les étapes suivantes.Pour exporter la configuration d'un proxy HTTPS cible vers un fichier, utilisez la commande
gcloud compute target-https-proxies export
:gcloud compute target-https-proxies export TARGET_HTTPS_PROXY_NAME \ --global \ --destination=xlb-mtls-target-proxy.yaml
Répertoriez toutes les ressources
ServerTlsPolicies
à l'emplacement spécifié du projet en cours.Console
- Dans la console Google Cloud, accédez à la page Authentification client.
Accéder à la page Authentification client
- Toutes les ressources
ServerTlsPolicies
sont affichées.
gcloud
Pour répertorier toutes les ressources Authentification client (
ServerTlsPolicies
), utilisez la commandegcloud network-security server-tls-policies list
:gcloud network-security server-tls-policies list \ --location=global
Notez le nom de la ressource
ServerTlsPolicies
pour configurer l'authentification mTLS. Ce nom sera appeléSERVER_TLS_POLICY_NAME
à l'étape suivante.Pour ajouter le fichier de ressources
ServerTlsPolicy
xlb-mtls-target-proxy.yaml
, utilisez la commande suivante. RemplacezPROJECT_ID
par l'ID de votre projet Google Cloud.echo "serverTlsPolicy: //networksecurity.googleapis.com/projects/PROJECT_ID/locations/global/serverTlsPolicies/SERVER_TLS_POLICY_NAME" >> xlb-mtls-target-proxy.yaml
Pour importer la configuration d'un proxy HTTPS cible à partir d'un fichier, utilisez la commande
gcloud compute target-https-proxies import
:gcloud compute target-https-proxies import TARGET_HTTPS_PROXY_NAME \ --global \ --source=xlb-mtls-target-proxy.yaml
Ajouter des en-têtes mTLS personnalisés
Lorsque mTLS est activé, vous pouvez utiliser des en-têtes de requêtes personnalisés pour transmettre des informations sur la connexion mTLS aux services de backend. Vous pouvez également activer la journalisation afin que les échecs de connexion mTLS soient capturés dans les journaux.
Pour répertorier tous les services de backend du projet, exécutez la commande
gcloud compute backend-services list
:gcloud compute backend-services list
Notez le nom du service de backend pour activer les en-têtes et la journalisation personnalisés. Ce nom est appelé
BACKEND_SERVICE
à l'étape suivante.Pour mettre à jour le service de backend, utilisez la commande
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}'
Étapes suivantes
- Configurer le protocole TLS mutuel pour un équilibreur de charge d'application externe global
- Configurer un protocole TLS mutuel avec une autorité de certification privée
- Configurer un protocole TLS mutuel avec des certificats fournis par l'utilisateur
- Afficher les journaux pour la validation du certificat client mTLS
- Nettoyer une configuration d'équilibrage de charge