Gestire l'autenticazione integrata utilizzando i criteri delle password

Questa pagina descrive come impostare e gestire le norme relative alle password per AlloyDB Omni.

Informazioni sui criteri di protezione con 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 imponendo l'uso di password efficaci. Puoi definire e attivare l'applicazione delle password impostando una policy delle password di AlloyDB Omni.

Limitazioni dei criteri di protezione con 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 l'impostazione dei criteri. Le password utente esistenti non sono interessate da una modifica dei criteri per le password.

  • I criteri per le password si applicano alle password inserite solo in testo normale. I criteri per le password non si applicano alle password inserite come stringhe criptate.

Impostare un criterio per le password di AlloyDB Omni

Imposti un criterio per le password aggiornando i parametri delle 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.

Un criterio per le 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: controlla se la password contiene il numero consentito di caratteri minuscoli, maiuscoli, numerici e non alfanumerici. Verifica anche che la lunghezza della password sia valida.

  • Scadenza della password: assicurati che le password vengano ruotate periodicamente.

Per un elenco degli indicatori dei criteri relativi alle password supportati da AlloyDB Omni, consulta Indicatori dei criteri relativi alle password.

Precaricare la libreria di convalida delle password

Affinché un criterio per le password venga applicato in AlloyDB Omni, è necessario caricare la libreria alloydb_password_validation. Per caricare questa libreria:

  1. Individua il file di configurazione postgresql.conf per l'installazione di AlloyDB Omni e aprilo in un editor di testo.

  2. Individua la riga shared_preload_libraries e controlla se include alloydb_password_validation. In caso contrario, devi aggiungerlo. Al termine, la riga shared_preload_libraries sarà simile alla seguente:

    shared_preload_libraries='google_columnar_engine,google_job_scheduler,google_storage,alloydb_password_validation'
    

Impostare la complessità delle password

Per applicare un criterio di complessità della password:

  1. Verifica che il file postgresql.conf precarichi la libreria di convalida delle password.

  2. Imposta il password.enforce_complexity flag su ON.

  3. Utilizza flag delle norme relative alle password per definire le norme relative alle password.

Ad esempio, per applicare un criterio per le password che stabilisce che una password deve contenere almeno una lettera maiuscola, un numero e avere una lunghezza minima di 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

Dopo aver impostato 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 insieme di criteri, il seguente comando client psql non va a buon fine perché la password foo è composta da meno di 10 caratteri e non contiene un numero o un carattere maiuscolo.

CREATE USER USERNAME WITH PASSWORD foo;

Imposta la scadenza della password

Per applicare il criterio di scadenza della password, segui questi passaggi:

  1. Verifica che il file postgresql.conf precarichi la libreria di convalida delle password.

  2. Imposta il password.enforce_expiration flag su ON.

  3. Imposta il flag password.expiration_in_days sul numero di giorni dopo l'impostazione di una password che scade.

  4. 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 stabilisce che le password scadono dopo 30 giorni e che gli utenti ricevono una notifica 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 a AlloyDB Omni. Per reimpostare la password di un utente:

  1. 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
    
  2. Al prompt postgres=#, esegui il seguente 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 nomi utente nelle password

Per applicare il criterio che impedisce a una password di contenere un nome utente:

  1. Verifica che il file postgresql.conf precarichi la libreria di convalida delle password.

  2. Imposta password.enforce_password_does_not_contain_username su ON.

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, la seguente operazione non va a buon fine perché la password alex-secret contiene il nome utente alex:

CREATE USER alex WITH PASSWORD 'alex-secret';

Passaggi successivi