Esta página descreve como pode definir e gerir políticas de palavras-passe para utilizadores da base de dados das suas instâncias do AlloyDB for PostgreSQL.
Para uma vista geral dos métodos de autenticação disponíveis no AlloyDB, consulte o artigo Autenticação.
Acerca das políticas de palavras-passe
Se os utilizadores da base de dados da sua aplicação autenticarem com as suas instâncias do AlloyDB através do método integrado baseado em palavras-passe, pode tornar a autenticação mais segura aplicando palavras-passe fortes. Pode definir e ativar a aplicação de palavras-passe definindo uma política de palavras-passe nas suas instâncias.
Limitações das políticas de palavras-passe
As políticas de palavras-passe do AlloyDB têm as seguintes limitações:
As políticas de palavra-passe aplicam-se a palavras-passe criadas apenas depois de definir as políticas. As palavras-passe dos utilizadores existentes não são afetadas por uma alteração na política de palavras-passe.
As políticas de palavras-passe aplicam-se apenas a palavras-passe introduzidas como texto simples. As políticas de palavras-passe não se aplicam a palavras-passe introduzidas como strings encriptadas.
Defina uma política de palavras-passe de instância
Pode definir uma política de palavra-passe numa instância configurando flags de palavras-passe numa instância.
Não permitir nome de utilizador: impede que o nome de utilizador seja usado na palavra-passe.
Complexidade da palavra-passe: verifique se a palavra-passe contém o número permitido de carateres minúsculos, maiúsculos, numéricos e não alfanuméricos. Verifique também se o comprimento da palavra-passe é válido.
Expiração da palavra-passe: certifique-se de que as palavras-passe são alteradas periodicamente.
Para ver uma lista das flags da política de palavras-passe suportadas pelo AlloyDB, consulte o artigo Flags da política de palavras-passe.
Aplique a complexidade da palavra-passe
Para aplicar uma política de complexidade de palavras-passe, faça o seguinte:
- Defina a flag
password.enforce_complexity
comoON
. - Use flags de política de palavras-passe para definir a sua política de palavras-passe.
Por exemplo, para aplicar uma política de palavras-passe que indique que uma palavra-passe tem de conter, pelo menos, uma letra maiúscula, um número e ter, pelo menos, 10 carateres, tem de definir as seguintes flags:
password.enforce_complexity
aON
password.min_uppercase_letters
para1
password.min_numerical_chars
para1
password.min_pass_length
para10
Depois de definir estas flags, qualquer tentativa de definir uma palavra-passe de utilizador da base de dados que não esteja em conformidade com esta política de palavras-passe falha. Por exemplo, com este conjunto de políticas, o seguinte comando de cliente psql
falha porque a palavra-passe foo
tem menos de 10 carateres e não contém um número nem um carater em maiúsculas.
CREATE USER USERNAME WITH PASSWORD 'foo';
Aplique a expiração da palavra-passe
Para aplicar a política de expiração de palavras-passe, faça o seguinte:
Defina a flag
password.enforce_expiration
comoON
.Defina a flag
password.expiration_in_days
para o número de dias após a definição de uma palavra-passe em que esta expira.Defina a flag
password.notify_expiration_in_days
para o número de dias antes de uma palavra-passe expirar em que um utilizador começa a receber notificações de expiração da palavra-passe.
Por exemplo, para aplicar uma política de palavras-passe que indique que as palavras-passe expiram após 30 dias e que os utilizadores são notificados 15 dias antes da respetiva palavra-passe expirar, defina o seguinte:
password.enforce_expiration
aON
password.expiration_in_days
para30
password.notify_expiration_in_days
para15
Se a palavra-passe de um utilizador expirar, esse utilizador não pode estabelecer ligação à instância do AlloyDB Omni. Para repor a palavra-passe de um utilizador, consulte o artigo Altere a palavra-passe de um utilizador da base de dados.
Não permitir nomes de utilizador em palavras-passe
Para aplicar a política que impede que uma palavra-passe contenha um nome de utilizador, faça o seguinte:
- Definir
password.enforce_password_does_not_contain_username
paraON
.
Por exemplo, para garantir que uma palavra-passe não contém um nome de utilizador como uma subcadeia de carateres, define o seguinte:
password.enforce_password_does_not_contain_username
aON
Se esta flag estiver definida, a operação seguinte falha porque a palavra-passe
alex-secret
contém o nome de utilizador Alex
:
CREATE USER Alex WITH PASSWORD 'alex-secret';