Cloud SQL-IAM-Datenbankauthentifizierung

Auf dieser Seite werden die Verwendung der IAM-Datenbankauthentifizierung auf Cloud SQL-Instanzen, ihre Auswirkung auf das Erstellen von Nutzern und Dienstkonten sowie auf das Anmelden von diesen Konten erläutert.

Einführung

Cloud SQL ist in Identity and Access Management (IAM) eingebunden, damit Sie den Anmeldezugriff für Nutzer und Dienstkonten auf Datenbanken besser verwalten können. Dieses Feature wird als IAM-Datenbankauthentifizierung bezeichnet.

Bei der Authentifizierung wird die Identität eines Nutzers überprüft, der versucht, auf eine Instanz zuzugreifen. Cloud SQL verwendet die folgenden Authentifizierungstypen für Datenbanknutzer:

  • Die integrierte Authentifizierung der Datenbank verwendet einen Nutzernamen und ein Passwort, um einen Datenbanknutzer zu authentifizieren.
  • Die IAM-Datenbankauthentifizierung verwendet IAM, um einen Nutzer mithilfe eines Zugriffstokens zu authentifizieren.

IAM-Authentifizierung für Cloud SQL

Bei Verwendung der IAM-Authentifizierung wird dem Endnutzer die Berechtigung für den Zugriff auf eine Ressource (eine Cloud SQL-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 Cloud SQL können Sie zwei Arten von IAM-Hauptkonten verwenden: ein Nutzerkonto und ein Dienstkonto (für Anwendungen). Andere Arten von Hauptkonten wie Google Groups-Gruppen, Google Workspace-Domains oder Cloud Identity-Domains werden für die IAM-Datenbankauthentifizierung nicht unterstützt. Weitere Informationen finden Sie unter Identitätskonzepte.
  • Rollen: Zur IAM-Datenbankauthentifizierung benötigt ein Nutzer die Berechtigung cloudsql.instances.login, um sich bei einer Instanz anzumelden. Damit der Nutzer diese Berechtigung erhält, binden Sie ihn oder das Dienstkonto entweder an die vordefinierte Rolle "Cloud SQL-Instanznutzer" oder an eine benutzerdefinierte Rolle, die die Berechtigung umfasst. Weitere Informationen zu IAM-Rollen finden Sie unter Rollen.
  • Ressourcen: Die Ressourcen, auf die Hauptkonten zugreifen, sind Cloud SQL-Instanzen. Standardmäßig werden IAM-Richtlinienbindungen auf Projektebene angewendet, sodass Hauptkonten Rollenberechtigungen für alle Cloud SQL-Instanzen im Projekt erhalten.

Optionen für die IAM-Datenbankauthentifizierung

Cloud SQL for PostgreSQL bietet zwei Optionen für die IAM-Datenbankauthentifizierung: automatisch und manuell.

Automatische IAM-Datenbankauthentifizierung

Mit der automatischen IAM-Datenbankauthentifizierung können Sie Zugriffstokens an einen Cloud SQL-Connector wie den Cloud SQL-Auth-Proxy anfordern und verwalten. Bei der automatischen IAM-Datenbankauthentifizierung müssen Nutzer 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.

Für die automatische IAM-Datenbankauthentifizierung ist die Verwendung eines Cloud SQL-Connectors erforderlich. Derzeit wird er vom Cloud SQL Auth-Proxy, dem Go-Connector, dem Java-Connector und dem Python-Connector unterstützt.

Als sicherste und zuverlässigste Nutzungsmöglichkeit empfehlen wir die Verwendung der automatischen IAM-Datenbankauthentifizierung. Für die IAM-Datenbankauthentifizierung werden OAuth 2.0-Zugriffstoken genutzt. Diese sind nur temporär und lediglich für eine Stunde gültig. Cloud SQL-Connectors können diese Tokens anfordern und aktualisieren, wodurch sichergestellt ist, dass langlebige Prozesse oder Anwendungen, die Verbindungs-Pooling nutzen, auf stabile Verbindungen zurückgreifen können. Die automatische Authentifizierung der IAM-Datenbank wird anstelle der manuellen Authentifizierung dringend empfohlen.

Weitere Informationen finden Sie unter Mit automatischer IAM-Datenbankauthentifizierung anmelden.

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.

Mit der gcloud CLI haben Sie die Möglichkeit, explizit ein OAuth 2.0-Token im Geltungsbereich der Cloud SQL Admin API anzufordern, das für die Anmeldung bei der Datenbank verwendet wird. Wenn Sie sich als Datenbanknutzer mit der IAM-Datenbankauthentifizierung anmelden, verwenden Sie Ihre E-Mail-Adresse als Nutzernamen und das Zugriffstoken als Passwort. Sie können diese Methode entweder mit einer direkten Verbindung zur Datenbank oder mit einem Cloud SQL-Connector verwenden.

Die Anmeldung mit IAM-Datenbankauthentifizierung kann nur über eine SSL-Verbindung erfolgen.

Weitere Informationen finden Sie unter Mit manueller IAM-Datenbankauthentifizierung anmelden.

Nutzer- und Dienstkontoverwaltung

Damit Nutzer und Dienstkonten mithilfe der IAM-Datenbankauthentifizierung Zugriff auf Datenbanken in einer Instanz erhalten, müssen Sie sie der Instanz hinzufügen. Weitere Informationen finden Sie unter Nutzer- oder Dienstkonto mit IAM hinzufügen.

Wenn Sie über die Google Cloud Console Nutzer oder Dienstkonten hinzufügen, werden Sie von Cloud SQL aufgefordert, dem Nutzer die Rolle „Cloud SQL-Nutzer“ zuzuweisen. Diese Rolle ist erforderlich, damit sich Nutzer bei der Instanz anmelden können.

Wenn Sie Nutzer mithilfe von gcloud oder der API hinzufügen, müssen Sie manuell Anmeldeberechtigungen gewähren. Verwenden Sie den PostgreSQL-Befehl GRANT, um Datenbankberechtigungen zu gewähren.

Instanzkonfiguration für die Cloud SQL-IAM-Datenbankauthentifizierung

Sie können die IAM-Datenbankauthentifizierung für eine Instanz mit dem Flag cloudsql.iam_authentication aktivieren. Wenn Sie dieses Flag aktivieren, ermöglicht die Instanz Anmeldungen von Konten, die für die IAM-Datenbankauthentifizierung konfiguriert sind.

Durch das Festlegen des Flags wird nicht verhindert, dass vorhandene Nicht-IAM-Nutzer ihre Nutzernamen und Passwörter zur Anmeldung verwenden. Wenn Sie allerdings dieses Flag für die Instanz deaktivieren, haben die Nutzer, die Sie zuvor über die IAM-Datenbankauthentifizierung hinzugefügt wurden, keinen Zugriff mehr auf die Instanz. Weitere Informationen finden Sie unter Instanzen für die IAM-Datenbankauthentifizierung konfigurieren.

Cloud SQL-IAM-Datenbankauthentifizierung für verschiedene Instanzszenarien

Lesereplikate Die IAM-Datenbankauthentifizierung wird in einem Lesereplikat nicht automatisch aktiviert, auch wenn sie in der primären Instanz aktiviert ist. Nachdem Sie ein Lesereplikat erstellt haben, müssen Sie die IAM-Datenbankauthentifizierung hinzufügen. Weitere Informationen finden Sie unter Lesereplikatanmeldungen für die IAM-Datenbankauthentifizierung konfigurieren.
Wiederhergestellte Instanzen Wenn eine Instanz zuvor gesichert und später in derselben oder einer anderen Instanz im selben Projekt wiederhergestellt wurde, gelten die aktuellen Autorisierungen für die Nutzeranmeldung. Wenn Sie eine Sicherung in einer neuen Instanz in einem anderen Projekt wiederherstellen, müssen Sie die Nutzerautorisierungen für die neue Instanz einrichten. Weitere Informationen finden Sie unter Nutzer- oder Dienstkonto mit IAM-Datenbankauthentifizierung hinzufügen.

Mit Cloud-Audit-Logs arbeiten

Sie können Audit-Logs verwenden, um Datensätze über den Datenzugriff, einschließlich Anmeldungen, aufzubewahren. Cloud-Audit-Logs sind standardmäßig deaktiviert. Sie müssen Audit-Logs zum Datenzugriff für das Tracking von Anmeldungen aktivieren. Die Verwendung von Audit-Logging zu diesem Zweck verursacht Kosten für das Logging von Daten. Weitere Informationen finden Sie unter Audit-Logs, Audit-Logs zum Datenzugriff konfigurieren und den Preisen für das Logging von Daten.

Beschränkungen

  1. Aus Sicherheitsgründen sind Anmeldungen mit der IAM-Datenbankauthentifizierung nur über eine SSL-Verbindung möglich. Unverschlüsselte Verbindungen werden abgelehnt.
  2. 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. Das Kontingent für die Autorisierung von Anmeldungen beträgt 3.000 pro Minute und Instanz.

Nächste Schritte