É possível definir e gerenciar políticas de senha para usuários de banco de dados das instâncias do AlloyDB para PostgreSQL.
Para uma visão geral dos métodos de autenticação disponíveis no AlloyDB, consulte Autenticação.
Sobre as políticas de senha
Se os usuários do banco de dados do seu aplicativo se autenticarem com as instâncias do AlloyDB usando o método integrado baseado em senha, você poderá tornar a autenticação mais segura exigindo senhas fortes. É possível definir e ativar a aplicação de senhas definindo uma política de senha nas suas instâncias.
Limitações das políticas de senha
As políticas de senhas do AlloyDB têm as seguintes limitações:
As políticas de senha são válidas apenas para senhas criadas depois que você as define. As senhas dos usuários não são afetadas por uma mudança na política de senhas.
As políticas de senha se aplicam apenas a senhas inseridas como texto simples. As políticas de senha não se aplicam a senhas inseridas como strings criptografadas.
Definir uma política de senha de instância
É possível definir uma política de senha em uma instância configurando flags de senha.
Bloquear nome de usuário: impede o uso do nome de usuário na senha.
Complexidade da senha: verifique se a senha contém o número permitido de caracteres minúsculos, maiúsculos, numéricos e não alfanuméricos. Verifique também se o comprimento da senha é válido.
Validade da senha: verifique se as senhas são trocadas periodicamente.
Para uma lista das flags de política de senha compatíveis com o AlloyDB, consulte Flags de política de senha.
Aplicar a complexidade da senha
Para aplicar uma política de complexidade de senhas, faça o seguinte:
- Defina a flag
password.enforce_complexitycomoON. - Use flags de política de senha para definir sua política de senhas.
Por exemplo, para aplicar uma política de senhas que exige que uma senha tenha pelo menos uma letra maiúscula, um número e 10 caracteres, defina as seguintes flags:
password.enforce_complexityaON- Sinalização
password.min_uppercase_letterspara1 - Sinalização
password.min_numerical_charspara1 - Sinalização
password.min_pass_lengthpara10
Depois que essas flags são definidas, uma tentativa de definir uma senha de usuário do banco de dados que
não esteja em conformidade com essa política de senha falha. Por exemplo, com essa política
definida, o comando do cliente psql a seguir falha porque a senha foo tem
menos de 10 caracteres e não contém um número ou um caractere maiúsculo.
CREATE USER USERNAME WITH PASSWORD 'foo';
Aplicar a expiração da senha
Para aplicar a política de expiração de senha, faça o seguinte:
Defina a flag
password.enforce_expirationcomoON.Defina a flag
password.expiration_in_dayscom o número de dias após a definição de uma senha para que ela expire.Defina a flag
password.notify_expiration_in_dayscom o número de dias antes da expiração de uma senha em que um usuário começa a receber notificações de expiração de senha.
Por exemplo, para aplicar uma política de senha que determina que as senhas expiram após 30 dias e que os usuários são notificados 15 dias antes do vencimento, defina o seguinte:
password.enforce_expirationaON- Sinalização
password.expiration_in_dayspara30 - Sinalização
password.notify_expiration_in_dayspara15
Se a senha de um usuário expirar, ele não poderá se conectar à instância do AlloyDB. Para redefinir a senha de um usuário, consulte Mudar a senha de um usuário do banco de dados.
Não permitir nomes de usuário em senhas
Para aplicar a política que impede que uma senha contenha um nome de usuário, faça o seguinte:
- Defina o
password.enforce_password_does_not_contain_usernamecomoON.
Por exemplo, para garantir que uma senha não contenha um nome de usuário como uma substring, defina o seguinte:
password.enforce_password_does_not_contain_usernameaON
Se essa flag estiver definida, a operação a seguir vai falhar porque a senha
alex-secret contém o nome de usuário Alex:
CREATE USER Alex WITH PASSWORD 'alex-secret';