Rollen und Berechtigungen

Auf dieser Seite finden Sie Informationen zu IAM-Rollen (Identity and Access Management) und Berechtigungen sowie zu ihrer Verwendung mit Cloud SQL-Instanzen.

Einführung

Auf dieser Seite geht es um Aspekte von IAM mit Bezug zu Cloud SQL. Eine ausführliche Beschreibung von IAM und seinen allgemeinen Features finden Sie unter Identity and Access Management. Lesen Sie insbesondere den Abschnitt zur Verwaltung von IAM-Richtlinien. Mit IAM können Sie steuern, wer Zugriff auf die Ressourcen in Ihrem Google Cloud-Projekt hat. Die Gruppe von Zugriffsregeln, die Sie auf eine Ressource anwenden, wird als IAM-Richtlinie bezeichnet. In der IAM-Richtlinie für Ihr Projekt sind die Aktionen definiert, die Nutzer für alle Ressourcen in Ihrem Projekt ausführen können.

Mitglieder sind die Akteure bei IAM. Dies können einzelne Nutzer, Gruppen, Domains oder sogar die gesamte Öffentlichkeit sein. Den Mitgliedern werden Rollen zugewiesen, die diesen die Berechtigung geben, Aktionen in Cloud SQL sowie allgemein in Google Cloud durchzuführen. Jede Rolle umfasst eine oder mehrere Berechtigungen. Berechtigungen bilden die Grundlage von IAM: Jede Berechtigung gestattet es Ihnen, eine bestimmte Aktion auszuführen. Eine vollständige Liste aller in Cloud SQL verfügbaren Rollen und Berechtigungen finden Sie unter IAM-Rollen in Cloud SQL und IAM-Berechtigungen in Cloud SQL.

Wenn Sie ein Konto verwenden, um eine Verbindung zu einer Cloud SQL-Instanz herzustellen, muss das Konto die Rolle Cloud SQL > Client (roles/cloudsql.client) haben, die die Berechtigungen, die für die Verbindung erforderlich, enthält.

Auf der Seite IAM & Verwaltung > IAM können Sie einem Konto in der Console Rollen hinzufügen. Auf der Seite IAM & Verwaltung > Rollen lässt sich dann prüfen, welche Berechtigungen zu welchen Rollen gehören.

Cloud SQL verwendet Dienstkonten für die Authentifizierung zwischen Cloud SQL und anderen Google Cloud-Produkten. Dienstkonten stellen credentials im JSON-Format bereit, die Sie über die Console herunterladen und in verschiedenen Szenarien zur Authentifizierung verwenden können.

Ein Beispiel ist das Herstellen einer Verbindung über eine Anwendung, die in einem Docker-Container ausgeführt wird.

Cloud SQL-Rollen und -Berechtigungen mit Cloud SQL Auth-Proxy

Wenn Sie mit dem Cloud SQL Auth-Proxy eine Verbindung zu einer Cloud SQL-Instanz von einer Compute Engine-Instanz herstellen, können Sie das Compute Engine-Standarddienstkonto verwenden, das mit der Compute Engine-Instanz verknüpft ist.

Wie bei allen Konten, die eine Verbindung zu einer Cloud SQL-Instanz herstellen, muss das Dienstkonto die Rolle Cloud SQL > Client haben.

Cloud SQL-Rollen und -Berechtigungen mit serverlosen Optionen

Zu den serverlosen Optionen von Google Cloud gehören App Engine, Cloud Functions und Cloud Run.

Mit einem Dienstkonto autorisieren Sie den Zugriff von diesen Modulen. Das Dienstkonto autorisiert dabei den Zugriff auf Cloud SQL in einem bestimmten Projekt. Wenn Sie eine Anwendung oder eine Cloud Functions-Funktion erstellen, legt dieser Dienst das Konto für Sie an. Sie finden das Konto auf der Seite IAM & Verwaltung > IAM mit dem entsprechenden Suffix:

