Informazioni sulle policy relative alle password
Se gli utenti del database della tua applicazione si autenticano con AlloyDB Omni utilizzando il metodo integrato basato su password, puoi rendere l'autenticazione più sicura applicando password efficaci. Puoi definire e abilitare l'applicazione delle password impostando una policy delle password di AlloyDB Omni.
Limitazioni delle policy password
I criteri per le password di AlloyDB Omni presentano le seguenti limitazioni:
I criteri per le password si applicano alle password create solo dopo che li hai impostati. Le password utente esistenti non sono interessate da una modifica dei criteri per le password.
I criteri per le password si applicano solo alle password inserite come testo normale. I criteri per le password non si applicano alle password inserite come stringhe criptate.
Imposta una policy delle password di AlloyDB Omni
Imposti un criterio per le password aggiornando i parametri
della password GUC (Grand Unified Configuration) nel file di configurazione postgresql.conf
. Per scoprire come impostare un parametro GUC, consulta Configurare i flag di database AlloyDB Omni.
Una norma relativa alle password per AlloyDB Omni può includere le seguenti opzioni:
Non consentire il nome utente: impedisce l'utilizzo del nome utente nella password.
Complessità della password: verifica se la password contiene il numero consentito di caratteri minuscoli, maiuscoli, numerici e non alfanumerici. Controlla anche se la lunghezza della password è valida.
Scadenza password: assicurati che le password vengano ruotate periodicamente.
Per un elenco dei flag dei criteri per le password supportati da AlloyDB Omni, consulta Flag dei criteri per le password.
Precaricare la libreria di convalida delle password
Per rendere effettivo un criterio per le password in AlloyDB Omni, è necessario caricare la libreria alloydb_password_validation
. Per caricare questa libreria,
segui questi passaggi:
Individua il file di configurazione
postgresql.conf
per la tua installazione di AlloyDB Omni e aprilo in un editor di testo.Individua la riga
shared_preload_libraries
e controlla se includealloydb_password_validation
. In caso contrario, devi aggiungerlo. Al termine, la rigashared_preload_libraries
sarà simile alla seguente:shared_preload_libraries='google_columnar_engine,google_job_scheduler,google_storage,alloydb_password_validation'
Imponi la complessità delle password
Per applicare un criterio di complessità della password:
Verifica che il file
postgresql.conf
precarichi la libreria di convalida della password.Imposta il flag
password.enforce_complexity
suON
.Utilizza i flag della policy delle password per definire la tua policy delle password.
Ad esempio, per applicare un criterio per le password che prevede che una password debba contenere almeno una lettera maiuscola, un numero e avere una lunghezza di almeno 10 caratteri, imposta quanto segue nel file postgresql.conf
:
password.enforce_complexity = ON
password.min_uppercase_letters = 1
password.min_numerical_chars = 1
password.min_pass_length = 10
Una volta impostati questi flag, il tentativo di impostare una password utente del database che
non è conforme a questo criterio delle password non va a buon fine. Ad esempio, con questo criterio
impostato, il seguente comando client psql
non va a buon fine perché la password foo
è
inferiore a 10 caratteri e non contiene un numero o un carattere maiuscolo.
CREATE USER USERNAME WITH PASSWORD foo;
Imponi la scadenza delle password
Per applicare il criterio di scadenza della password:
Verifica che il file
postgresql.conf
precarichi la libreria di convalida della password.Imposta il flag
password.enforce_expiration
suON
.Imposta il flag
password.expiration_in_days
sul numero di giorni dopo l'impostazione di una password prima che scada.Imposta il flag
password.notify_expiration_in_days
sul numero di giorni prima della scadenza di una password in cui un utente inizia a ricevere notifiche di scadenza della password.
Ad esempio, per applicare un criterio per le password che prevede la scadenza delle password dopo 30
giorni e che gli utenti vengano avvisati 15 giorni prima della scadenza della password, devi
impostare quanto segue nel file postgresql.conf
:
password.enforce_expiration = ON
password.expiration_in_days = 30
password.notify_expiration_in_days = 15
Se la password di un utente scade, l'utente non può connettersi ad AlloyDB Omni. Per reimpostare la password di un utente:
Connettiti ad AlloyDB Omni utilizzando
psql
. Ad esempio, se hai installato AlloyDB Omni utilizzando Docker, esegui il seguente comando:docker exec -it CONTAINER-NAME psql -h localhost -U postgres
Al prompt
postgres=#
, esegui questo comando:ALTER USER USERNAME WITH 'NEW-PASSWORD';
Per saperne di più sulla modifica della password di un utente, consulta
ALTER ROLE
nella
documentazione di PostgreSQL.
Non consentire i nomi utente nelle password
Per applicare il criterio che impedisce a una password di contenere un nome utente, segui questi passaggi:
Verifica che il file
postgresql.conf
precarichi la libreria di convalida della password.Imposta
password.enforce_password_does_not_contain_username
suON
.
Ad esempio, per assicurarti che una password non contenga un nome utente come sottostringa, imposta quanto segue nel file postgresql.conf
:
password.enforce_password_does_not_contain_username = ON
Se questo flag è impostato, l'operazione seguente non va a buon fine perché la password
alex-secret
contiene il nome utente alex
:
CREATE USER alex WITH PASSWORD 'alex-secret';