Nesta página, mostramos exemplos de configuração de TLS mútuo (mTLS) para um balanceador de carga de aplicativo clássico.
Antes de começar
- Leia a Visão geral do balanceador de carga de aplicativo externo.
- Leia a visão geral do TLS mútuo.
- Configure TLS mútuo com certificados fornecidos pelo usuário ou TLS mútuo com uma CA particular.
- Um balanceador de carga de aplicativo clássico é compatível com diferentes serviços e buckets de back-end.
Verifique se você configurou um balanceador de carga de aplicativo clássico com um dos
seguintes back-ends compatíveis:
- Back-ends de grupo de instâncias de VM
- Buckets do Cloud Storage (compatíveis somente se houver pelo menos um serviço de back-end também anexado ao balanceador de carga, além do bucket de back-end)
- Cloud Run, App Engine ou Cloud Functions
- Conectividade híbrida
- Um back-end externo
Configurar o mTLS para o balanceador de carga
Para que a autenticação TLS mútua funcione, depois de configurar um balanceador de carga, você precisa atualizar o proxy HTTPS de destino usando o recurso ServerTLSPolicy
.
Verifique se você já criou o recurso
ServerTLSPolicy
. Para instruções, consulte Criar os recursos de segurança de rede.Para listar todos os proxies HTTPS de destino no projeto, use o comando
gcloud compute target-https-proxies list
:gcloud compute target-https-proxies list
Anote o nome do proxy HTTPS de destino para anexar o recurso
ServerTLSPolicy
. Esse nome é chamado deTARGET_HTTPS_PROXY_NAME
nas etapas a seguir.Para exportar a configuração de um proxy HTTPS de destino para um arquivo, use o comando
gcloud beta compute target-https-proxies export
.global
gcloud beta compute target-https-proxies export TARGET_HTTPS_PROXY_NAME \ --destination=TARGET_PROXY_FILENAME \ --global
Substitua:
TARGET_HTTPS_PROXY_NAME
: o nome do proxy de destino.TARGET_PROXY_FILENAME
: o nome de um arquivo yaml. Por exemplo,mtls_target_proxy.yaml
.
Liste todos os recursos
ServerTlsPolicies
no local especificado do projeto atual.Console
No console do Google Cloud, acesse a página Autenticação do cliente.
Todos os recursos
ServerTlsPolicies
serão exibidos.
gcloud
Para listar todos os recursos (
ServerTlsPolicies
) de autenticação do cliente, use o comandogcloud network-security server-tls-policies list
:gcloud network-security server-tls-policies list \ --location=REGION
Substitua:
REGION
: useglobal
.Anote o nome do recurso
ServerTlsPolicies
para configurar o mTLS. Esse nome será chamado deSERVER_TLS_POLICY_NAME
na próxima etapa.Para anexar o arquivo de recurso
ServerTlsPolicy
TARGET_PROXY_FILENAME
, use o comando a seguir. SubstituaPROJECT_ID
pelo ID do projeto do Google Cloud.echo "serverTlsPolicy: //networksecurity.googleapis.com/projects/PROJECT_ID/locations/REGION/serverTlsPolicies/SERVER_TLS_POLICY_NAME" >> TARGET_PROXY_FILENAME
Para importar a configuração de um proxy HTTPS de destino de um arquivo, use o comando
gcloud beta compute target-https-proxies import
.global
gcloud beta compute target-https-proxies import TARGET_HTTPS_PROXY_NAME \ --source=TARGET_PROXY_FILENAME \ --global
Substitua:
TARGET_HTTPS_PROXY_NAME
: o nome do proxy de destino.TARGET_PROXY_FILENAME
: o nome de um arquivo yaml. Por exemplo,mtls_target_proxy.yaml
.
Adicionar cabeçalhos personalizados mTLS
Com o mTLS ativado, é possível usar cabeçalhos personalizados para transmitir informações sobre a conexão do mTLS para os serviços de back-end. Você também pode ativar o registro para que as falhas de conexão mTLS sejam capturadas nos registros.Para listar todos os serviços de back-end no projeto, use o comando
gcloud compute backend-services list
:gcloud compute backend-services list
Anote o nome do serviço de back-end para ativar os cabeçalhos e a geração de registros personalizados. Esse nome é chamado de
BACKEND_SERVICE
na etapa a seguir.Para atualizar o serviço de back-end, use o 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}'
A seguir
- Configurar o TLS mútuo para um balanceador de carga de aplicativo externo global
- Configurar o TLS mútuo com uma CA particular
- Configurar o TLS mútuo com certificados fornecidos pelo usuário
- Ver registros para validação do certificado do cliente mTLS
- Limpar uma configuração de balanceamento de carga