En esta página, se muestran ejemplos de configuración de TLS mutua (mTLS) para un balanceador de cargas de aplicaciones externo regional.
Antes de comenzar
- Lee la descripción general del balanceador de cargas de aplicaciones externo.
- Lee la Descripción general de la TLS mutua.
- Configura una TLS mutua con certificados proporcionados por el usuario.
- Los balanceadores de cargas de aplicaciones externos regionales admiten diferentes servicios y buckets de backend. Asegúrate de haber configurado un balanceador de cargas HTTP(S) externo regional con cualquiera de los siguientes backends compatibles:
Configura la mTLS para el balanceador de cargas
Para que la autenticación de la TLS mutua funcione, después de configurar un balanceador de cargas, debes actualizar el proxy HTTPS de destino mediante el recurso ServerTLSPolicy
.
Asegúrate de haber creado el recurso
ServerTLSPolicy
. Para obtener instrucciones, consulta Crea los recursos de seguridad de red.Para obtener una lista de todos los proxies HTTPS de destino en tu proyecto, usa el comando
gcloud compute target-https-proxies list
:gcloud compute target-https-proxies list
Toma nota del nombre del proxy HTTPS de destino para conectar el recurso
ServerTLSPolicy
. Este nombre se denominaTARGET_HTTPS_PROXY_NAME
en los siguientes pasos.Para exportar la configuración de un proxy HTTPS de destino a un archivo, usa el comando
gcloud beta compute target-https-proxies export
.regional
gcloud beta compute target-https-proxies export TARGET_HTTPS_PROXY_NAME \ --destination=TARGET_PROXY_FILENAME \ --region=REGION
Reemplaza lo siguiente:
TARGET_HTTPS_PROXY_NAME
: el nombre del proxy de destino.TARGET_PROXY_FILENAME
: el nombre de un archivo yaml. Por ejemplo,mtls_target_proxy.yaml
REGION
: la región en la que configuraste el balanceador de cargas.
Enumera todos los recursos
ServerTlsPolicies
en la ubicación especificada del proyecto actual.Console
En la consola de Google Cloud, ve a la página Autenticación de clientes.
Se muestran todos los recursos
ServerTlsPolicies
.
gcloud
Para enumerar todos los recursos de autenticación de clientes (
ServerTlsPolicies
), usa el comandogcloud network-security server-tls-policies list
:gcloud network-security server-tls-policies list \ --location=REGION
Reemplaza lo siguiente:
REGION
: la región en la que configuraste el balanceador de cargas. Para balanceadores de cargas de aplicaciones internos entre regiones, usaglobal
.Ten en cuenta el nombre del recurso
ServerTlsPolicies
para configurar mTLS. Este nombre se denominaSERVER_TLS_POLICY_NAME
en el paso siguiente.Para agregar el archivo de recursos
TARGET_PROXY_FILENAME
deServerTlsPolicy
, usa el siguiente comando. ReemplazaPROJECT_ID
por el ID del proyecto de Google Cloud.echo "serverTlsPolicy: //networksecurity.googleapis.com/projects/PROJECT_ID/locations/REGION/serverTlsPolicies/SERVER_TLS_POLICY_NAME" >> TARGET_PROXY_FILENAME
Para importar la configuración de un proxy HTTPS de destino desde un archivo, usa el comando
gcloud beta compute target-https-proxies import
.regional
gcloud beta compute target-https-proxies import TARGET_HTTPS_PROXY_NAME \ --source=TARGET_PROXY_FILENAME \ --region=REGION
Reemplaza lo siguiente:
TARGET_HTTPS_PROXY_NAME
: el nombre del proxy de destino.TARGET_PROXY_FILENAME
: el nombre de un archivo yaml. Por ejemplo,mtls_target_proxy.yaml
REGION
: la región en la que configuraste el balanceador de cargas.
Agrega encabezados personalizados mTLS
Con mTLS habilitado, puedes usar encabezados personalizados para pasar información sobre la conexión mTLS al mapa de URL. También puedes habilitar el registro para que se capturen los errores de conexión mTLS en los registros.Para enumerar todos los mapas de URL en el proyecto, usa el comando gcloud beta compute url-maps list
:
gcloud beta compute url-maps list
Toma nota del nombre del mapa de URL para habilitar los encabezados y el registro personalizados.
Este nombre se denomina URL_MAP_NAME
en el siguiente paso.
regional
gcloud compute url-maps edit URL_MAP_NAME --region=REGION
A continuación, se muestra un archivo YAML de muestra que indica cómo usar variables en encabezados de solicitud personalizados (requestHeadersToAdd
). Puedes usar las mismas variables para enviar encabezados de respuesta personalizados (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}"
¿Qué sigue?
- Configurar una TLS mutua con certificados proporcionados por el usuario
- Visualiza los registros para la validación del certificado de cliente de mTLS
- Limpia una configuración de balanceo de cargas