Sobre as políticas de senha
Se os usuários do banco de dados do aplicativo forem autenticados com o AlloyDB Omni usando o método integrado baseado em senha, você poderá tornar a autenticação mais segura aplicando senhas fortes. É possível definir e ativar a aplicação de senhas definindo uma política de senhas do AlloyDB Omni.
Limitações das políticas de senha
As políticas de senha do AlloyDB Omni têm as seguintes limitações:
As políticas de senha se aplicam apenas às senhas criadas depois que você as define. As senhas de usuário atuais não são afetadas por uma mudança na política de senhas.
As políticas de senha se aplicam apenas às 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 senhas do AlloyDB Omni
Você define uma política de senhas atualizando os parâmetros de senha da configuração unificada (GUC, na sigla em inglês) no arquivo de configuração postgresql.conf. Para saber como definir um
parâmetro GUC, consulte
Configurar flags de banco de dados do AlloyDB Omni.
Uma política de senhas para o AlloyDB Omni pode incluir as seguintes opções:
Não permitir nome de usuário: impede que o nome de usuário seja usado na senha.
Complexidade da senha: verifica se a senha contém o número permitido de caracteres minúsculos, maiúsculos, numéricos e não alfanuméricos. Também verifica se o comprimento da senha é válido.
Validade da senha: garante que as senhas sejam trocadas periodicamente.
Para uma lista das flags de política de senhas compatíveis com o AlloyDB Omni compatíveis, consulte Flags de política de senhas.
Para obedecer aos padrões de segurança e se alinhar às orientações do recomendador de segurança, é necessário ativar as três opções juntas configurando as flags de aplicação principais como ON:
password.enforce_password_does_not_contain_usernamepassword.enforce_complexitypassword.enforce_expiration
Se você definir alguma dessas três flags como OFF ou omiti-las, o recomendador de segurança vai sinalizar a instância como não tendo uma política de senhas ativada.
Pré-carregar a biblioteca de validação de senhas
Para que uma política de senhas entre em vigor no AlloyDB Omni, a biblioteca alloydb_password_validation precisa ser carregada. Para carregar essa biblioteca, faça o seguinte:
Localize o arquivo de configuração
postgresql.confpara a instalação do AlloyDB Omni e abra-o em um editor de texto.Localize a linha
shared_preload_librariese verifique se ela incluialloydb_password_validation. Se não incluir, adicione. Quando terminar, a linhashared_preload_librariesserá semelhante a esta:shared_preload_libraries='google_columnar_engine,google_job_scheduler,google_storage,alloydb_password_validation'
Aplicar complexidade de senha
Para aplicar uma política de complexidade de senha, faça o seguinte:
Verifique se o arquivo
postgresql.confpré-carrega a biblioteca de validação de senhas.Defina a
password.enforce_complexityflag comoON.Use flags de política de senhas para definir sua política de senhas.
Por exemplo, para aplicar uma política de senhas que declare que uma senha precisa conter pelo menos uma letra maiúscula, um número e ter pelo menos 10 caracteres, defina o seguinte no arquivo postgresql.conf:
password.enforce_complexity = ONpassword.min_uppercase_letters = 1password.min_numerical_chars = 1password.min_pass_length = 10
Depois que essas flags forem 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 senhas falhará. 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 validade da senha
Para aplicar a política de validade da senha, faça o seguinte:
Verifique se o arquivo
postgresql.confpré-carrega a biblioteca de validação de senhas.Defina a
password.enforce_expirationflag comoON.Defina a
password.expiration_in_daysflag como o número de dias após a definição de uma senha para que ela expire.Defina a
password.notify_expiration_in_daysflag como o número de dias antes da expiração de uma senha para que um usuário comece a receber notificações de expiração de senha.
Por exemplo, para aplicar uma política de senhas que declare que as senhas expiram após 30 dias e que os usuários são notificados 15 dias antes da expiração da senha, defina o seguinte no arquivo postgresql.conf:
password.enforce_expiration = ONpassword.expiration_in_days = 30password.notify_expiration_in_days = 15
Se a senha de um usuário expirar, ele não poderá se conectar ao AlloyDB Omni. Para redefinir a senha de um usuário, faça o seguinte:
Conecte-se ao AlloyDB Omni usando
psql. Por exemplo, se você instalou o AlloyDB Omni usando o Docker, execute o seguinte comando:sh docker exec -it CONTAINER-NAME psql -h localhost -U postgresNo prompt
postgres=#, execute o seguinte comando:ALTER USER USERNAME WITH 'NEW-PASSWORD';
Para mais informações sobre como mudar a senha de um usuário, consulte
ALTER ROLE na
documentação do PostgreSQL.
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:
Verifique se o arquivo
postgresql.confpré-carrega a biblioteca de validação de senhas.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 no arquivo postgresql.conf:
password.enforce_password_does_not_contain_username = ON
Se essa flag estiver definida, a operação a seguir falhará porque a senha
alex-secret contém o nome de usuário alex:
CREATE USER alex WITH PASSWORD 'alex-secret';
A seguir
- Saiba como fazer backup e restaurar o AlloyDB Omni
- Criar uma réplica somente leitura