Faça a gestão da autenticação integrada através de políticas de palavras-passe

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:

  1. Defina a flag password.enforce_complexity como ON.
  2. 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 a ON
  • password.min_uppercase_letters para 1
  • password.min_numerical_chars para 1
  • password.min_pass_length para 10

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:

  1. Defina a flag password.enforce_expiration como ON.

  2. 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.

  3. 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 a ON
  • password.expiration_in_days para 30
  • password.notify_expiration_in_days para 15

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:

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 a ON

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';

O que se segue?