Auf dieser Seite wird beschrieben, wie Sie Ihre AlloyDB for PostgreSQL-Instanz für die Datenbankauthentifizierung über Identity and Access Management (IAM) vorbereiten.
Die IAM-Authentifizierung ergänzt die Datenbankauthentifizierung durch Standard-PostgreSQL-Nutzer, die von jedem AlloyDB-Cluster unterstützt werden. Wenn Sie die IAM-Authentifizierung in Ihrem Cluster aktivieren, können Sie sich entweder mit IAM- oder PostgreSQL-Nutzerrollen bei diesem Cluster authentifizieren.
Standardmäßig ist die IAM-Authentifizierung für eine AlloyDB-Instanz nicht aktiviert. So aktivieren Sie die IAM-Authentifizierung:
Aktivieren Sie die IAM-Authentifizierung manuell auf jeder Instanz, zu der IAM-Nutzer oder ‑Dienstkonten eine Verbindung herstellen müssen.
Führen Sie für jeden IAM-Nutzer oder jedes Dienstkonto, das sich als Datenbanknutzer anmelden muss, die folgenden Schritte aus:
Erstellen Sie mit der Google Cloud CLI einen Datenbanknutzer, der diesem Nutzer oder Dienstkonto in Ihrem AlloyDB-Cluster entspricht.
Gewähren Sie mit einem Datenbankadministratorkonto wie
postgres
dem neuen Datenbanknutzer Zugriffsberechtigungen für die entsprechenden Datenbanktabellen.
Sie können diese Schritte wiederholen, wenn Sie Ihrem AlloyDB-Cluster weitere IAM-Nutzer hinzufügen möchten.
IAM-Authentifizierung aktivieren oder deaktivieren
Wenn Sie die IAM-Authentifizierung für eine Instanz aktivieren möchten, setzen Sie das Flag alloydb.iam_authentication
auf on
.
Wenn Sie die IAM-Authentifizierung für eine Instanz deaktivieren möchten, setzen Sie alloydb.iam_authentication
auf den Standardwert off
zurück.
Weitere Informationen zum Festlegen von Flags für AlloyDB-Instanzen finden Sie unter Datenbank-Flags einer Instanz konfigurieren.
IAM-Nutzer oder Dienstkonto Zugriff auf eine Instanz gewähren
Der IAM-Zugriff für einen neuen Datenbanknutzer kann in zwei Schritten aktiviert werden:
Aktualisieren Sie die IAM-Einstellungen Ihres Projekts, um dem entsprechenden IAM-Nutzer oder Dienstkonto Zugriff auf die AlloyDB-Datenbank zu gewähren.
Erstellen Sie einen neuen Datenbanknutzer in Ihrem Cluster und legen Sie den Nutzernamen als E-Mail-Adresse des IAM-Nutzers oder -Dienstkontos fest.
Sie können Schritt 2 wiederholen, um einem IAM-Konto Zugriff auf andere Cluster in Ihrem Projekt zu gewähren.
IAM-Konto mit der entsprechenden Rolle aktualisieren
Sie können IAM-Nutzern oder Dienstkonten die Möglichkeit geben, sich bei AlloyDB-Instanzen zu authentifizieren, indem Sie ihnen die folgenden IAM-Rollen zuweisen:
alloydb.databaseUser
: Ermöglicht es dem Nutzer, eine Verbindung zu Ihrer AlloyDB-Instanz herzustellen.serviceusage.serviceUsageConsumer
: Ermöglicht dem Nutzer den Zugriff auf eine API, die Berechtigungen prüft.
Folgen Sie dazu der Anleitung unter Anderen Nutzern Zugriff gewähren. Wählen Sie im Schritt, in dem Sie eine Rolle für das IAM-Hauptkonto auswählen, alloydb.databaseUser
aus.
Clustern einen IAM-Nutzer oder ein IAM-Dienstkonto hinzufügen
Console
Rufen Sie die Seite Cluster auf.
Klicken Sie auf den Namen des Clusters, dem Sie einen Nutzer hinzufügen möchten.
Klicken Sie auf Nutzer.
Klicken Sie auf Nutzerkonto hinzufügen.
Wählen Sie Cloud IAM aus.
Geben Sie im Feld Principal das IAM-Hauptkonto ein.
Geben Sie für ein IAM-Nutzerkonto die vollständige E-Mail-Adresse des Nutzerkontos an. Beispiel:
kai@altostrat.com
.Geben Sie für ein IAM-Dienstkonto die Adresse des Dienstkontos ohne das Suffix
.gserviceaccount.com
an. Wenn Sie beispielsweise das Dienstkontomy-service@my-project.iam.gserviceaccount.com
angeben möchten, verwenden Sie hier den Wertmy-service@my-project.iam
.Klicken Sie auf Hinzufügen.
gcloud
Wenn Sie einen PostgreSQL-Datenbanknutzer auf der Grundlage eines IAM-Nutzers oder Dienstkontos erstellen möchten, verwenden Sie den Befehl gcloud alloydb users create
.
gcloud alloydb users create USERNAME \
--cluster=CLUSTER \
--region=REGION \
--type=IAM_BASED
Ersetzen Sie die folgenden Variablen:
USERNAME
: Kennung für den IAM-Nutzer, den Sie als neuen Datenbanknutzer hinzufügen möchten.Geben Sie für ein IAM-Nutzerkonto die vollständige E-Mail-Adresse des Nutzerkontos an. Beispiel:
kai@altostrat.com
.Geben Sie für ein IAM-Dienstkonto die Adresse des Dienstkontos ohne das Suffix
.gserviceaccount.com
an. Wenn Sie beispielsweise das Dienstkontomy-service@my-project.iam.gserviceaccount.com
angeben möchten, verwenden Sie hier den Wertmy-service@my-project.iam
.CLUSTER
: ID des Clusters, in dem dieses Datenbanknutzerkonto erstellt werden soll.REGION
: ID der Region, in der sich der Cluster befindet. Beispiel:us-central1
.
IAM-Nutzern die entsprechenden Datenbankberechtigungen erteilen
Wenn ein IAM-Nutzer einer Datenbankinstanz hinzugefügt wird, erhält dieser neue Nutzer standardmäßig keine Berechtigungen für Datenbanken.
Wenn ein Nutzer- oder Dienstkonto eine Verbindung zu einer Datenbank herstellt, kann es Abfragen gegen alle Datenbankobjekte ausführen, für die ÖFFENTLICH-Zugriff gewährt wurde.
Wenn sie zusätzlichen Zugriff benötigen, können mit der GRANT
PostgreSQL-Anweisung weitere Berechtigungen gewährt werden.
GRANT SELECT ON TABLE_NAME TO "USERNAME";
Ersetzen Sie die folgenden Variablen:
USERNAME
: E-Mail-Adresse des Nutzers Die Adresse muss in doppelte Anführungszeichen gesetzt werden.TABLE_NAME
: Name der Tabelle, auf die Sie dem Nutzer Zugriff gewähren möchten.
IAM-Nutzer oder Dienstkonto aus einem Cluster entfernen
Console
Rufen Sie die Seite Cluster auf.
Klicken Sie auf den Namen des Clusters, aus dem Sie den Nutzer entfernen möchten.
Klicken Sie auf Nutzer.
Klicken Sie in der Zeile für den Nutzer, den Sie entfernen möchten, auf
Aktionen für diesen Nutzer öffnen.Klicken Sie auf Entfernen.
Klicken Sie im Dialogfeld Nutzerkonto entfernen? auf Entfernen.
gcloud
Führen Sie den Befehl gcloud alloydb users delete
aus.
gcloud alloydb users delete USERNAME \
--cluster=CLUSTER \
--region=REGION
Ersetzen Sie Folgendes:
USERNAME
: Kennung des IAM-Nutzers, den Sie aus dem Cluster entfernen möchten.Geben Sie für ein IAM-Nutzerkonto die vollständige E-Mail-Adresse des Nutzerkontos an. Beispiel:
kai@altostrat.com
.Geben Sie für ein IAM-Dienstkonto die Adresse des Dienstkontos ohne das Suffix
.gserviceaccount.com
an. Wenn Sie beispielsweise das Dienstkontomy-service@my-project.iam.gserviceaccount.com
angeben möchten, verwenden Sie hier den Wertmy-service@my-project.iam
.CLUSTER
: ID des Clusters, aus dem dieser Nutzer entfernt werden soll.REGION
: ID der Region, in der sich der Cluster befindet. Beispiel:us-central1
.