Mit der IAM-Datenbankauthentifizierung (Identity and Access Management) können Sie den Zugriff auf Ihre AlloyDB for PostgreSQL-Datenbanken mithilfe zentraler IAM-Richtlinien anstelle von Datenbankpasswörtern steuern und verwalten.
Die IAM-Datenbankauthentifizierung bietet die folgenden Optionen:
- Individuelle IAM-Authentifizierung: Sie fügen dem Cluster bestimmte Nutzer oder Dienstkonten hinzu.
- IAM-Gruppenauthentifizierung: Sie fügen dem Cluster eine IAM-Gruppe hinzu und alle Mitglieder dieser Gruppe übernehmen die Berechtigungen zur Authentifizierung.
Die individuelle Authentifizierung ist nützlich, wenn Sie bestimmten Konten direkt Zugriff gewähren müssen. Mit der Gruppenauthentifizierung können Sie den Datenbankzugriff verwalten, indem Sie die Gruppenmitgliedschaft ändern. So müssen Sie einzelne Nutzer nicht mehr auf Clusterebene hinzufügen oder entfernen.
Konzepte der IAM-Authentifizierung
Bei Verwendung der IAM-Authentifizierung wird dem Endnutzer die Berechtigung für den Zugriff auf eine AlloyDB-Instanz nicht direkt gewährt. Stattdessen werden Berechtigungen in Rollen gruppiert, die dann Hauptkonten zugewiesen werden. Weitere Informationen zu IAM-Rollen und -Berechtigungen finden Sie in der IAM-Übersicht.
Administratoren, bei denen sich Nutzer über die IAM-Datenbankauthentifizierung anmelden, können mit IAM die Zugriffssteuerung für ihre Instanzen zentral über IAM-Richtlinien verwalten.
IAM-Richtlinien umfassen die folgenden Entitäten:
Hauptkonten: In AlloyDB können Sie ein Nutzerkonto, ein Dienstkonto für Anwendungen oder eine IAM-Gruppe verwenden. Weitere Informationen zu Hauptkonten finden Sie unter Hauptkonten.
Rollen: Für die IAM-Datenbankauthentifizierung benötigt ein Hauptkonto die Berechtigung
alloydb.users.login, die in der AlloyDB-Datenbanknutzerrolle (roles/alloydb.databaseUser) und der Service Usage Consumer-Rolle (roles/serviceusage.serviceUsageConsumer) enthalten ist. Wenn Sie diese Berechtigungen gewähren möchten, binden Sie den Nutzer, das Dienstkonto oder die Gruppe an diese vordefinierten Rollen oder an eine benutzerdefinierte Rolle, die die erforderlichen Berechtigungen enthält. Weitere Informationen zu Rollen und Berechtigungen finden Sie unter Berechtigungen und Rollen.Ressourcen: Die Ressourcen, auf die Hauptkonten zugreifen, sind AlloyDB-Cluster. IAM-Richtlinienbindungen werden auf Projektebene angewendet, sodass Hauptkonten Rollenberechtigungen für alle AlloyDB-Instanzen im Projekt erhalten. Weitere Informationen zu Ressourcen finden Sie unter Ressourcen.
Optionen für die Datenbankauthentifizierung vergleichen
Anhand der folgenden Tabelle können Sie entscheiden, welche Authentifizierungsmethode für Ihren Anwendungsfall am besten geeignet ist.
| Funktion | Integrierte Datenbankauthentifizierung | Authentifizierung der IAM-Datenbank |
|---|---|---|
| Authentifizierungsmethode | Passwort | Temporäres Authentifizierungstoken |
| Verschlüsselung des Netzwerkverkehrs | SSL nicht erforderlich | sslRequired |
| Nutzerverwaltung | Manuell | Zentralisiert über IAM |
Automatische und manuelle IAM-Datenbankauthentifizierung im Vergleich
AlloyDB bietet zwei Methoden für die IAM-Datenbankauthentifizierung: automatisch und manuell.
Automatische IAM-Datenbankauthentifizierung
Mit der automatischen IAM-Datenbankauthentifizierung können Sie das Anfordern und Verwalten von Zugriffstokens an einen AlloyDB-Connector wie den Auth-Proxy oder einen der Language Connectors übergeben.
Bei der automatischen IAM-Datenbankauthentifizierung muss eine Anwendung nur den Nutzernamen der IAM-Datenbank in einer Verbindungsanfrage vom Client übergeben. Der Connector sendet die Zugriffstokeninformationen für das Passwortattribut im Namen des Clients.
Manuelle IAM-Datenbankauthentifizierung
Bei der manuellen IAM-Datenbankauthentifizierung muss das IAM-Hauptkonto das Zugriffstoken für das Passwortattribut in der Clientverbindungsanfrage explizit übergeben. Hauptkonten müssen sich zuerst in Google Cloud anmelden und das Zugriffstoken explizit von IAM anfordern.
Mit Cloud-Audit-Logs können Sie Datenzugriffe, einschließlich Anmeldungen, aufzeichnen. Cloud-Audit-Logs sind standardmäßig deaktiviert. Aktivieren Sie Audit-Logs zum Datenzugriff für das Anmeldetracking.
IAM-Gruppenauthentifizierung
Mit der IAM-Gruppenauthentifizierung können Sie AlloyDB-Nutzer auf Gruppenebene in neuen und vorhandenen Clustern verwalten, z. B. mithilfe einer Cloud Identity-Gruppe. Sie können PostgreSQL-Rollen und -Berechtigungen für mehrere IAM-Nutzer gleichzeitig verwalten, anstatt jeden Nutzer oder jedes Dienstkonto einzeln zu aktualisieren. Wenn Sie einer Cloud Identity-Gruppe Datenbankrollen zuweisen oder entziehen, übernehmen alle Konten, die Sie dieser Gruppe hinzufügen, die Berechtigungen und Rollen der Gruppe.
Wenn Sie die IAM-Gruppenauthentifizierung für eine Instanz aktivieren möchten, setzen Sie die Datenbank-Flags alloydb.iam_authentication und alloydb.iam_group_authentication auf on.
Mit der IAM-Gruppenauthentifizierung können Sie Folgendes tun:
Gruppenauthentifizierung für neue und vorhandene Cluster ohne manuelles Cluster-Patching aktivieren.
Fügen Sie einen Nutzer einer Gruppe hinzu, damit er automatisch IAM-Rollen und Datenbankberechtigungen übernimmt.
Entfernen Sie einen Nutzer aus einer Gruppe, um seinen Anmeldezugriff und seine Datenbankberechtigungen für alle AlloyDB-Cluster zu widerrufen.
Sie können Anmeldeberechtigungen und den Zugriff auf Datenbankobjekte für eine ganze Gruppe auf einmal gewähren oder widerrufen, anstatt einzelne Konten zu aktualisieren.
Melden Sie sich direkt in der Google Cloud Console, in primären Instanzen oder in Lesepoolinstanzen bei AlloyDB Studio an. Dies gilt auch für die erstmalige Anmeldung direkt in Lesepoolinstanzen, ohne dass Sie sich zuerst mit der primären Instanz verbinden müssen.
Stellen Sie einen AlloyDB-Cluster aus einer Cloud SQL for PostgreSQL-Sicherung wieder her oder migrieren Sie ihn, während Sie einzelne und IAM-Gruppennutzerkonfigurationen zuordnen und beibehalten.
Obwohl IAM-Rollen und -Berechtigungen auf Gruppenebene zugewiesen werden, verwenden Nutzer und Dienstkonten ihre individuellen IAM-Konten und -Anmeldedaten, um sich bei primären Instanzen, Lesepoolinstanzen oder AlloyDB Studio anzumelden, und kein freigegebenes Gruppenkonto. AlloyDB erstellt bei der ersten Anmeldung des Hauptkontos ein Datenbankkonto im Cluster für dieses Hauptkonto.
Die einzelnen Anmelde- und Datenbankaktivitäten für jeden Nutzer oder jedes Dienstkonto werden in Audit-Logs angezeigt. So können Sie prüfen, welches Konto die einzelnen Aktionen in Ihrer Datenbank ausgeführt hat.
Weitere Informationen zum Arbeiten mit Cloud Identity-Gruppen finden Sie unter Cloud Identity – Übersicht. Weitere Informationen zur Migration aus einer Cloud SQL for PostgreSQL-Sicherung finden Sie unter Von Cloud SQL for PostgreSQL zu AlloyDB migrieren.
Wenn Sie einer Gruppe einen Nutzer oder ein Dienstkonto hinzufügen, ändert sich in AlloyDB Folgendes:
Wenn Sie der Gruppe bereits IAM-Anmeldeberechtigungen erteilt haben, kann sich der Nutzer oder das Dienstkonto im AlloyDB-Cluster anmelden, da der Nutzer oder das Dienstkonto zur Gruppe gehört.
Der Nutzer übernimmt automatisch alle Datenbankberechtigungen oder Rollen, die der Gruppe gewährt wurden.
Wenn Sie einen Nutzer oder ein Dienstkonto aus der Gruppe entfernen, ändert sich in AlloyDB Folgendes:
- Der Nutzer verliert alle Datenbankberechtigungen, die zuvor als Mitglied der Gruppe übernommen wurden.
- Der Nutzer kann möglicherweise weiterhin neue Sitzungen erstellen, wenn er über andere Gruppenmitgliedschaften IAM-Anmeldeberechtigungen für den AlloyDB-Cluster erhält. Der Nutzer erhält bei der Anmeldung jedoch keine Datenbankberechtigungen aus seiner früheren Gruppenmitgliedschaft.
Best Practices
Beachten Sie die folgenden Best Practices, wenn Sie die IAM-Gruppenauthentifizierung verwenden:
Wenn Sie die Rolle
roles/alloydb.databaseUserfür eine IAM-Gruppe in IAM widerrufen, löschen Sie die Gruppe aus dem AlloyDB-Cluster.Wenn Sie eine Gruppe aus Cloud Identity löschen, müssen Sie diese Gruppe auch aus dem AlloyDB-Cluster löschen.
Verwenden Sie Gruppen, um die rollenbasierte Zugriffssteuerung in Ihrer Datenbank zu konfigurieren. Gewähren Sie der Gruppe die geringsten erforderlichen Berechtigungen.
Beschränkungen
Für die IAM-Gruppenauthentifizierung gelten die folgenden Einschränkungen:
Die IAM-Gruppenauthentifizierung wird nur in Datenbankversion
POSTGRES_15und höher unterstützt.Aus Sicherheitsgründen sind Anmeldungen mit der IAM-Datenbankauthentifizierung nur über eine SSL-Verbindung möglich. Unverschlüsselte Verbindungen werden abgelehnt.
Für jede Instanz gilt ein Anmeldekontingent pro Minute, das sowohl erfolgreiche als auch fehlgeschlagene Anmeldungen umfasst. Wenn das Kontingent überschritten wird, sind Anmeldungen vorübergehend nicht möglich. Vermeiden Sie häufige Anmeldungen und schränken Sie Anmeldungen mithilfe von autorisierten Netzwerken ein.
Das gekürzte Hauptkonto eines Dienstkontos, d. h. die E-Mail-Adresse ohne das Suffix
., darf nicht länger als 63 Zeichen sein. PostgreSQL kürzt Rollennamen, die länger als 63 Zeichen sind, im Datenbankkatalog, was dazu führt, dass die IAM-Authentifizierung fehlschlägt. Wenn Sie den Namen des Dienstkontos nicht kürzen können, finden Sie weitere Informationen unter Problemumgehung für die Identitätsübernahme des Dienstkontos.Sie können einem Cluster maximal 200 IAM-Gruppen hinzufügen.
Sie können keine einzelnen IAM-Nutzer oder Dienstkonten hinzufügen, die zu einer Gruppe im selben Cluster gehören. Das bedeutet, dass Sie kein Konto vom Typ
ALLOYDB_IAM_USERhinzufügen können, wenn bereits ein identisches Konto vom TypALLOYDB_IAM_GROUP_USERoderALLOYDB_IAM_GROUP_SERVICE_ACCOUNTvorhanden ist.Wenn ein individuelles Konto bereits in einem Cluster mit dem Typ
ALLOYDB_IAM_USERvorhanden ist, können Sie das Konto nicht für die IAM-Gruppenauthentifizierung verwenden. Diese Nutzertypen übernehmen keine IAM-Rollen und Datenbankberechtigungen von einer Gruppe. Um dieses Problem zu beheben und das Konto mit der IAM-Gruppenauthentifizierung zu verwenden, entfernen Sie den einzelnen IAM-Nutzer oder das Dienstkonto. Weitere Informationen zum Beheben dieses Problems finden Sie unter Ein vorhandenes Konto übernimmt keine Berechtigungen.Änderungen an der Cloud Identity-Gruppenmitgliedschaft, z. B. das Hinzufügen eines Kontos, brauchen etwa 15 Minuten, um wirksam zu werden. Diese Propagierungszeit kommt zur für IAM-Änderungen erforderlichen Zeit hinzu.
Für die IAM-Gruppenauthentifizierung müssen alle passwortbezogenen Datenbank-Flags, die die Mindestanzahl von Zeichen, numerischen Zeichen und die Mindestlänge festlegen, gelockert oder deaktiviert werden.
Die IAM-Gruppenauthentifizierung wird bei verwaltetem Verbindungs-Pooling oder PgBouncer-Verbindungen nicht unterstützt.
Die IAM-Gruppenauthentifizierung wird bei föderierten Identitäten nicht unterstützt.