Nesta página, mostramos exemplos de como configurar o TLS mútuo (mTLS) para um balanceador de carga de aplicativo externo regional.
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.
- Configurar TLS mútuo com certificados fornecidos pelo usuário.
- Os balanceadores de carga de aplicativo externos regionais são compatíveis com diferentes serviços e buckets de back-end. Verifique se você configurou um balanceador de carga de aplicativo externo regionais com um dos seguintes back-ends compatíveis:
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
.regional
gcloud beta compute target-https-proxies export TARGET_HTTPS_PROXY_NAME \ --destination=TARGET_PROXY_FILENAME \ --region=REGION
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
REGION
: a região em que você configurou o balanceador de carga.
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
: a região em que você configurou o balanceador de carga. Para balanceadores de carga de aplicativo internos entre regiões, 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
.regional
gcloud beta compute target-https-proxies import TARGET_HTTPS_PROXY_NAME \ --source=TARGET_PROXY_FILENAME \ --region=REGION
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
REGION
: a região em que você configurou o balanceador de carga.
Adicionar cabeçalhos personalizados mTLS
Com o mTLS ativado, é possível usar cabeçalhos personalizados para transmitir informações sobre a conexão mTLS para o mapa de URL. Você também pode ativar o registro para que as falhas de conexão mTLS sejam capturadas nos registros.Para listar todos os mapas de URL no projeto, use o
comando gcloud beta compute url-maps list
:
gcloud beta compute url-maps list
Anote o nome do mapa de URL para ativar cabeçalhos personalizados e geração de registros.
Esse nome é chamado de URL_MAP_NAME
na etapa a seguir.
regional
gcloud compute url-maps edit URL_MAP_NAME --region=REGION
Veja a seguir um exemplo de arquivo YAML que mostra como usar variáveis em cabeçalhos de solicitações personalizadas (requestHeadersToAdd
). É possível usar as mesmas variáveis para enviar cabeçalhos de resposta 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}"
A seguir
- 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