Integrierte Authentifizierung mithilfe von Passwortrichtlinien verwalten

Auf dieser Seite wird beschrieben, wie Sie Passwortrichtlinien für AlloyDB Omni festlegen und verwalten.

Passwortrichtlinien

Wenn sich die Datenbanknutzer Ihrer Anwendung mit der integrierten, passwortbasierten Methode bei AlloyDB Omni authentifizieren, können Sie die Authentifizierung sicherer machen, indem Sie starke Passwörter erzwingen. Sie können die Passwortrichtlinie 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.

AlloyDB Omni-Passwortrichtlinie festlegen

Sie legen eine Passwortrichtlinie fest, indem Sie die Passwortparameter der Grand Unified Configuration (GUC) 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, dass der Nutzername im Passwort verwendet wird.

  • Komplexität des Passworts: Prüft, ob das Passwort die zulässige Anzahl von Kleinbuchstaben, Großbuchstaben, Ziffern 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 gewechselt werden.

Eine Liste der Flags für Passwortrichtlinien, die von AlloyDB Omni unterstützt werden, finden Sie unter Flags für Passwortrichtlinien.

Passwortvalidierungsbibliothek vorab laden

Damit eine Passwortrichtlinie in AlloyDB Omni wirksam wird, muss die alloydb_password_validation-Bibliothek geladen werden. So laden Sie diese Bibliothek:

  1. Suchen Sie die Konfigurationsdatei postgresql.conf für Ihre AlloyDB Omni-Installation und öffnen Sie sie in einem Texteditor.

  2. Suchen Sie die Zeile shared_preload_libraries und prüfen Sie, ob sie alloydb_password_validation enthält. Andernfalls müssen Sie sie hinzufügen. Wenn Sie fertig sind, sollte Ihre shared_preload_libraries-Zeile in etwa so aussehen:

    shared_preload_libraries='google_columnar_engine,google_job_scheduler,google_storage,alloydb_password_validation'
    

Komplexität des Passworts erzwingen

So erzwingen Sie eine Richtlinie zur Passwortkomplexität:

  1. Prüfen Sie, ob in Ihrer postgresql.conf-Datei die Bibliothek zur Passwortbestätigung vorab geladen wird.

  2. Legen Sie das Flag password.enforce_complexity auf ON fest.

  3. 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, eine Zahl und mindestens 10 Zeichen lang sein muss, legen Sie in Ihrer postgresql.conf-Datei Folgendes 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 ein Versuch fehl, ein Datenbanknutzerpasswort festzulegen, das nicht dieser Passwortrichtlinie entspricht. Wenn diese Richtlinie beispielsweise festgelegt ist, schlägt der folgende psql-Clientbefehl fehl, da das Passwort foo weniger als 10 Zeichen lang ist und keine Zahl oder ein Großbuchstabe enthält.

CREATE USER USERNAME WITH PASSWORD foo;

Ablauf des Passworts erzwingen

So erzwingen Sie die Richtlinie zum Ablauf von Passwörtern:

  1. Prüfen Sie, ob in Ihrer postgresql.conf-Datei die Bibliothek zur Passwortbestätigung vorab geladen wird.

  2. Legen Sie das Flag password.enforce_expiration auf ON fest.

  3. Legen Sie das Flag password.expiration_in_days auf die Anzahl der Tage fest, nach denen ein Passwort abläuft.

  4. Legen Sie das Flag password.notify_expiration_in_days auf die Anzahl der Tage vor Ablauf eines Passworts fest, ab der Nutzer Benachrichtigungen zum Ablauf des Passworts erhalten.

Wenn Sie beispielsweise eine Passwortrichtlinie erzwingen möchten, nach der Passwörter nach 30 Tagen ablaufen und Nutzer 15 Tage vor Ablauf ihres Passworts benachrichtigt werden, müssen Sie in Ihrer postgresql.conf-Datei Folgendes festlegen:

  • password.enforce_expiration = ON
  • password.expiration_in_days = 30
  • password.notify_expiration_in_days = 15

Wenn das Passwort eines Nutzers abläuft, kann er keine Verbindung mehr zu AlloyDB Omni herstellen. So setzen Sie das Passwort eines Nutzers zurück:

  1. Verbinden Sie sich mit psql mit AlloyDB Omni. 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
    
  2. Führen Sie in der postgres=#-Eingabeaufforderung folgenden Befehl aus:

    ALTER USER USERNAME WITH 'NEW-PASSWORD';
    

Weitere Informationen zum Ändern des Passworts eines Nutzers finden Sie unter ALTER ROLE in der PostgreSQL-Dokumentation.

Nutzernamen in Passwörtern nicht zulassen

So erzwingen Sie die Richtlinie, die verhindert, dass ein Passwort einen Nutzernamen enthält:

  1. Prüfen Sie, ob in Ihrer postgresql.conf-Datei die Bibliothek zur Passwortbestätigung vorab geladen wird.

  2. Legen Sie den Wert password.enforce_password_does_not_contain_username auf ON fest.

Wenn Sie beispielsweise sicherstellen möchten, dass ein Passwort keinen Nutzernamen als Teilstring enthält, legen Sie in der postgresql.conf-Datei Folgendes fest:

  • password.enforce_password_does_not_contain_username = ON

Wenn dieses Flag gesetzt ist, schlägt der folgende Vorgang fehl, da das Passwort alex-secret den Nutzernamen alex enthält:

CREATE USER alex WITH PASSWORD 'alex-secret';

Nächste Schritte