Sobre o proxy de autenticação do AlloyDB

Nesta página, você encontra uma visão geral do proxy de autenticação do AlloyDB, um conector que permite fazer conexões criptografadas e autorizadas com bancos de dados do AlloyDB.

Para um guia detalhado sobre como usar o proxy de autenticação, consulte Conectar usando o proxy de autenticação do AlloyDB.

Benefícios de usar o proxy de autenticação do AlloyDB

O proxy de autenticação oferece estas vantagens em relação à conexão direta de clientes aos bancos de dados do AlloyDB:

  • Autorização de conexão com base no IAM (AuthZ): o proxy de autenticação usa as credenciais e permissões de um principal do Identity and Access Management (IAM) para autorizar conexões com instâncias do AlloyDB.

  • Comunicação criptografada e segura:o proxy de autenticação cria, usa e mantém automaticamente uma conexão TLS 1.3 usando uma criptografia AES de 256 bits entre o cliente e uma instância do AlloyDB para verificar as identidades do cliente e do servidor e criptografar o tráfego de dados.

Para mais informações sobre como se conectar a instâncias do AlloyDB, consulte Visão geral da conexão.

Como o proxy de autenticação do AlloyDB funciona

O proxy de autenticação do AlloyDB funciona com um cliente local em execução no ambiente local. O aplicativo se comunica com o proxy de autenticação do AlloyDB com o protocolo de banco de dados padrão usado por seu banco de dados.

O proxy de autenticação do AlloyDB usa um túnel seguro (TLS 1.3, criptografia AES de 256 bits) para se comunicar com o processo complementar em execução no servidor. Cada conexão estabelecida pelo proxy de autenticação do AlloyDB cria uma conexão com a instância do AlloyDB.

Quando um aplicativo se conecta ao proxy de autenticação do AlloyDB, ele verifica se uma conexão entre ele e a instância de destino do AlloyDB está disponível. Se não houver uma conexão, ela vai chamar as APIs AlloyDB Admin para receber um certificado SSL temporário e usá-lo para se conectar ao AlloyDB. Os certificados SSL temporários expiram em 24 horas. O proxy de autenticação do AlloyDB atualiza esses certificados antes que eles expirem.

O proxy de autenticação do AlloyDB chama APIs pelo nome de domínio alloydb.googleapis.com usando HTTPS. Como resultado, todas as conexões TCP de saída na porta 443 (HTTPS) da máquina cliente precisam ser permitidas pelo firewall.

Embora o proxy de autenticação do AlloyDB possa fazer detecções em qualquer porta, ele cria conexões de entrada ou de saída com a instância do AlloyDB somente na porta 5433. Se o host do cliente tiver um firewall de saída, ele precisará permitir conexões com a porta 5433 no endereço IP da instância do AlloyDB. O host do cliente também precisa permitir conexões à porta 443, que é a porta HTTPS padrão, para todos os endereços IP.

Como o proxy de autenticação do AlloyDB autoriza principais do IAM

Para autorizar a conexão de um cliente a uma instância do AlloyDB, o cliente do proxy de autenticação faz a autenticação em Google Cloud usando as credenciais do principal do IAM no cliente e valida se o principal do IAM tem os papéis do IAM de cliente do AlloyDB no Cloud (roles/alloydb.client) e consumidor de uso do serviço (roles/serviceusage.serviceUsageConsumer).

Para localizar as credenciais do IAM no cliente, o cliente do proxy de autenticação verifica cada um dos itens a seguir, usando o primeiro que encontra para tentar a autenticação no Google Cloud:

  1. Credenciais fornecidas pela flag --credentials-file

    Use uma conta de serviço para criar e fazer o download do arquivo de chave JSON associado e defina a flag --credentials-file para o caminho do arquivo ao iniciar o cliente do proxy de autenticação. A conta de serviço precisa ter os papéis do IAM Cliente do Cloud AlloyDB (roles/alloydb.client) e Consumidor do Service Usage (roles/serviceusage.serviceUsageConsumer) para a instância do AlloyDB.

    Para usar essa opção na linha de comando, invoque o comando alloydb-auth-proxy com a flag --credentials-file definida para o caminho e o nome de um arquivo de credencial JSON. O caminho pode ser absoluto ou relativo ao diretório de trabalho atual.

  2. Credenciais fornecidas pela flag --token

    Crie um token de acesso e invoque o comentário alloydb-auth-proxy com a flag --token definida como um token de acesso do OAuth 2.0.

  3. Credenciais fornecidas por uma variável de ambiente

    Essa opção é semelhante a usar a flag --credentials-file, mas, neste caso você especifica o arquivo de credencial JSON definido na variável de ambiente GOOGLE_APPLICATION_CREDENTIALS em vez de usar a flag --credentials-file.

  4. Credenciais de um cliente autenticado da Google Cloud CLI

    Se você instalou a gcloud CLI e autenticou com sua conta pessoal, o cliente do proxy de autenticação poderá usar as mesmas credenciais de conta se você ativar a flag --gcloud-auth. Esse método é especialmente útil para colocar um ambiente de desenvolvimento em funcionamento.

    Se nenhuma conta foi selecionada para gcloud auth login, o cliente do proxy de autenticação verifica se há uma conta selecionada para gcloud auth application-default login. Esse é o comportamento padrão quando você não ativa a flag --gcloud-auth.

  5. Credenciais associadas à instância do Compute Engine

    Se você estiver usando uma instância do Compute Engine para se conectar ao AlloyDB, o cliente do proxy de autenticação poderá usar a conta de serviço associada à instância do Compute Engine. Se a conta de serviço tiver os papéis Identity and Access Management (IAM) Cliente do Cloud AlloyDB (roles/alloydb.client) e Consumidor de uso do serviço (roles/serviceusage.serviceUsageConsumer) para a instância do AlloyDB, o cliente do Auth Proxy será autenticado com êxito.

    Se a instância do Compute Engine estiver no mesmo projeto que a instância do AlloyDB, a conta de serviço padrão da primeira terá as permissões necessárias para autenticar o AlloyDB. Se as duas instâncias estiverem em projetos diferentes, adicione a conta de serviço da instância do Compute Engine ao projeto que contém a instância do AlloyDB.

  6. Conta de serviço padrão do ambiente

    Se o cliente do proxy de autenticação não conseguir encontrar credenciais em nenhum dos locais cobertos anteriormente, ele seguirá a lógica documentada em Autenticar como uma conta de serviço. Alguns ambientes (como Compute Engine, App Engine e outros) fornecem uma conta de serviço padrão que o aplicativo pode usar para autenticar por padrão. Se você usar uma conta de serviço padrão, ela precisará ter os papéis do IAM Cliente do AlloyDB no Cloud (roles/alloydb.client) e Consumidor do Service Usage (roles/serviceusage.serviceUsageConsumer).

    Para mais informações sobre a abordagem de autenticação do Google Cloud, consulte Visão geral da autenticação.

A seguir