Esta página oferece uma visão geral do proxy de autenticação do AlloyDB, um conector que permite fazer conexões autorizadas e criptografadas com bancos de dados do AlloyDB.
Para um guia passo a passo sobre como usar o proxy de autenticação, consulte Conectar usando o proxy de autenticação do AlloyDB.
Visão geral
O proxy de autenticação oferece estas vantagens em relação à conexão de clientes diretamente 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 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, ele 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 da expiração deles.
Embora o proxy de autenticação do AlloyDB possa detectar em qualquer porta, ele cria conexões de entrada ou de saída
com a instância do AlloyDB somente na porta 5433. Como
o proxy de autenticação do AlloyDB chama APIs pelo nome de domínio alloydb.googleapis.com
,
que não tem um endereço IP fixo, todas as conexões TCP de saída na porta 443
precisam ser permitidas. Se a máquina cliente tiver uma política de firewall de saída, verifique se ela permite conexões de saída com a porta 5433 no IP da instância
do AlloyDB.
Como o proxy de autenticação do AlloyDB autoriza os principais usuários 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, em seguida, valida se o principal do IAM tem as
funções do IAM do cliente do AlloyDB do Cloud (roles/alloydb.client
) e do consumidor de uso do serviço
(roles/serviceusage.serviceUsageConsumer
).
Para localizar as credenciais do IAM no cliente, o cliente do Auth Proxy verifica cada um dos itens a seguir, usando o primeiro que encontra para tentar a autenticação para Google Cloud:
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 Auth Proxy. A conta de serviço precisa ter os papéis do IAM Cliente do Cloud AlloyDB (roles/alloydb.client
) e Consumidor de uso do serviço (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.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.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 ambienteGOOGLE_APPLICATION_CREDENTIALS
em vez de usar a flag--credentials-file
.Credenciais de um cliente autenticado da CLI do Google Cloud
Se você instalou a CLI gcloud e autenticou com sua conta pessoal, o cliente do proxy de autenticação poderá usar as mesmas credenciais da conta. Esse método é especialmente útil para colocar um ambiente para desenvolvedores em funcionamento.
Se nenhuma conta foi selecionada para
gcloud auth login
, o cliente do Auth Proxy verifica se há uma conta selecionada paragcloud auth application-default login
.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 a essa instância. Se a conta de serviço tiver os papéis do IAM de cliente do Cloud AlloyDB (
roles/alloydb.client
) e consumidor do Service Usage (roles/serviceusage.serviceUsageConsumer
) para a instância do AlloyDB, o cliente do Auth Proxy será autenticado.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 instância do Compute Engine 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.
Conta de serviço padrão do ambiente
Se o cliente do proxy de autenticação não encontrar credenciais em nenhum dos lugares cobertos anteriormente, ele seguirá a lógica documentada em Como fazer a autenticação 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 Cloud AlloyDB (roles/alloydb.client
) e Consumidor de uso do serviço (roles/serviceusage.serviceUsageConsumer
).Para mais informações sobre a abordagem de autenticação do Google Cloud, consulte Visão geral da autenticação.