Gestire l'autenticazione integrata utilizzando i criteri delle password

Per rafforzare la sicurezza dell'autenticazione integrata del database, puoi impostare e gestire le policy relative alle password per gli utenti del database sulle tue istanze AlloyDB per PostgreSQL.

Per una panoramica dei metodi di autenticazione disponibili in AlloyDB, consulta Autenticazione.

Informazioni sulle policy relative alle password

Se gli utenti del database della tua applicazione eseguono l'autenticazione con le tue istanze AlloyDB utilizzando il metodo integrato basato su password, puoi rendere l'autenticazione più sicura applicando l'utilizzo di password efficaci. Puoi definire e attivare l'applicazione forzata delle password impostando una policy per le password sulle tue istanze.

Limitazioni delle policy relative alle password

Le policy relative alle password di AlloyDB presentano le seguenti limitazioni:

  • Le policy relative alle password si applicano solo agli utenti di database integrati (BUILT_IN). Gli utenti del database basati su IAM (IAM_BASED) sono esclusi dalle policy delle password delle istanze.

  • I criteri per le password si applicano solo alle password create dopo l'impostazione dei criteri. Le password utente esistenti non sono interessate da una modifica della policy relativa alle password.

  • Le policy relative alle password si applicano alle password inserite solo come testo normale. I criteri delle password non si applicano alle password inserite come stringhe criptate.

Imposta una policy per le password dell'istanza

Puoi impostare una policy per le password su un'istanza configurando i flag delle password su un'istanza.

  • 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 della password: richiedi la rotazione periodica delle password.

Per un elenco dei flag delle policy relative alle password supportati da AlloyDB, consulta Flag delle policy relative alle password.

Per rispettare gli standard di sicurezza e seguire le indicazioni del motore per suggerimenti sulla sicurezza, devi attivare tutte e tre le opzioni insieme configurando i relativi flag di applicazione principali su ON:

  • password.enforce_password_does_not_contain_username
  • password.enforce_complexity
  • password.enforce_expiration

Se imposti uno di questi tre flag su OFF o li ometti, il motore per suggerimenti di sicurezza segnala che l'istanza non ha una policy per le password attivata.

Imponi la complessità delle password

Per applicare una policy sulla complessità delle password, segui questi passaggi:

  1. Imposta il flag password.enforce_complexity su ON.
  2. Utilizza i flag delle policy relative alle password per definire la tua policy relativa alle password.

Ad esempio, per applicare una policy per le password che stabilisce che una password deve contenere almeno una lettera maiuscola, un numero e avere una lunghezza di almeno 10 caratteri, devi impostare i seguenti flag:

  • Flag password.enforce_complexity su ON

  • Flag password.min_uppercase_letters su 1

  • Flag password.min_numerical_chars su 1

  • Flag password.min_pass_length su 10

Dopo aver impostato questi flag, un tentativo di impostare una password utente del database che non è conforme a questa policy delle password non va a buon fine. Ad esempio, con questa policy impostata, 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';

Imponi la scadenza della password

Per applicare la policy di scadenza delle password, segui questi passaggi:

  1. Imposta il flag password.enforce_expiration su ON.

  2. Imposta il flag password.expiration_in_days sul numero di giorni dopo i quali una password scade.

  3. 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 una policy per le password che prevede che le password scadano dopo 30 giorni e che gli utenti ricevano una notifica 15 giorni prima della scadenza della password, imposta quanto segue:

  • Flag password.enforce_expiration su ON

  • Flag password.expiration_in_days su 30

  • Flag password.notify_expiration_in_days su 15

Quando un utente si connette durante il periodo di notifica prima della scadenza della password, AlloyDB visualizza il seguente messaggio nella connessione client e lo scrive in postgres.log:

Caution: Password is set to expire soon. Be sure to update the password before the expiration time.

Se la password di un utente scade, l'utente non può connettersi all'istanza AlloyDB. Per reimpostare la password di un utente, consulta Modifica la password di un utente del database.

Non consentire i nomi utente nelle password

Per applicare la policy che impedisce a una password di contenere un nome utente, segui questi passaggi:

Ad esempio, per impedire che una password contenga un nome utente come sottostringa, imposta quanto segue:

  • Flag password.enforce_password_does_not_contain_username su 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