IAM-Authentifizierung verwalten

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:

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:

  1. Aktualisieren Sie die IAM-Einstellungen Ihres Projekts, um dem entsprechenden IAM-Nutzer oder Dienstkonto Zugriff auf die AlloyDB-Datenbank zu gewähren.

  2. 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

  1. Rufen Sie die Seite Cluster auf.

    Zu den Clustern

  2. Klicken Sie auf den Namen des Clusters, dem Sie einen Nutzer hinzufügen möchten.

  3. Klicken Sie auf Nutzer.

  4. Klicken Sie auf Nutzerkonto hinzufügen.

  5. Wählen Sie Cloud IAM aus.

  6. 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 Dienstkonto my-service@my-project.iam.gserviceaccount.com angeben möchten, verwenden Sie hier den Wert my-service@my-project.iam.

  7. 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 Dienstkonto my-service@my-project.iam.gserviceaccount.com angeben möchten, verwenden Sie hier den Wert my-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

  1. Rufen Sie die Seite Cluster auf.

    Zu den Clustern

  2. Klicken Sie auf den Namen des Clusters, aus dem Sie den Nutzer entfernen möchten.

  3. Klicken Sie auf Nutzer.

  4. Klicken Sie in der Zeile für den Nutzer, den Sie entfernen möchten, auf Aktionen für diesen Nutzer öffnen.

  5. Klicken Sie auf Entfernen.

  6. 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 Dienstkonto my-service@my-project.iam.gserviceaccount.com angeben möchten, verwenden Sie hier den Wert my-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.

Nächste Schritte