Nesta página, descrevemos a autenticação de banco de dados do Identity and Access Management (IAM) individual e de grupo, que você usa para gerenciar o acesso aos bancos de dados do AlloyDB para PostgreSQL.
A autenticação do banco de dados do IAM oferece as seguintes opções:
- Autenticação individual do IAM: adicione usuários ou contas de serviço específicos ao cluster.
- Autenticação de grupo do IAM: adicione um grupo do IAM ao cluster. Todos os membros desse grupo herdam permissões para autenticar, simplificando o gerenciamento de vários usuários.
A autenticação individual é útil quando você precisa conceder acesso a contas específicas diretamente. Use a autenticação de grupo quando quiser gerenciar o acesso modificando a associação ao grupo, o que reduz a necessidade de adicionar ou remover usuários 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 a principais. Para mais informações, consulte a visão geral do IAM.
Os administradores que têm usuários fazendo login por meio da autenticação do banco de dados do IAM podem usar o IAM para gerenciar o controle de acesso às instâncias de modo centralizado 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 ou uma conta de serviço para aplicativos. Para mais informações, consulte Principais.
Papéis. Para a autenticação do banco de dados do IAM, um principal exige a permissão alloydb.instances.login. Essa permissão está incluída no papel de cliente do AlloyDB (
roles/alloydb.client). Para receber essa permissão, vincule o usuário, a conta de serviço ou o grupo ao papel predefinido ou a um papel personalizado que inclua a permissão. Para mais informações, consulte Permissão e papéis.Recurso. 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, de modo que os principais recebam permissões de papel para todas as instâncias do AlloyDB no projeto. Para mais informações, 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 de 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 do 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 do AlloyDB intermediário, como o proxy de autenticação ou um dos conectores de linguagem.
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 em Google Cloud e solicitar explicitamente o token de acesso do IAM.
Para manter registros de acesso aos dados, incluindo logins, use os Registros de auditoria do Cloud. Os registros de auditoria do Cloud ficam desativados por padrão. Ative os registros de auditoria de acesso a dados para o acompanhamento de login.
Autenticação de grupo do IAM
A autenticação de grupo do IAM permite gerenciar usuários do AlloyDB em nível de grupo. Um exemplo de grupo inclui um grupo do Cloud Identity. Esse recurso simplifica o gerenciamento de usuários do banco de dados. É possível gerenciar os papéis ou 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. Também é possível conceder e revogar os papéis de banco de dados para um grupo do Cloud Identity. Todas as contas novas adicionadas ao grupo do Cloud Identity herdam os privilégios e papéis desse grupo.
Com a autenticação de grupo do IAM, você pode fazer o seguinte:
- Adicione um usuário a um grupo e faça com 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 remover o acesso de login e os privilégios de banco de dados dos clusters do AlloyDB.
- Conceda privilégios de login ou de banco de dados a um grupo uma única vez, em vez de precisar conceder os mesmos privilégios várias vezes a usuários diferentes.
- Remova as permissões de login ou o acesso a um objeto de banco de dados de um grupo de uma só vez.
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. 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 em registros de auditoria. Para fins de auditoria, você tem o benefício de ver qual conta executou qual ação no banco de dados.
Para mais informações sobre como trabalhar com grupos do Cloud Identity, consulte Visão geral do Cloud Identity.
Quando você adiciona um usuário ou uma conta de serviço a um grupo, as seguintes mudanças ocorrem 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 que foram concedidos ao grupo.
Quando você remove um usuário ou uma conta de serviço do grupo, as seguintes mudanças ocorrem 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 usando 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
- Quando você revoga a permissão de login (
alloydb.databaseUser) para um grupo do IAM no Cloud Identity, exclua o grupo do cluster do AlloyDB. - Ao excluir um grupo do Cloud Identity, também exclua esse grupo 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 está disponível na prévia para novos clusters do AlloyDB. Para ativar esse recurso em um cluster atual, entre em contato com a equipe de conta do Google Cloud.
- A autenticação de grupo do IAM tem suporte apenas na versão
POSTGRES_15e mais recente do banco de dados na prévia. - Para oferecer suporte à segurança, os logins com a autenticação do banco de dados do IAM estão disponíveis apenas em uma conexão SSL. Conexões não criptografadas são rejeitadas.
- Há uma cota de login por minuto para cada instância, incluindo os bem-sucedidos e os mal-sucedidos. Quando a cota é excedida, os logins ficam temporariamente indisponíveis. Recomendamos evitar logins frequentes e restringi-los usando redes autorizadas.
- Ao usar a autenticação de grupo do IAM, se você tiver um cluster do AlloyDB com réplicas de leitura, faça login na instância primária antes de fazer login na instância da réplica de leitura. Após seu primeiro login na instância primária, as informações do usuário do grupo são replicadas para as réplicas de leitura. Para logins subsequentes, faça login diretamente na réplica de leitura.
- É possível adicionar até 200 grupos do IAM a uma instância.
- Não é possível adicionar contas de serviço ou usuários do IAM individuais que pertençam a um grupo na mesma instância. 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 uma instância 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, consulte Um usuário ou uma conta de serviço do IAM não herda os privilégios de banco de dados concedidos ao grupo.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. Isso conta além do tempo necessário para alterações do IAM.
A autenticação de grupo do IAM não tem suporte com o pool de conexões gerenciado.
A autenticação de grupo do IAM não tem suporte com identidades federadas.