Serverlose Option Suffix des Dienstkontos
App Engine @gae-api-prod.google.com.iam.gserviceaccount.com
Cloud Functions @appspot.gserviceaccount.com
Cloud Run compute@developer.gserviceaccount.com
Wie bei allen Konten, die eine Verbindung zu einer Cloud SQL-Instanz herstellen, muss das Dienstkonto die Rolle Cloud SQL > Client haben.

Cloud SQL-Rollen und -Berechtigungen mit Cloud Storage

Die Import- und Export-Features in Cloud SQL werden kombiniert angewendet. Die Export-Features schreiben in Cloud Storage und die Import-Features lesen daraus. Daher benötigt das Dienstkonto, das Sie für diese Vorgänge verwenden, sowohl Lese- als auch Schreibberechtigungen für Cloud Storage:

  • Zum Importieren von Daten in bzw. Exportieren von Daten aus Cloud Storage muss für das Dienstkonto der Cloud SQL-Instanz im betreffenden Projekt die IAM-Rolle storage.objectAdmin festgelegt sein. Sie finden den Dienstkontonamen der Instanz in der Google Cloud Console auf der Seite Übersicht Ihrer Instanz.
  • Mit dem Befehl gsutil iam können Sie diese IAM-Rolle dem Dienstkonto für den Bucket zuweisen.
  • Informationen zum Festlegen von IAM-Rollen und -Berechtigungen finden Sie unter IAM-Berechtigungen verwenden.
  • Weitere Informationen finden Sie unter IAM für Cloud Storage.

Cloud SQL-Rollen und -Berechtigungen mit IAM-Gruppenauthentifizierung

Wenn Sie die IAM-Gruppenauthentifizierung verwenden, erstellen Sie Gruppen. Anschließend können Sie mit den Gruppen die Zugriffs- und Datenbankberechtigungen für Ihre Cloud SQL-Instanzen verwalten.

In der folgenden Tabelle sind die Rollen aufgeführt, die zum Verwalten der IAM-Gruppenauthentifizierung erforderlich sind.

Aktion Rollen
Gruppen erstellen, aufrufen und verwalten.

roles/resourcemanager.organizationViewer

Änderungslog der IAM-Gruppenmitgliedschaft ansehen

roles/logging.viewer

IAM-Berechtigungen auf Projektebene erteilen, anzeigen und festlegen.

roles/resourcemanager.projectIamAdmin

IAM-Berechtigungen auf Ordnerebene erteilen, anzeigen und festlegen.

roles/resourcemanager.folderIamAdmin

Der Administrator kann jeder Gruppe Cloud SQL-Rollen oder individuelle Cloud SQL-Berechtigungen zuweisen. Die Mitglieder jeder Gruppe übernehmen Rollen und Berechtigungen.

Berechtigung für Zugriff auf private Cloud SQL-Instanzen

Wenn ein anderer Google Cloud-Dienst wie BigQuery mit Ihrer Cloud SQL-Instanz kommunizieren muss, um auf Daten zuzugreifen und diese über eine private Verbindung abzufragen, verwendet der Dienst einen internen Pfad anstelle der privaten IP-Adressen innerhalb der Virtual Private Cloud (VPC). Der Traffic kann nicht durch Konfigurationen, VPC-Regeln, Routenrichtlinien oder eine Umstellung des Peerings gesteuert oder eingeschränkt werden.

Stattdessen bietet Cloud SQL ein Konfigurations-Flag für Ihre Instanz, um zu steuern, ob dieser interne Pfad für andere Google Cloud-Dienste aktiviert oder deaktiviert werden soll, die auf Ihre Datenbank zugreifen.

Berechtigung steuern und widerrufen

Wenn ein anderer Google Cloud-Dienst wie BigQuery versucht, auf Ihre private Cloud SQL-Instanz zuzugreifen, muss diese eine legitime Identität mit der IAM-Berechtigung cloudsql.instances.connect haben.

