Para gerenciar de forma centralizada o acesso ao banco de dados usando credenciais do Google Cloud , configure a autenticação de banco de dados do Identity and Access Management (IAM) individual e em grupo para seus 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 do IAM de grupo: adicione um grupo do IAM ao cluster. Todos os membros desse grupo herdam permissões para autenticação, simplificando o gerenciamento de 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 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 sobre o 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 de permissão do IAM.
As políticas de permissão 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 sobre principais, consulte Principais.
Papéis. Para a autenticação do banco de dados do IAM, um principal precisa da permissão
alloydb.users.login. Essa permissão está incluída no papel de usuário do banco de dados do AlloyDB (roles/alloydb.databaseUser). 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 sobre permissões e papéis, consulte Permissões e papéis.Recurso. Os recursos que os principais acessam são clusters do AlloyDB. As vinculações de papéis 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 sobre recursos do IAM, 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 é 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 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 proxy de autenticação do AlloyDB ou um dos conectores de linguagem do AlloyDB.
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 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. 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 as 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 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 a Visão geral do Cloud Identity.
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
Ao revogar o papel de usuário do banco de dados do AlloyDB (
roles/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, 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 versões mais recentes em pré-lançamento.Para garantir a 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 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.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 comALLOYDB_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 é compatível com o pool de conexões gerenciado.
A autenticação de grupo do IAM não é compatível com identidades federadas.