Esta página fornece uma vista geral do AlloyDB Auth Proxy, um conector que lhe permite estabelecer ligações autorizadas e encriptadas a bases de dados do AlloyDB.
Para ver um guia passo a passo sobre como usar o proxy Auth, consulte o artigo Estabeleça ligação através do proxy Auth do AlloyDB.
Vantagens da utilização do proxy de autenticação do AlloyDB
O proxy Auth oferece estas vantagens em relação à ligação de clientes diretamente a bases de dados do AlloyDB:
Autorização de ligação baseada na IAM (AuthZ): o proxy Auth usa as credenciais e as autorizações de um principal da gestão de identidade e de acesso (IAM) para autorizar ligações a instâncias do AlloyDB.
Comunicação segura e encriptada: o proxy de autorização cria, usa e mantém automaticamente uma ligação TLS 1.3 com uma cifra AES de 256 bits entre o seu cliente e uma instância do AlloyDB para validar as identidades do cliente e do servidor, bem como encriptar o tráfego de dados.
Para mais informações sobre como estabelecer ligação a instâncias do AlloyDB, consulte a Vista geral da ligação.
Como funciona o AlloyDB Auth Proxy
O AlloyDB Auth Proxy funciona com um cliente local em execução no ambiente local. A sua aplicação comunica com o AlloyDB Auth Proxy com o protocolo de base de dados padrão usado pela sua base de dados.
O proxy de autenticação do AlloyDB usa um túnel seguro (TLS 1.3, cifra AES de 256 bits) para comunicar com o respetivo processo complementar em execução no servidor. Cada ligação estabelecida através do proxy Auth do AlloyDB cria uma ligação à instância do AlloyDB.
Quando uma aplicação se liga ao proxy Auth do AlloyDB, verifica se existe uma ligação entre esta e a instância do AlloyDB de destino. Se não existir uma ligação, chama as APIs AlloyDB Admin para obter um certificado SSL efémero e usá-lo para estabelecer ligação ao AlloyDB. Os certificados SSL efémeros expiram em 24 horas. O AlloyDB Auth Proxy atualiza estes certificados antes de expirarem.
O AlloyDB Auth Proxy chama APIs através do nome do domínio alloydb.googleapis.com
usando HTTPS. Como resultado, todas as ligações TCP de saída na porta 443 (HTTPS) do computador cliente têm de ser permitidas pela sua firewall.
Embora o AlloyDB Auth Proxy possa ouvir em qualquer porta, cria ligações de saída ou de egresso à sua instância do AlloyDB apenas na porta 5433. Se o seu anfitrião cliente tiver uma firewall de saída, tem de permitir ligações à porta 5433 no endereço IP da instância do AlloyDB. O anfitrião cliente também tem de permitir ligações à porta 443, que é a porta HTTPS padrão, a todos os endereços IP.
Como o proxy de autorização do AlloyDB autoriza os principais da IAM
Para autorizar a ligação de um cliente a uma instância do AlloyDB, o cliente do Auth Proxy autentica-se Google Cloud através das credenciais do principal do IAM Google Cloud no cliente e, em seguida, valida se o principal do IAM tem as funções do IAM de cliente do AlloyDB na nuvem (roles/alloydb.client
) e consumidor de utilização de serviços (roles/serviceusage.serviceUsageConsumer
).
Para localizar as credenciais de IAM no cliente, o cliente do proxy de autorização verifica cada um dos seguintes itens, usando o primeiro que encontrar para tentar a autenticação no Google Cloud:
- Credenciais fornecidas pela flag --credentials-file
Use uma conta de serviço para criar e transferir o ficheiro de chave JSON associado e defina a flag
--credentials-file
para o caminho do ficheiro quando iniciar o cliente do proxy de autorização. A conta de serviço tem de ter as funções do IAM de cliente do Cloud AlloyDB (roles/alloydb.client
) e consumidor de utilização de serviços (roles/serviceusage.serviceUsageConsumer
) para a instância do AlloyDB.Para usar esta opção na linha de comandos, invoque o comando
alloydb-auth-proxy
com o sinalizador--credentials-file
definido para o caminho e o nome do ficheiro de credenciais JSON. O caminho pode ser absoluto ou relativo ao diretório de trabalho atual. - Credenciais fornecidas pela flag --token
Crie uma chave de acesso e invoque o comando
alloydb-auth-proxy
com a flag--token
definida como uma chave de acesso OAuth 2.0. - Credenciais fornecidas por uma variável de ambiente
Esta opção é semelhante à utilização da flag
--credentials-file
, exceto que especifica o ficheiro de credenciais JSON que definiu na variável de ambienteGOOGLE_APPLICATION_CREDENTIALS
em vez de usar a flag--credentials-file
. - Credenciais de um cliente da CLI do Google Cloud autenticado
Se instalou a CLI gcloud e fez a autenticação com a sua conta pessoal, o cliente do proxy de autorização pode usar as mesmas credenciais da conta se ativar a flag
--gcloud-auth
. Este método é especialmente útil para colocar um ambiente de desenvolvimento em funcionamento.Se não tiver sido selecionada nenhuma conta para
gcloud auth login
, o cliente do proxy de autorização procura uma conta que tenha sido selecionada paragcloud auth application-default login
. Este é o comportamento predefinido quando não ativa a flag--gcloud-auth
. - Credenciais associadas à instância do Compute Engine
Se estiver a estabelecer ligação ao AlloyDB a partir de uma instância do Compute Engine, o cliente do Auth Proxy pode usar a conta de serviço associada à instância do Compute Engine. Se a conta de serviço tiver as funções de gestão de identidade e de acesso (IAM) de cliente do Cloud AlloyDB (
roles/alloydb.client
) e consumidor de utilização de serviços (roles/serviceusage.serviceUsageConsumer
) para a instância do AlloyDB, o cliente do proxy de autorização é 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 predefinida da instância do Compute Engine tem as autorizações necessárias para autenticar o AlloyDB. Se as duas instâncias estiverem em projetos diferentes, tem de adicionar 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 predefinida do ambiente
Se o cliente do proxy de autorização não conseguir encontrar credenciais em nenhum dos locais abordados anteriormente, segue a lógica documentada no artigo Autenticação como conta de serviço. Alguns ambientes (como o Compute Engine, o App Engine e outros) fornecem uma conta de serviço predefinida que a sua aplicação pode usar para fazer a autenticação por predefinição. Se usar uma conta de serviço predefinida, esta tem de ter as funções do IAM Cliente do Cloud AlloyDB (
roles/alloydb.client
) e Consumidor de utilização de serviços (roles/serviceusage.serviceUsageConsumer
).Para mais informações sobre a abordagem da Google Cloud à autenticação, consulte o artigo Vista geral da autenticação.
O que se segue?
- Estabeleça ligação através do proxy Auth do AlloyDB.
- Explore o Google Cloud repositório do GitHub para o proxy de autenticação do AlloyDB.