In der Regel gibt es zwei Möglichkeiten, dies zu erreichen:

  1. Anmeldedaten des Nutzers weiterleiten. Ein Dienst kann die IAM-Identität des Nutzers an Cloud SQL weiterleiten, um die Berechtigung für den Zugriff auf eine Instanz zu bewerten. In diesem Szenario muss der Nutzer ausreichende IAM-Berechtigungen haben, damit Cloud SQL eine erfolgreiche Verbindung herstellen kann.
  2. Dienstkonto verwenden. Ein Dienst wie BigQuery kann ein vorkonfiguriertes Dienstkonto verwenden, um eine Verbindung zu einer Cloud SQL-Instanz herzustellen. In diesem Fall muss das Dienstkonto ausreichende IAM-Berechtigungen haben.

    Beispiel: Für die föderierte Verbindung zwischen BigQuery und Cloud SQL wird ein Dienstkonto mit dem Namen service-{PROJECT_NUMBER}@gcp-sa-bigqueryconnection.iam.gserviceaccount.com erstellt, wenn die BigQuery Connection API aktiviert ist. Dieses Dienstkonto hat zwei Cloud SQL-Berechtigungen: cloudsql.instances.connect und cloudsql.instances.get. BigQuery verwendet diese Berechtigungen für den Zugriff auf eine private Cloud SQL-Instanz über einen internen Pfad.

Sie können über die Berechtigung steuern, wer diesen internen Pfad nutzen kann, indem Sie die IAM-Berechtigungen für die IAM-Identität des Nutzers gewähren oder entziehen, die ein Google Cloud-Dienst wie BigQuery verwendet, um eine Verbindung zu Ihrer Cloud SQL-Instanz herzustellen. Weitere Informationen zum Zuweisen und Entziehen von Berechtigungen in BigQuery finden Sie unter Zugriff auf Cloud SQL einrichten.

Cloud SQL-Rollen und -Berechtigungen in anderen Szenarien

Cloud SQL interagiert auch mit anderen Google Cloud-Produkten und -Tools. Dabei sind ebenso bestimmte Rollen und Berechtigungen erforderlich, die je nach Szenario variieren können. Die Cloud SQL-Dokumentation enthält detaillierte Informationen zu den Anforderungen für die folgenden Fälle:

IAM mit Projekten verwenden

In den folgenden Abschnitten wird beschrieben, wie Sie grundlegende IAM-Aufgaben an Projekten ausführen.

Für die folgenden Aufgaben benötigen Sie die IAM-Berechtigungen resourcemanager.projects.getIamPolicy und resourcemanager.projects.setIamPolicy.

Mitglieder zu einer Richtlinie auf Projektebene hinzufügen

Eine Liste der mit Cloud SQL verknüpften Rollen finden Sie unter IAM-Rollen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite IAM & Verwaltung auf.
  2. Wählen Sie im Drop-down-Menü des Projekts in der oberen Leiste das Projekt aus, dem Sie ein Mitglied hinzufügen möchten.
  3. Klicken Sie auf Hinzufügen. Das Dialogfeld Mitglieder, Rollen zum Projekt hinzufügen wird angezeigt.
  4. Geben Sie im Feld Neue Mitglieder den Namen der Entität an, auf die Sie Zugriff gewähren möchten.
  5. Wählen Sie unter Rolle auswählen die entsprechende Rolle für das Mitglied aus. Die Rollen für Cloud SQL-Ressourcen finden Sie in den Untermenüs Projekt und Cloud SQL.
  6. Klicken Sie auf Speichern.

gsutil

IAM-Richtlinien auf Projektebene werden über den gcloud-Befehl verwaltet, der Teil des Google Cloud SDK ist. Wenn Sie eine Richtlinie auf Projektebene hinzufügen möchten, verwenden Sie gcloud beta projects add-iam-policy-binding.

IAM-Richtlinie für ein Projekt aufrufen

