Nesta página, descrevemos a autenticação de banco de dados individual e em grupo do Identity and Access Management (IAM), que você usa para gerenciar o acesso aos seus bancos de dados do AlloyDB para PostgreSQL.
A autenticação de 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: você adiciona um grupo do IAM ao cluster. Todos os membros desse grupo herdam permissões para autenticar, o que simplifica o gerenciamento para vários usuários.
A autenticação individual é útil quando você precisa conceder acesso diretamente a contas específicas. Use a autenticação de grupo quando quiser gerenciar o acesso modificando a associação a grupos, 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 de 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 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 precisa da 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ões 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, para 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 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 de autenticação do banco de dados do IAM: automática 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 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 no 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 as funções 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 as funções 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 acesso.
O login individual e a atividade do banco de dados de cada usuário ou conta de serviço aparecem nos registros de auditoria. Para fins de auditoria, você consegue verificar qual conta executou qual ação no seu 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, ocorrem as seguintes mudanças 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, ocorrem as seguintes mudanças 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, 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 em Pré-lançamento para novos clusters do AlloyDB. Para ativar esse recurso em um cluster existente, entre em contato com a equipe de conta do Google Cloud.
- A autenticação de grupo do IAM só é compatível com a versão
POSTGRES_15do banco de dados e mais recentes no pré-lançamento. - Para oferecer suporte à segurança, os logins com a autenticação de 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 logins 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 restringir os logins usando redes autorizadas.
- O principal abreviado de uma conta de serviço, que é o endereço de e-mail
sem o sufixo
.gserviceaccount.com, 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 causa falha na autenticação do IAM. Se não for possível encurtar o nome da conta de serviço, consulte a solução alternativa para a identidade temporária de conta de serviço. - 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 principal antes de fazer login na instância da réplica de leitura. Após seu primeiro login na instância principal, 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 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 mudanças 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 é compatível com o pool de conexões gerenciado.
A autenticação de grupo do IAM não é compatível com identidades federadas.