Nesta página, fornecemos instruções para criar uma autoridade de certificação (CA, na sigla em inglês) particular usando o Certificate Authority Service e fazendo upload dos certificados para um recurso TrustConfig
do Gerenciador de certificados.
Você também cria os recursos de segurança de rede necessários para configurar o TLS mútuo para balanceadores de carga de aplicativos.
Antes de começar
- Leia a Visão geral do TLS mútuo.
Instale a Google Cloud CLI. Para uma visão geral completa da ferramenta, consulte Visão geral da CLI gcloud. Encontre os comandos relacionados ao balanceamento de carga na referência da CLI gcloud e da API.
Se você ainda não executou a CLI gcloud, primeiro execute
gcloud init
para autenticar.Verifique se você sabe criar pools de CA.
Permissões
Para ter as permissões necessárias para concluir este guia, peça ao administrador para conceder a você os papéis do IAM a seguir no projeto:
- Para criar recursos do balanceador de carga, como
TargetHTTPProxy
: Administrador do balanceador de carga do Compute (roles/compute.loadBalancerAdmin
) - Para usar os recursos do Gerenciador de certificados:
Proprietário do Gerenciador de certificados (
roles/certificatemanager.owner
) - Para criar componentes de segurança e rede:
Administrador de rede do Compute (
roles/compute.networkAdmin
) e Administrador de segurança do Compute (roles/compute.securityAdmin
) - Para criar um projeto (opcional):
Criador de projetos (
roles/resourcemanager.projectCreator
)
Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.
Também é possível conseguir as permissões necessárias com papéis personalizados ou outros papéis predefinidos.
Criar um CA particular
Crie uma CA particular usando o serviço de CA e, em seguida, crie um certificado raiz:
Para criar um pool de CAs, use o comando
gcloud privateca pools create
:gcloud privateca pools create CA_POOL \ --location=us-central1
Substitua
CA_POOL
pelo ID ou nome do pool de CAs pai.Para criar uma CA particular no pool de CAs, use o comando
gcloud privateca roots create
:gcloud privateca roots create CA_ROOT \ --pool=CA_POOL \ --subject="CN=my-ca, O=Test LLC" \ --location=us-central1
Substitua:
CA_ROOT
: o ID ou o nome do CA particularCA_POOL
: o ID ou nome do pool de CAs principais
Para descrever o novo CA e criar o arquivo
root.cert
, use o comandogcloud privateca roots describe
:gcloud privateca roots describe CA_ROOT \ --pool=CA_POOL \ --location=us-central1 \ --format='value(pemCaCertificates)' > root.cert
export ROOT=$(cat root.cert | sed 's/^[ ]*//g' | tr '\n' $ | sed 's/\$/\\n/g')
Substitua:
CA_ROOT
: o ID ou o nome do CA particularCA_POOL
: o ID ou nome do pool de CAs principais
Para ver mais informações, consulte os seguintes tópicos:
Criar TrustConfig com CA particular
Crie um recurso TrustConfig
do Gerenciador de certificados
que represente sua ICP usando o certificado raiz gerado
usando o CA particular. Presumimos que o recurso TrustConfig
seja um
armazenamento de confiança simples com uma única âncora de confiança que representa um certificado
raiz.
Nas etapas a seguir, substitua TRUST_CONFIG_NAME
pelo nome do recurso TrustConfig
.
Para criar o arquivo
trust_config.yaml
, use o seguinte comando:cat << EOF > trust_config.yaml name: TRUST_CONFIG_NAME trustStores: - trustAnchors: - pemCertificate: "${ROOT?}" EOF
Para criar os recursos
TrustConfig
do Gerenciador de certificados, use o comandogcloud certificate-manager trust-configs import
:gcloud certificate-manager trust-configs import TRUST_CONFIG_NAME \ --source=trust_config.yaml \ --location=REGION
Substitua:
REGION
: useglobal
para o balanceador de carga de aplicativo interno entre regiões, o balanceador de carga de aplicativo externo global ou o balanceador de carga de aplicativo clássico. Para o balanceador de carga de aplicativo externo regional ou o balanceador de carga de aplicativo interno regional, use a região em que você configurou o balanceador de carga.
Criar os recursos de segurança de rede
Uma política de TLS do servidor (recurso de segurança de rede ServerTLSPolicy
) permite especificar o modo TLS do lado do servidor e o recurso TrustConfig
a ser usado ao validar certificados de cliente. Quando o cliente apresenta um certificado
inválido ou nenhum certificado para o balanceador de carga, o
clientValidationMode
especifica como a conexão do cliente é processada.
- Quando
clientValidationMode
é definido comoALLOW_INVALID_OR_MISSING_CLIENT_CERT
, todas as solicitações são transmitidas para o back-end, mesmo que a validação falhe ou o certificado do cliente esteja ausente. - Quando
clientValidationMode
for definido comoREJECT_INVALID
, somente as solicitações que fornecerem um certificado de cliente que possa ser validado por um recursoTrustConfig
serão transmitidas para o back-end.
Para criar o recurso ServerTLSPolicy
, conclua as etapas a seguir:
Com base em como você quer lidar com a conexão, selecione uma das opções a seguir.
Nas etapas a seguir, substitua
SERVER_TLS_POLICY_NAME
pelo nome da política de TLS do servidor ePROJECT_ID
pelo ID do projeto do Google Cloud.Opção 1:
clientValidationMode
está definido comoALLOW_INVALID_OR_MISSING_CLIENT_CERT
.Para criar o arquivo
server_tls_policy.yaml
, use o seguinte comando:global
Para balanceadores de carga de aplicativo externos e internos entre regiões, use o comando:
cat << EOF > server_tls_policy.yaml name: SERVER_TLS_POLICY_NAME mtlsPolicy: clientValidationMode: ALLOW_INVALID_OR_MISSING_CLIENT_CERT clientValidationTrustConfig: projects/PROJECT_ID/locations/global/trustConfigs/TRUST_CONFIG_NAME EOF
regional
Use o comando para balanceadores de carga de aplicativo externos regionais e balanceadores de carga de aplicativo internos regionais:
cat << EOF > server_tls_policy.yaml name: SERVER_TLS_POLICY_NAME mtlsPolicy: clientValidationMode: ALLOW_INVALID_OR_MISSING_CLIENT_CERT clientValidationTrustConfig: projects/PROJECT_ID/locations/REGION/trustConfigs/TRUST_CONFIG_NAME EOF
Opção 2:
clientValidationMode
está definido comoREJECT_INVALID
.Para criar o arquivo
server_tls_policy.yaml
, use o seguinte comando:global
Para balanceadores de carga de aplicativo externos e internos entre regiões, use o comando:
cat << EOF > server_tls_policy.yaml name: SERVER_TLS_POLICY_NAME mtlsPolicy: clientValidationMode: REJECT_INVALID clientValidationTrustConfig: projects/PROJECT_ID/locations/global/trustConfigs/TRUST_CONFIG_NAME EOF
regional
Use o comando para balanceadores de carga de aplicativo externos regionais e balanceadores de carga de aplicativo internos regionais:
cat << EOF > server_tls_policy.yaml name: SERVER_TLS_POLICY_NAME mtlsPolicy: clientValidationMode: REJECT_INVALID clientValidationTrustConfig: projects/PROJECT_ID/locations/REGION/trustConfigs/TRUST_CONFIG_NAME EOF
Para criar o recurso
ServerTlsPolicy
, use o comandogcloud network-security server-tls-policies import
:global
Para balanceadores de carga de aplicativo externos e internos entre regiões, use o comando:
gcloud network-security server-tls-policies import SERVER_TLS_POLICY_NAME \ --source=server_tls_policy.yaml \ --location=global
regional
Use o comando para balanceadores de carga de aplicativo externos regionais e balanceadores de carga de aplicativo internos regionais:
gcloud network-security server-tls-policies import SERVER_TLS_POLICY_NAME \ --source=server_tls_policy.yaml \ --location=REGION
Para mais informações, consulte Modos de validação de cliente MTLS.
A seguir
- Configurar o TLS mútuo para um balanceador de carga de aplicativo externo global
- Configurar o TLS mútuo para um balanceador de carga de aplicativo clássico
- Configurar o TLS mútuo para um balanceador de carga de aplicativo interno
- Configurar o TLS mútuo para um balanceador de carga de aplicativo externo
- Configurar o TLS mútuo com certificados assinados