Wenn Sie die Sicherheit der integrierten Datenbankauthentifizierung erhöhen möchten, können Sie Passwortrichtlinien für Datenbanknutzer auf Ihren 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 Erzwingung von Passwörtern 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 integrierte (
BUILT_IN) Datenbanknutzer. IAM-basierte (IAM_BASED) Datenbanknutzer sind von den Passwortrichtlinien für Instanzen ausgenommen.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: Erfordern Sie regelmäßige Passwortänderungen.
Eine Liste der von AlloyDB unterstützten Flags für die Passwortrichtlinie finden Sie unter Flags für die Passwortrichtlinie.
Um die Sicherheitsstandards einzuhalten und die Empfehlungen des Security Recommenders zu befolgen, müssen Sie alle drei Optionen zusammen aktivieren. Konfigurieren Sie dazu die primären Erzwingungs-Flags auf on:
password.enforce_password_does_not_contain_usernamepassword.enforce_complexitypassword.enforce_expiration
Wenn Sie eines dieser drei Flags auf off setzen oder weglassen, wird die Instanz vom Sicherheits-Recommender als Instanz ohne aktivierte Passwortrichtlinie gekennzeichnet.
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_complexity-Flag aufonFlag
password.min_uppercase_lettersauf1Flag
password.min_numerical_charsauf1password.min_pass_length-Flag auf10
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_expiration-Flag aufonFlag
password.expiration_in_daysauf30password.notify_expiration_in_days-Flag auf15
Wenn ein Nutzer während des Benachrichtigungszeitraums vor Ablauf seines Passworts eine Verbindung herstellt, zeigt AlloyDB die folgende Meldung in der Clientverbindung an und schreibt sie in postgres.log:
Caution: Password is set to expire soon. Be sure to update the password before the expiration time.
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:
- Legen Sie das Flag
password.enforce_password_does_not_contain_usernameaufonfest.
Wenn Sie beispielsweise verhindern möchten, dass ein Passwort einen Nutzernamen als Teilstring enthält, legen Sie Folgendes fest:
- Flag
password.enforce_password_does_not_contain_usernameaufon
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';