Auf dieser Seite wird die IAM-Datenbankauthentifizierung für Einzelpersonen und Gruppen beschrieben, mit der Sie den Zugriff auf Ihre AlloyDB for PostgreSQL-Datenbanken 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. Alle Mitglieder dieser Gruppe übernehmen Berechtigungen zur Authentifizierung, was die Verwaltung für mehrere Nutzer vereinfacht.
Die individuelle Authentifizierung ist nützlich, wenn Sie den Zugriff direkt auf bestimmte Konten gewähren müssen. Verwenden Sie die Gruppenauthentifizierung, wenn Sie den Zugriff durch Ändern der Gruppenmitgliedschaft verwalten möchten. Dadurch müssen Sie Nutzer nicht auf Clusterebene hinzufügen oder entfernen.
IAM-Authentifizierungskonzepte
Wenn Sie die IAM-Authentifizierung verwenden, 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 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 für Anwendungen ein Nutzerkonto oder ein Dienstkonto verwenden. Weitere Informationen finden Sie unter Hauptkonten.
Rollen: Für die IAM-Datenbankauthentifizierung benötigt ein Hauptkonto die Berechtigung „alloydb.instances.login“. Diese Berechtigung ist in der Rolle „AlloyDB-Client“ (
roles/alloydb.client) enthalten. Damit der Nutzer diese Berechtigung erhält, binden Sie ihn, das Dienstkonto oder die Gruppe an die vordefinierte Rolle oder an eine benutzerdefinierte Rolle, die die Berechtigung umfasst. Weitere Informationen 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 finden Sie unter Ressourcen.
Optionen für die Datenbankauthentifizierung vergleichen
Anhand der folgenden Tabelle können Sie entscheiden, welche Authentifizierungsmethode am besten für Ihren Anwendungsfall geeignet ist.
| Funktion | Integrierte Datenbankauthentifizierung | Authentifizierung der IAM-Datenbank |
|---|---|---|
| Authentifizierungsmethode | Passwort | Temporäres Authentifizierungstoken |
| Verschlüsselung des Netzwerkverkehrs | SSL nicht erforderlich | sslRequired |
| Nutzerverwaltung | Manuell | Zentral ü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 Sprach-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
Für die manuelle 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.
Sie können Cloud-Audit-Logs verwenden, um Datensätze über den Datenzugriff, einschließlich Anmeldungen, aufzubewahren. Cloud-Audit-Logs sind standardmäßig deaktiviert. Aktivieren Sie Audit-Logs zum Datenzugriff für das Tracking von Anmeldungen.
IAM-Gruppenauthentifizierung
Mit der IAM-Gruppenauthentifizierung können Sie AlloyDB-Nutzer auf Gruppenebene verwalten. Ein Beispiel für eine Gruppe ist eine Cloud Identity-Gruppe. Diese Funktion vereinfacht die Verwaltung von Datenbanknutzern. Sie können die PostgreSQL-Rollen oder -Berechtigungen für mehrere IAM-Nutzer gleichzeitig verwalten, anstatt jeden Nutzer oder jedes Dienstkonto einzeln zu aktualisieren. Sie können die Datenbankrollen für eine Cloud Identity-Gruppe auch zuweisen und widerrufen. Alle neuen Konten, die Sie der Cloud Identity-Gruppe hinzufügen, erben die Berechtigungen und Rollen dieser Gruppe.
Mit der IAM-Gruppenauthentifizierung haben Sie folgende Möglichkeiten:
- Fügen Sie einen Nutzer einer Gruppe hinzu, damit er seine IAM-Rollen und Datenbankberechtigungen automatisch übernimmt.
- Wenn Sie einen Nutzer aus einer Gruppe entfernen, wird sein Log-in-Zugriff und seine Datenbankberechtigungen für AlloyDB-Cluster entfernt.
- Sie brauchen Anmelde- oder Datenbankberechtigungen einer Gruppe nur einmal zu erteilen, anstatt sie verschiedenen Nutzern mehrmals erteilen zu müssen.
- Entfernen Sie Anmeldeberechtigungen oder den Zugriff auf ein Datenbankobjekt für eine Gruppe auf einmal.
IAM-Rollen und -Berechtigungen werden zwar auf Gruppenebene zugewiesen, Nutzer und Dienstkonten verwenden jedoch ihre individuellen IAM-Konten und ‑Anmeldedaten und nicht ein gemeinsames Gruppenkonto für die Anmeldung. Bei der ersten Anmeldung des Principals erstellt AlloyDB ein Datenbankkonto im Cluster für diesen Principal.
Die einzelnen Anmelde- und Datenbankaktivitäten für jeden Nutzer oder jedes Dienstkonto werden in Audit-Logs angezeigt. Zu Prüfzwecken können Sie sehen, welches Konto welche Aktion in Ihrer Datenbank ausgeführt hat.
Weitere Informationen zum Arbeiten mit Cloud Identity-Gruppen finden Sie unter Cloud Identity – Übersicht.
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 beim AlloyDB-Cluster anmelden, da er bzw. es zur Gruppe gehört.
- Der Nutzer übernimmt automatisch alle Datenbankberechtigungen oder Rollen, die der Gruppe zugewiesen 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
- Wenn Sie die Anmeldeberechtigung (
alloydb.databaseUser) für eine IAM-Gruppe in Cloud Identity widerrufen, müssen Sie die Gruppe aus dem AlloyDB-Cluster löschen. - Wenn Sie eine Gruppe aus Cloud Identity löschen, müssen Sie diese Gruppe auch aus dem AlloyDB-Cluster löschen.
- Mit Gruppen können Sie die rollenbasierte Zugriffssteuerung in Ihrer Datenbank konfigurieren. Weisen Sie der Gruppe die geringsten erforderlichen Berechtigungen zu.
Beschränkungen
- Die IAM-Gruppenauthentifizierung ist für neue AlloyDB-Cluster in der Vorschau verfügbar. Wenn Sie diese Funktion in einem vorhandenen Cluster aktivieren möchten, wenden Sie sich an Ihr Google Cloud-Account-Management-Team.
- Die IAM-Gruppenauthentifizierung wird nur in der Datenbankversion
POSTGRES_15und höher in der Vorschau 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 Anmeldungskontingent pro Minute, das sowohl erfolgreiche als auch fehlgeschlagene Anmeldungen umfasst. Wenn das Kontingent überschritten wird, sind Anmeldungen vorübergehend nicht möglich. Wir empfehlen, häufige Anmeldungen zu vermeiden und Anmeldungen mithilfe von autorisierten Netzwerken einzuschränken.
- Der gekürzte Prinzipal eines Dienstkontos, also die E-Mail-Adresse ohne das Suffix
.gserviceaccount.com, darf nicht länger als 63 Zeichen sein. PostgreSQL schneidet Rollennamen mit mehr als 63 Zeichen im Datenbankkatalog ab, was dazu führt, dass die IAM-Authentifizierung fehlschlägt. Wenn Sie den Namen des Dienstkontos nicht kürzen können, lesen Sie den Workaround für die Identitätsübernahme des Dienstkontos. - Wenn Sie die IAM-Gruppenauthentifizierung verwenden und einen AlloyDB-Cluster mit Lesereplikaten haben, müssen Sie sich zuerst in der primären Instanz anmelden, bevor Sie sich in der Lesereplikatinstanz anmelden können. Nach der ersten Anmeldung in der primären Instanz werden die Gruppeninformationen auf die Lesereplikate repliziert. Bei nachfolgenden Anmeldungen können Sie sich direkt am Lesereplikat anmelden.
- Sie können einer Instanz maximal 200 IAM-Gruppen hinzufügen.
- Sie können einer Instanz keine einzelnen IAM-Nutzer oder Dienstkonten hinzufügen, die zu einer Gruppe 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 auf einer Instanz mit dem Typ
ALLOYDB_IAM_USERbereits ein individuelles Konto vorhanden ist, können Sie das Konto nicht für die IAM-Gruppenauthentifizierung verwenden. Diese Nutzertypen übernehmen keine IAM-Rollen und Datenbankberechtigungen von einer Gruppe. Entfernen Sie den einzelnen IAM-Nutzer oder das einzelne Dienstkonto, um dieses Problem zu beheben und das Konto mit der IAM-Gruppenauthentifizierung zu verwenden. Weitere Informationen finden Sie unter Ein vorhandener IAM-Nutzer oder ein vorhandenes Dienstkonto übernimmt nicht die Datenbankberechtigungen, die seiner Gruppe gewährt werden.Änderungen an der Cloud Identity-Gruppenmitgliedschaft, z. B. das Hinzufügen eines Kontos, brauchen etwa 15 Minuten, um wirksam zu werden. Dies ist zusätzlich zur Zeit, die für IAM-Änderungen erforderlich ist.
Die IAM-Gruppenauthentifizierung wird beim verwalteten Verbindungs-Pooling nicht unterstützt.
Die IAM-Gruppenauthentifizierung wird für föderierte Identitäten nicht unterstützt.