Passwortrichtlinien
Wenn sich die Datenbanknutzer Ihrer Anwendung mit AlloyDB Omni über die integrierte, passwortbasierte Methode authentifizieren, können Sie die Authentifizierung sicherer machen, indem Sie starke Passwörter erzwingen. Sie können die Passwortdurchsetzung definieren und aktivieren, indem Sie eine AlloyDB Omni-Passwortrichtlinie festlegen.
Einschränkungen von Passwortrichtlinien
Für AlloyDB Omni-Passwortrichtlinien gelten die folgenden Einschränkungen:
Passwortrichtlinien gelten nur für Passwörter, die nach dem Festlegen der Richtlinien erstellt wurden. Bestehende Nutzerpasswörter sind von einer Änderung der Passwortrichtlinie nicht betroffen.
Passwortrichtlinien gelten nur für Passwörter, die als Klartext eingegeben werden. Passwortrichtlinien gelten nicht für Passwörter, die als verschlüsselte Strings eingegeben werden.
Passwortrichtlinie für AlloyDB Omni festlegen
Sie legen eine Passwortrichtlinie fest, indem Sie die GUC-Passwortparameter (Grand Unified Configuration) in Ihrer postgresql.conf
-Konfigurationsdatei aktualisieren. Informationen zum Festlegen eines GUC-Parameters finden Sie unter AlloyDB Omni-Datenbank-Flags konfigurieren.
Eine Passwortrichtlinie für AlloyDB Omni kann die folgenden Optionen enthalten:
Nutzernamen nicht zulassen: verhindert die Verwendung des Nutzernamens im Passwort.
Komplexität des Passworts: prüft, ob das Passwort die zulässige Anzahl von Kleinbuchstaben, Großbuchstaben, numerischen und nicht alphanumerischen Zeichen enthält. Prüfen Sie auch, ob die Passwortlänge gültig ist.
Ablauf von Passwörtern: Achten Sie darauf, dass Passwörter regelmäßig geändert werden.
Eine Liste der von AlloyDB Omni unterstützten Flags für die Passwortrichtlinie finden Sie unter Flags für die Passwortrichtlinie.
Bibliothek zur Passwortvalidierung vorab laden
Damit eine Richtlinie in AlloyDB Omni wirksam wird, muss die alloydb_password_validation
-Bibliothek geladen werden. So laden Sie diese Bibliothek:
Suchen Sie die Konfigurationsdatei
postgresql.conf
für Ihre Installation von AlloyDB Omni und öffnen Sie sie in einem Texteditor.Suchen Sie die Zeile
shared_preload_libraries
und prüfen Sie, ob siealloydb_password_validation
enthält. Falls nicht, müssen Sie sie hinzufügen. Wenn Sie fertig sind, sollte Ihreshared_preload_libraries
-Zeile in etwa so aussehen:shared_preload_libraries='google_columnar_engine,google_job_scheduler,google_storage,alloydb_password_validation'
Passwortkomplexität erzwingen
So erzwingen Sie eine Richtlinie zur Passwortkomplexität:
Prüfen Sie, ob in der Datei
postgresql.conf
die Bibliothek zur Passwortvalidierung vorab geladen wird.Legen Sie das Flag
password.enforce_complexity
aufON
fest.Verwenden Sie Flags für Passwortrichtlinien, um Ihre Passwortrichtlinie zu definieren.
Wenn Sie beispielsweise eine Passwortrichtlinie erzwingen möchten, die besagt, dass ein Passwort mindestens einen Großbuchstaben und eine Zahl enthalten und mindestens 10 Zeichen lang sein muss, legen Sie Folgendes in Ihrer postgresql.conf
-Datei fest:
password.enforce_complexity = ON
password.min_uppercase_letters = 1
password.min_numerical_chars = 1
password.min_pass_length = 10
Nachdem diese Flags festgelegt wurden, schlägt jeder Versuch fehl, ein Datenbanknutzerpasswort festzulegen, das nicht dieser Passwortrichtlinie entspricht. Wenn diese Richtlinie festgelegt ist, schlägt beispielsweise der folgende psql
-Clientbefehl fehl, da das Passwort foo
weniger als 10 Zeichen lang ist und keine Zahl oder keinen Großbuchstaben enthält.
CREATE USER USERNAME WITH PASSWORD foo;
Ablauf des Passworts erzwingen
So erzwingen Sie die Passwortablaufrichtlinie:
Prüfen Sie, ob in der Datei
postgresql.conf
die Bibliothek zur Passwortvalidierung vorab geladen wird.Legen Sie das Flag
password.enforce_expiration
aufON
fest.Legen Sie das Flag
password.expiration_in_days
auf die Anzahl der Tage fest, nach denen ein Passwort abläuft, nachdem es festgelegt wurde.Legen Sie das Flag
password.notify_expiration_in_days
auf die Anzahl der Tage vor dem Ablauf eines Passworts fest, ab denen ein Nutzer Benachrichtigungen zum Ablauf des Passworts erhält.
Wenn Sie beispielsweise eine Passwortrichtlinie erzwingen möchten, die besagt, dass Passwörter nach 30 Tagen ablaufen und Nutzer 15 Tage vor Ablauf ihres Passworts benachrichtigt werden, müssen Sie Folgendes in Ihrer postgresql.conf
-Datei festlegen:
password.enforce_expiration = ON
password.expiration_in_days = 30
password.notify_expiration_in_days = 15
Wenn das Passwort eines Nutzers abläuft, kann dieser keine Verbindung zu AlloyDB Omni herstellen. So setzen Sie das Passwort eines Nutzers zurück:
Verbindung zu AlloyDB Omni mit
psql
herstellen Wenn Sie AlloyDB Omni beispielsweise mit Docker installiert haben, führen Sie den folgenden Befehl aus:docker exec -it CONTAINER-NAME psql -h localhost -U postgres
Führen Sie an der
postgres=#
-Eingabeaufforderung den folgenden Befehl aus:ALTER USER USERNAME WITH 'NEW-PASSWORD';
Weitere Informationen zum Ändern des Passworts eines Nutzers finden Sie in der PostgreSQL-Dokumentation unter ALTER ROLE
.
Nutzernamen in Passwörtern nicht zulassen
So erzwingen Sie die Richtlinie, die verhindert, dass ein Passwort einen Nutzernamen enthält:
Prüfen Sie, ob in der Datei
postgresql.conf
die Bibliothek zur Passwortvalidierung vorab geladen wird.Legen Sie
password.enforce_password_does_not_contain_username
aufON
fest.
Wenn Sie beispielsweise dafür sorgen möchten, dass ein Passwort keinen Nutzernamen als Teilstring enthält, legen Sie in der Datei postgresql.conf
Folgendes fest:
password.enforce_password_does_not_contain_username = ON
Wenn dieses Flag festgelegt ist, schlägt der folgende Vorgang fehl, weil das Passwort alex-secret
den Nutzernamen alex
enthält:
CREATE USER alex WITH PASSWORD 'alex-secret';
Nächste Schritte
- Informationen zum Sichern und Wiederherstellen von AlloyDB Omni
- Schreibgeschütztes Replikat erstellen