A autenticação de banco de dados do Identity and Access Management (IAM) permite controlar e gerenciar o acesso aos bancos de dados do AlloyDB para PostgreSQL usando políticas centralizadas do IAM, em vez de senhas de banco de dados.
A autenticação do banco de dados do IAM oferece as seguintes opções:
- Autenticação individual do IAM: você adiciona usuários ou contas de serviço específicos ao cluster.
- Autenticação do IAM de grupo: você adiciona um grupo do IAM ao cluster, e todos os membros desse grupo herdam permissões para autenticação.
A autenticação individual é útil quando você precisa conceder acesso diretamente a contas específicas. A autenticação de grupo permite gerenciar o acesso ao banco de dados modificando a associação ao grupo, reduzindo a necessidade de adicionar ou remover usuários individuais no nível do cluster.
Conceitos da autenticação do IAM
Ao usar a autenticação do IAM, a permissão para acessar uma instância do AlloyDB não é concedida diretamente ao usuário final. Em vez disso, as permissões são agrupadas em papéis, que são concedidos aos principais. Para mais informações sobre papéis e permissões do IAM, consulte a visão geral do IAM.
Os administradores que têm usuários que fazem login por meio da autenticação do banco de dados do IAM podem usar o IAM para gerenciar centralmente o controle de acesso às instâncias usando políticas do IAM.
As políticas do IAM envolvem as seguintes entidades:
Principais: no AlloyDB, é possível usar uma conta de usuário, uma conta de serviço para aplicativos ou um grupo do IAM. Para mais informações sobre principais, consulte Principais.
Papéis: para a autenticação do banco de dados do IAM, um principal requer a permissão
alloydb.users.login, que está incluída no papel de usuário do banco de dados do AlloyDB (roles/alloydb.databaseUser) e no papel de consumidor do Service Usage (roles/serviceusage.serviceUsageConsumer). Para conceder essas permissões, vincule o usuário, a conta de serviço ou o grupo a esses papéis predefinidos ou a um papel personalizado que inclua as permissões necessárias. Para mais informações sobre papéis e permissões, consulte Permissões e papéis.Recursos: os recursos que os principais acessam são clusters do AlloyDB. As vinculações de política do IAM são aplicadas no nível do projeto, para que os principais recebam permissões de papel para todas as instâncias do AlloyDB no projeto. Para saber mais sobre recursos, consulte Recursos.
Comparar opções de autenticação de banco de dados
Use a tabela a seguir para decidir qual método de autenticação é o mais adequado para seu caso de uso.
| Recurso | Autenticação de banco de dados integrada | Autenticação do banco de dados do IAM |
|---|---|---|
| Método de autenticação | Senha | Token de autenticação temporário |
| Criptografia de tráfego de rede | SSL não obrigatório | SSL obrigatório |
| Gerenciamento de usuários | Manual | Centralizado pelo IAM |
Autenticação automática e manual do banco de dados do IAM
O AlloyDB oferece dois métodos para autenticação de banco de dados do IAM: automático e manual.
Autenticação automática do banco de dados do IAM
A autenticação automática do banco de dados do IAM permite transferir a solicitação e o gerenciamento de tokens de acesso para um conector intermediário do AlloyDB, como o Auth Proxy ou um dos Language Connectors.
Com a autenticação automática do banco de dados do IAM, um aplicativo precisa transmitir apenas o nome de usuário do banco de dados do IAM em uma solicitação de conexão do cliente. O conector envia as informações do token de acesso para o atributo de senha em nome do cliente.
Autenticação manual do banco de dados do IAM
A autenticação manual do banco de dados do IAM exige que o principal do IAM transmita explicitamente o token de acesso para o atributo de senha na solicitação de conexão do cliente. Os principais precisam primeiro fazer login no Google Cloud e solicitar explicitamente o token de acesso pelo IAM.
Para manter registros de acesso a dados, incluindo logins, use os Registros de Auditoria do Cloud. Os Registros de Auditoria do Cloud estão desativados por padrão. Ative os registros de auditoria de acesso a dados para rastrear logins.
Autenticação de grupo do IAM
A autenticação de grupo do IAM permite gerenciar usuários do AlloyDB em nível de grupo em clusters novos e atuais, como usando um grupo do Cloud Identity. É possível gerenciar papéis e permissões do PostgreSQL para vários usuários do IAM ao mesmo tempo, em vez de atualizar cada usuário ou conta de serviço individualmente. Quando você concede ou revoga papéis de banco de dados para um grupo do Cloud Identity, todas as contas adicionadas a esse grupo herdam os privilégios e papéis do grupo.
Para ativar a autenticação de grupo do IAM em uma instância, defina as flags de banco de dados alloydb.iam_authentication e alloydb.iam_group_authentication como on.
Com a autenticação de grupo do IAM, você pode fazer o seguinte:
Ative a autenticação de grupo em clusters novos e atuais sem aplicar patches manuais.
Adicione um usuário a um grupo para que ele herde automaticamente os papéis do IAM e os privilégios do banco de dados.
Remova um usuário de um grupo para revogar o acesso de login e os privilégios de banco de dados em clusters do AlloyDB.
Conceda ou revogue permissões de login e acesso a objetos de banco de dados para um grupo inteiro de uma só vez, em vez de atualizar contas individuais.
Faça login diretamente no AlloyDB Studio no console do Google Cloud , nas instâncias primárias ou nas instâncias do pool de leitura, incluindo os primeiros logins diretamente nas instâncias do pool de leitura sem se conectar primeiro à instância primária.
Restaure ou migre um cluster do AlloyDB de um backup do Cloud SQL para PostgreSQL enquanto mapeia e preserva as configurações de usuários individuais e de grupos do IAM.
Embora os papéis e as permissões do IAM sejam atribuídos no nível do grupo, os usuários e as contas de serviço usam as próprias contas e credenciais do IAM individuais, e não uma conta de grupo compartilhada, para fazer login em instâncias primárias, instâncias de pool de leitura ou no AlloyDB Studio. O AlloyDB cria uma conta de banco de dados no cluster para esse principal durante o primeiro login.
O login individual e a atividade do banco de dados de cada usuário ou conta de serviço aparecem nos registros de auditoria, permitindo que você verifique qual conta realizou cada ação no banco de dados.
Para mais informações sobre como trabalhar com grupos do Cloud Identity, consulte a Visão geral do Cloud Identity. Para mais informações sobre como migrar de um backup do Cloud SQL para PostgreSQL, consulte Migrar do Cloud SQL para PostgreSQL para o AlloyDB.
Quando você adiciona um usuário ou uma conta de serviço a um grupo, ocorrem as seguintes alterações no AlloyDB:
Se você já tiver concedido permissões de login do IAM ao grupo, o usuário ou a conta de serviço poderá fazer login no cluster do AlloyDB porque o usuário ou a conta de serviço pertence ao grupo.
O usuário herda automaticamente todos os privilégios de banco de dados ou papéis concedidos ao grupo.
Quando você remove um usuário ou uma conta de serviço do grupo, ocorrem as seguintes alterações no AlloyDB:
- O usuário perde todos os privilégios de banco de dados herdados anteriormente por ser um membro do grupo.
- O usuário ainda poderá criar novas sessões se receber permissões de login do IAM para o cluster do AlloyDB por meio de outras associações a grupos. No entanto, o usuário não terá privilégios de banco de dados da antiga associação ao grupo durante o login.
Práticas recomendadas
Siga estas práticas recomendadas ao usar a autenticação de grupo do IAM:
Ao revogar o papel
roles/alloydb.databaseUserde um grupo do IAM no IAM, exclua o grupo do cluster do AlloyDB.Ao excluir um grupo do Cloud Identity, exclua-o também do cluster do AlloyDB.
Use grupos para configurar o controle de acesso baseado em papéis no seu banco de dados. Forneça o mínimo de privilégios necessários ao grupo.
Limitações
A autenticação de grupo do IAM tem as seguintes limitações:
A autenticação de grupo do IAM só é compatível com a versão
POSTGRES_15e mais recentes do banco de dados.Para garantir a segurança, os logins que usam a autenticação de banco de dados do IAM estão disponíveis apenas em uma conexão SSL. As conexões não criptografadas são rejeitadas.
Há uma cota de login por minuto para cada instância, o que inclui logins bem-sucedidos e com falha. Quando a cota é excedida, os logins ficam temporariamente indisponíveis. Evite logins frequentes e restrinja-os usando redes autorizadas.
O principal encurtado de uma conta de serviço, que é o endereço de e-mail sem o sufixo
., não pode exceder 63 caracteres. O PostgreSQL trunca nomes de papéis com mais de 63 caracteres no catálogo do banco de dados, o que faz com que a autenticação do IAM falhe. Se não for possível encurtar o nome da conta de serviço, consulte a solução alternativa de identidade temporária de conta de serviço.É possível adicionar até 200 grupos do IAM a um cluster.
Não é possível adicionar contas de serviço ou usuários do IAM individuais que pertençam a um grupo no mesmo cluster. Em outras palavras, não é possível adicionar uma conta com o tipo
ALLOYDB_IAM_USERse já existir uma conta idêntica com o tipoALLOYDB_IAM_GROUP_USERouALLOYDB_IAM_GROUP_SERVICE_ACCOUNT.Se já existir uma conta individual em um cluster com o tipo
ALLOYDB_IAM_USER, não será possível usar a conta para a autenticação de grupo do IAM. Esses tipos de usuários não herdam os papéis do IAM e os privilégios do banco de dados de um grupo. Para corrigir esse problema e usar a conta com autenticação de grupo do IAM, remova o usuário individual do IAM ou a conta de serviço. Para mais informações sobre como resolver esse problema, consulte Uma conta não está herdando privilégios.As alterações na associação ao grupo do Cloud Identity, como a adição de uma conta, levam cerca de 15 minutos para serem propagadas. Esse tempo de propagação é somado ao tempo necessário para alterações do IAM.
A autenticação de grupo do IAM exige que todas as flags de banco de dados relacionadas a senhas que controlam o número mínimo de caracteres, caracteres numéricos e comprimento mínimo sejam relaxadas ou desativadas.
A autenticação de grupo do IAM não é compatível com o pool de conexões gerenciado ou com as conexões do PgBouncer.
A autenticação de grupo do IAM não é compatível com identidades federadas.