Auf dieser Seite wird beschrieben, wie Sie Ihre AlloyDB for PostgreSQL-Instanz vorbereiten, damit die Datenbankauthentifizierung über Identity and Access Management (IAM) erfolgen kann.
Die IAM-Authentifizierung ergänzt die Datenbankauthentifizierung über PostgreSQL-Standardnutzer, die von jedem AlloyDB-Cluster unterstützt werden. Wenn Sie die IAM-Authentifizierung für Ihren Cluster aktivieren, können Sie sich mit IAM- oder PostgreSQL-Nutzerrollen bei diesem Cluster authentifizieren.
Standardmäßig ist für eine AlloyDB-Instanz keine IAM-Authentifizierung aktiviert. So aktivieren Sie die IAM-Authentifizierung:
Aktivieren Sie die IAM-Authentifizierung manuell für jede Instanz, mit der sich IAM-Nutzer oder Dienstkonten verbinden müssen.
Führen Sie für jeden IAM-Nutzer oder jedes Dienstkonto, das sich als Datenbanknutzer anmelden muss, die folgenden Schritte aus:
Gewähren Sie diesem Nutzer oder Dienstkonto mit IAM-Administratortools die Rollen
alloydb.databaseUser
undserviceusage.serviceUsageConsumer
.Erstellen Sie mit der Google Cloud CLI einen Datenbanknutzer, der diesem Nutzer oder Dienstkonto in Ihrem AlloyDB-Cluster entspricht.
Verwenden Sie ein Datenbankadministratorkonto wie
postgres
, um dem neuen Datenbanknutzer Zugriffsberechtigungen für die entsprechenden Datenbanktabellen zu erteilen.
Sie können diese Schritte wiederholen, wenn Sie Ihrem AlloyDB-Cluster weitere IAM-Nutzer hinzufügen müssen.
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-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 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 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 dem IAM-Hauptkonto eine Rolle zuweisen, alloydb.databaseUser
aus.
IAM-Nutzer oder Dienstkonto einem Cluster 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 (Hauptkonto) 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
.So weisen Sie dem Nutzer andere Rollen als die Standardrolle
alloydbsuperuser
zu:- Geben Sie den Namen der Rolle unter Rollen ein.
- Drücken Sie die Eingabetaste oder die Tabulatortaste, um die Rolle hinzuzufügen.
Wählen Sie x für alle Rollen aus, die Sie für diesen Nutzer entfernen möchten.
Weitere Informationen finden Sie unter Vordefinierte Rollen.
Klicken Sie auf Hinzufügen.
gcloud
Wenn Sie einen PostgreSQL-Datenbanknutzer auf Grundlage eines IAM-Nutzers oder Dienstkontos erstellen möchten, verwenden Sie den gcloud alloydb users create
-Befehl.
gcloud alloydb users create USERNAME \
--cluster=CLUSTER \
--region=REGION \
--type=IAM_BASED
Ersetzen Sie die folgenden Variablen:
USERNAME
: Kennung des IAM-Nutzers, 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 eingeschlossen 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
gcloud alloydb users delete
-Befehl verwenden
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
.