Sie können Passwortrichtlinien für Datenbanknutzer Ihrer AlloyDB for PostgreSQL-Instanzen festlegen und verwalten.
Eine Übersicht über die in AlloyDB verfügbaren Authentifizierungsmethoden finden Sie unter Authentifizierung.
Passwortrichtlinien
Wenn sich die Datenbanknutzer Ihrer Anwendung mit Ihren AlloyDB-Instanzen ü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 Passwortrichtlinie für Ihre Instanzen festlegen.
Einschränkungen von Passwortrichtlinien
Für AlloyDB-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 Nur-Text eingegeben werden. Passwortrichtlinien gelten nicht für Passwörter, die als verschlüsselte Strings eingegeben werden.
Passwortrichtlinie für Instanzen festlegen
Sie können eine Passwortrichtlinie für eine Instanz festlegen, indem Sie Passwort-Flags für eine Instanz konfigurieren.
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 unterstützten Flags für die Passwortrichtlinie finden Sie unter Flags für die Passwortrichtlinie.
Passwortkomplexität erzwingen
So erzwingen Sie eine Richtlinie zur Passwortkomplexität:
- Setzen Sie das Flag
password.enforce_complexityaufON. - 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, müssen Sie die folgenden Flags festlegen:
password.enforce_complexitybisON- Flag
password.min_uppercase_letterszu1 - Flag
password.min_numerical_charszu1 - Flag
password.min_pass_lengthzu10
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:
Setzen Sie das Flag
password.enforce_expirationaufON.Legen Sie das Flag
password.expiration_in_daysauf die Anzahl der Tage fest, nach denen ein Passwort abläuft, nachdem es festgelegt wurde.Legen Sie das Flag
password.notify_expiration_in_daysauf 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 festlegen:
password.enforce_expirationbisON- Flag
password.expiration_in_dayszu30 - Flag
password.notify_expiration_in_dayszu15
Wenn das Passwort eines Nutzers abläuft, kann dieser keine Verbindung zur AlloyDB-Instanz herstellen. Informationen zum Zurücksetzen des Passworts eines Nutzers finden Sie unter Passwort eines Datenbanknutzers ändern.
Nutzernamen in Passwörtern nicht zulassen
So erzwingen Sie die Richtlinie, die verhindert, dass ein Passwort einen Nutzernamen enthält:
- Setzen Sie den Wert
password.enforce_password_does_not_contain_usernameaufON.
Wenn Sie beispielsweise dafür sorgen möchten, dass ein Passwort keinen Nutzernamen als Teilstring enthält, legen Sie Folgendes fest:
password.enforce_password_does_not_contain_usernamebisON
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';