Diese Methode ergänzt die Datenbankauthentifizierung durch standardmäßige PostgreSQL-Nutzerrollen, die von jedem AlloyDB-Cluster unterstützt werden. Wenn Sie die IAM-basierte Authentifizierung in Ihrem Cluster aktivieren, können Sie sich entweder mit IAM- oder PostgreSQL-Nutzerrollen bei diesem Cluster authentifizieren.
Standardmäßig ist die IAM-basierte Authentifizierung für eine AlloyDB-Instanz nicht aktiviert. Sie können IAM-Anmeldungen aktivieren und separate IAM-basierte Datenbanknutzer einrichten:
Sie müssen die IAM-Authentifizierung manuell aktivieren 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:
Weisen Sie mithilfe der IAM-Administratortools diesem Nutzer oder Dienstkonto die Rollen
alloydb.databaseUser
undserviceusage.serviceUsageConsumer
zu.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
den neuen Datenbanknutzern Zugriffsberechtigungen für die entsprechenden Datenbanktabellen.
Sie können die letzten Schritte so oft wie nötig wiederholen, wenn Sie Ihrem AlloyDB-Cluster weitere IAM-Nutzer hinzufügen möchten.
Im Folgenden werden diese Schritte ausführlicher beschrieben.
IAM-Authentifizierung aktivieren oder deaktivieren
Wenn Sie die IAM-Authentifizierung für eine Instanz aktivieren möchten, setzen Sie das Flag alloydb.iam_authentication
für diese Instanz 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
Die Aktivierung des IAM-authentifizierten Zugriffs für einen neuen Datenbanknutzer erfolgt in zwei Schritten:
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 den zweiten Schritt so oft wiederholen, wie Sie möchten, um einem IAM-definierten 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
serviceusage.serviceUsageConsumer
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 Folgendes:
USERNAME
: Eine 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
: Die ID des Clusters, in dem dieses Datenbanknutzerkonto erstellt werden soll.REGION
: Die 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 er zusätzlichen Zugriff benötigt, können mit der PostgreSQL-Anweisung GRANT
weitere Berechtigungen gewährt werden:
GRANT SELECT ON TABLE_NAME TO "USERNAME";
Ersetzen Sie Folgendes:
USERNAME
: die E-Mail-Adresse des Nutzers Die Adresse muss in doppelte Anführungszeichen gesetzt werden.TABLE_NAME
: Der 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
Verwenden Sie den Befehl gcloud alloydb users delete
:
gcloud alloydb users delete USERNAME \
--cluster=CLUSTER \
--region=REGION
Ersetzen Sie Folgendes:
USERNAME
: Die 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
: Die ID des Clusters, aus dem dieser Nutzer entfernt werden soll.REGION
: Die ID der Region, in der sich der Cluster befindet. Beispiel:us-central1
.