Sobre o proxy de autenticação do AlloyDB

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:

  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 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.

  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 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 para gcloud auth application-default login.

  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 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.

  6. 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.

A seguir