O proxy de autenticação do AlloyDB é um conector que permite estabelecer conexões autorizadas e criptografadas com os bancos de dados do AlloyDB para PostgreSQL sem gerenciar certificados SSL ou configurar regras de firewall. Para um guia explicativo sobre como usar o proxy de autenticação, consulte Conectar-se 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 as seguintes vantagens em relação à conexão de clientes diretamente aos bancos de dados do AlloyDB:
Autorização de conexão baseada no Identity and Access Management (IAM). O proxy de autenticação usa as credenciais e permissões de um principal do IAM para autorizar conexões com instâncias do AlloyDB.
Autenticação automatizada do IAM. O proxy de autenticação pode autenticar automaticamente os usuários do banco de dados com base no principal do IAM que executa o proxy.
Comunicação segura e criptografada. O proxy de autenticação cria, usa e mantém automaticamente uma conexão TLS mútua (mTLS) 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 funciona o proxy de autenticação do AlloyDB
O proxy de autenticação do AlloyDB é executado como um processo de cliente local (alloydb-auth-proxy) no
ambiente do aplicativo e detecta conexões em localhost (por
padrão, na porta TCP 5432) ou em um soquete de domínio Unix local. O aplicativo se conecta a esse listener local usando drivers e protocolos de conexão padrão do PostgreSQL, enquanto o cliente do proxy de autenticação encaminha o tráfego por um túnel criptografado (mTLS 1.3 com uma criptografia AES de 256 bits) para o processo complementar do servidor proxy de autenticação em execução na instância do AlloyDB. Cada conexão estabelecida pelo proxy de autenticação cria
uma conexão com a instância do AlloyDB.
Quando um aplicativo se conecta ao proxy de autenticação, o proxy verifica se uma conexão com a instância de destino do AlloyDB está disponível. Se não houver uma conexão, o proxy chamará a API AlloyDB para receber um certificado SSL temporário e usá-lo para estabelecer o túnel mTLS para a instância. Os certificados SSL temporários expiram em 24 horas, e o proxy de autenticação os atualiza automaticamente antes que expirem.
O proxy de autenticação chama a API AlloyDB pelo nome de domínio
alloydb.googleapis.com por HTTPS. Como resultado, o firewall precisa permitir
conexões TCP de saída na porta 443 (HTTPS) da máquina cliente.
Embora o proxy de autenticação possa detectar localmente em qualquer porta, ele cria
conexões de saída com a instância do AlloyDB somente na porta TCP
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 e com a porta
443 para todos os endereços IP.
É possível usar o proxy de autenticação em todos os caminhos de conectividade de rede do AlloyDB:
- Acesso a serviços particulares (padrão): conecta-se ao endereço IP interno da instância em uma rede de nuvem privada virtual (VPC) com peering.
- Private Service Connect: se conecta por um
endpoint do Private Service Connect e um registro DNS particular
quando você transmite a flag
--psc. - IP público: conecta-se ao endereço IP público da instância quando você transmite a
flag
--public-ip. Como o proxy de autenticação autentica e criptografa conexões usando o IAM e o mTLS na porta5433, não é necessário adicionar o endereço IP do cliente às Redes externas autorizadas ao se conectar pelo proxy de autenticação.
Como o proxy de autenticação do AlloyDB autentica e autoriza conexões
Para autorizar a conexão de um cliente a uma instância do AlloyDB, o cliente do proxy de autenticação se autentica no Google Cloud usando as credenciais do principal do IAM no cliente e, em seguida, valida se o principal do IAM tem os papéis do IAM de cliente do AlloyDB (roles/alloydb.client) e de consumidor do Service Usage (roles/serviceusage.serviceUsageConsumer).
Por padrão, o cliente do proxy de autenticação usa o Application Default Credentials (ADC) para localizar as credenciais do cliente. Isso fornece uma maneira unificada e padrão para que os aplicativos se autentiquem automaticamente sem editar ou codificar valores de configuração.
Autenticação padrão
Para configurações padrão de desenvolvimento e produção, não é necessário configurar credenciais ou flags personalizadas. O cliente do proxy de autenticação resolve automaticamente as credenciais usando caminhos de ambiente padrão. Dependendo do ambiente usado para executar o cliente do proxy de autenticação, ele localiza as credenciais nas seguintes fontes:
Desenvolvimento local. Ao desenvolver localmente, é possível autenticar usando sua Conta do Google pessoal ou corporativa. O cliente do proxy de autenticação detecta e usa essas credenciais automaticamente. Essa é a abordagem recomendada para o desenvolvimento local, evitando a necessidade de fazer o download de arquivos de chave de conta de serviço localmente. Para instruções completas sobre como configurar um ambiente de desenvolvimento local, consulte Conectar-se pelo laptop e Instalar a ferramenta de linha de comando
psql.Ambientes gerenciados pelo Google. Quando você executa o aplicativo em um serviço do Google Cloud , como instâncias do Compute Engine, Google Kubernetes Engine, Cloud Run, Cloud Run functions ou App Engine, as credenciais da conta de serviço anexada são fornecidas automaticamente pelo servidor de metadados do ambiente. O cliente do proxy de autenticação descobre e usa automaticamente essas credenciais sem configuração extra.
- Se o recurso de computação estiver no mesmo projeto que a instância do AlloyDB, a conta de serviço padrão normalmente terá as permissões necessárias para autenticação.
- Se o recurso de computação e a instância do AlloyDB estiverem em projetos diferentes, adicione a conta de serviço do recurso de computação ao projeto que contém a instância do AlloyDB e conceda a ela os papéis necessários.
Substituir credenciais
Em cenários específicos, como testes, execução fora do Google Cloudou quando você quer ignorar as credenciais do ambiente padrão, é possível substituir as credenciais usando um dos seguintes métodos:
Uma chave de conta de serviço. Forneça a chave pela variável de ambiente
GOOGLE_APPLICATION_CREDENTIALSou pela flag--credentials-file. As chaves de conta de serviço são um risco de segurança se não forem gerenciadas corretamente. Portanto, prefira uma das origens padrão sempre que possível.Um token de acesso do OAuth 2.0. Forneça o token usando a flag
--token.Credenciais da CLI gcloud. Forneça essas credenciais usando a flag
--gcloud-auth. Não recomendamos essa flag. Executegcloud auth application-default login.
Para mais informações sobre como configurar essas credenciais no cliente, consulte Conectar usando o proxy de autenticação do AlloyDB. Para informações gerais sobre a abordagem do Google Cloud para autenticação, consulte Visão geral da autenticação.
A seguir
- Conectar-se usando o Proxy de Autenticação do AlloyDB.
- Conecte-se pelo laptop.
- Instale a ferramenta de linha de comando
psql. - Acesse o Google Cloud repositório do GitHub para o proxy de autenticação do AlloyDB.