Delegar e controlar o gerenciamento de senhas de usuários
Como DBA, talvez você queira delegar o gerenciamento de senhas de usuários. Ou talvez você queira impedir que os usuários do banco de dados alterem senhas ou reconfigurem restrições de senha, como o tempo de vida da senha. Para garantir que somente os usuários do banco de dados escolhidos possam alterar as configurações de senha, é possível ativar o recurso de gerenciamento restrito de senhas. Quando você ativa esse recurso, somente os usuários do banco de dados que receberam o perfil rds_password
podem gerenciar senhas.
nota
Para usar o gerenciamento restrito de senhas, a instância de banco de dados do RDS para PostgreSQL deve estar executando o Amazon Aurora PostgreSQL 10.6 ou superior.
Por padrão, esse recurso está off
, conforme mostrado a seguir:
postgres=>
SHOW rds.restrict_password_commands;
rds.restrict_password_commands -------------------------------- off (1 row)
Para ativar esse recurso, use um grupo de parâmetros personalizado e altere a configuração de rds.restrict_password_commands
para 1. Reinicialize a instância de banco de dados do RDS para PostgreSQL para que a configuração entre em vigor.
Com esse recurso ativo, os privilégios de rds_password
são necessários para os seguintes comandos SQL:
CREATE ROLE myrole WITH PASSWORD 'mypassword';
CREATE ROLE myrole WITH PASSWORD 'mypassword' VALID UNTIL '2023-01-01';
ALTER ROLE myrole WITH PASSWORD 'mypassword' VALID UNTIL '2023-01-01';
ALTER ROLE myrole WITH PASSWORD 'mypassword';
ALTER ROLE myrole VALID UNTIL '2023-01-01';
ALTER ROLE myrole RENAME TO myrole2;
A renomeação de um perfil (ALTER ROLE myrole RENAME TO newname
) também será restrita se a senha usar o algoritmo de hash MD5.
Com esse recurso ativo, qualquer tentativa de executar um desses comandos SQL sem as permissões do perfil rds_password
gerará o seguinte erro:
ERROR: must be a member of rds_password to alter passwords
Recomendamos conceder a rds_password
a apenas alguns perfis usados exclusivamente para o gerenciamento de senhas. Se você conceder privilégios de rds_password
a usuários de banco de dados que não têm privilégios de rds_superuser
, também precisará conceder o atributo CREATEROLE
a eles.
Verifique os requisitos de senha, como expiração e complexidade necessária, no lado do cliente. Se você usar seu próprio utilitário do lado do cliente para alterações relacionadas a senhas, o utilitário precisará ser membro de rds_password
e ter privilégios de CREATE ROLE
.