Console

  1. Rufen Sie in der Google Cloud Console die Seite IAM & Verwaltung auf.
  2. Wählen Sie im Drop-down-Menü des Projekts in der oberen Leiste das Projekt aus, dessen Richtlinie Sie aufrufen möchten.
  3. Zum Anzeigen von Berechtigungen für das Projekt haben Sie zwei Möglichkeiten:
    • Anzeige nach Mitgliedern: Wenn Sie feststellen möchten, welche Rollen die einzelnen Mitglieder haben, rufen Sie die Spalte Rolle auf, die einzelnen Mitgliedern zugeordnet ist.
    • Anzeige nach Rollen: Wenn Sie feststellen möchten, welche Mitglieder eine bestimmte Rolle haben, verwenden Sie das Drop-down-Menü für die einzelnen Rollen.

gsutil

IAM-Richtlinien auf Projektebene werden über den gcloud-Befehl verwaltet, der Teil des Google Cloud SDK ist. Verwenden Sie den Befehl gcloud beta projects get-iam-policy, um die IAM-Richtlinie eines Projekts anzusehen.

Mitglieder aus einer Richtlinie auf Projektebene entfernen

Console

  1. Rufen Sie in der Google Cloud Console die Seite IAM & Verwaltung auf.
  2. Wählen Sie im Drop-down-Menü des Projekts in der oberen Leiste das Projekt aus, aus dem Sie ein Mitglied entfernen möchten.
  3. Prüfen Sie, ob die Berechtigungen nach Mitglieder angezeigt werden, und wählen Sie die Mitglieder aus, die Sie entfernen möchten.
  4. Klicken Sie auf Entfernen.
  5. Klicken Sie im eingeblendeten Fenster auf Bestätigen.

gsutil

IAM-Richtlinien auf Projektebene werden über den gcloud-Befehl verwaltet, der Teil des Google Cloud SDK ist. Wenn Sie eine Richtlinie auf Projektebene entfernen möchten, verwenden Sie gcloud beta projects remove-iam-policy-binding.

Best Practices

IAM erfordert ebenso wie andere administrative Einstellungen eine aktive Verwaltung, um wirksam zu sein. Bevor Sie anderen Nutzern Zugriff auf eine Ressource gewähren, sollten Sie wissen, welche Rollen diese Personen spielen sollen. Veränderungen im Projektmanagement, den Nutzungsmustern sowie den Verantwortungsbereichen im Unternehmen können es im Lauf der Zeit erforderlich machen, die IAM-Einstellungen für Projekte anzupassen, insbesondere wenn Sie Cloud SQL in einer großen Organisation oder für eine große Gruppe von Nutzern verwalten. Berücksichtigen Sie die folgenden Best Practices bei der Bewertung und Planung Ihrer Zugriffssteuerungseinstellungen:

  • Gewähren Sie Zugriff nach dem Prinzip der geringsten Berechtigung. Das Prinzip der geringsten Berechtigung ist eine Sicherheitsrichtlinie zum Gewähren von Zugriff auf Ihre Ressourcen. Wenn Sie Zugriff anhand des Prinzips der geringsten Berechtigung gewähren, erteilen Sie einem Nutzer nur den Zugriff, den er für die zugewiesene Aufgabe benötigt.

  • Weisen Sie Personen, die Sie nicht kennen, keine Rollen mit der Berechtigung setIamPolicy zu. Mit der Berechtigung setIamPolicy können Nutzer Berechtigungen ändern und die Kontrolle über Daten übernehmen. Sie sollten Rollen mit der Berechtigung setIamPolicy nur verwenden, wenn Sie die administrative Kontrolle über Objekte und Buckets delegieren möchten.

  • Achten Sie darauf, die administrative Kontrolle Ihrer Ressourcen zu delegieren. Achten Sie darauf, dass Ihre Ressourcen weiterhin von anderen Teammitgliedern verwaltet werden können, wenn eine Person mit Administratorzugriff die Gruppe verlässt. Dazu gibt es zwei gängige Möglichkeiten:

    • Weisen Sie die Rolle Cloud SQL-Administrator für Ihr Projekt einer Gruppe statt einer einzelnen Person zu.
    • Weisen Sie Ihrem Projekt die Rolle Cloud SQL-Administrator für mindestens zwei Personen zu.

Nächste Schritte