IAM-Authentifizierung verwalten

Auf dieser Seite erfahren Sie, wie Sie Ihre AlloyDB for PostgreSQL-Ressourcen so vorbereiten, dass die Datenbankauthentifizierung über Identity and Access Management (IAM) möglich ist.

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 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:

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

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

  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

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

Nächste Schritte