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.
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 |
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
gcloud storage buckets add-iam-policy-binding
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.
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 den Zugriff und die 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. |
|
Rufen Sie das Änderungslog für die IAM-Gruppenmitgliedschaft auf. |
|
IAM-Berechtigungen auf Projektebene erteilen, anzeigen und festlegen. |
|
IAM-Berechtigungen auf Ordner-ebene erteilen, anzeigen und festlegen. |
|
Der Administrator kann jeder Gruppe Cloud SQL-Rollen zuweisen oder jeder Gruppe individuelle Cloud SQL-Berechtigungen zuweisen. Die Mitglieder der einzelnen Gruppen übernehmen die Rollen und Berechtigungen.
Cloud SQL-Rollen und ‑Berechtigungen für die Dataplex-Integration
Wenn Sie Zugriff auf Cloud SQL-Metadaten in Dataplex gewähren möchten, können Sie einem Nutzer die Rolle roles/cloudsql.schemaViewer
zuweisen oder die Berechtigung cloudsql.schemas.view
einer benutzerdefinierten Rolle hinzufügen.
Weitere Informationen finden Sie unter Cloud SQL-Ressourcen mit Dataplex Catalog verwalten.
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:
- 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.
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
undcloudsql.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:
- Herstellen einer Verbindung zu Cloud SQL über externe Anwendungen
- Vom Kunden verwaltete Verschlüsselungsschlüssel verwenden
- IAM-Rollen für die Verwaltung von VPC Service Controls
- Für das Herstellen einer Verbindung von einer in Google Kubernetes Engine ausgeführten Anwendung zu einer Cloud SQL-Instanz müssen Sie ein Secret für die JSON-Schlüsseldatei eines Dienstkontos erstellen
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
- Rufen Sie in der Google Cloud Console die Seite IAM & Verwaltung auf.
- Wählen Sie im Drop-down-Menü des Projekts in der oberen Leiste das Projekt aus, dem Sie ein Mitglied hinzufügen möchten.
- Klicken Sie auf Hinzufügen. Das Dialogfeld Mitglieder, Rollen zum Projekt hinzufügen wird angezeigt.
- Geben Sie im Feld Neue Mitglieder den Namen der Entität an, auf die Sie Zugriff gewähren möchten.
- 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.
- Klicken Sie auf Speichern.
gcloud
Wenn Sie eine IAM-Richtlinie auf Projektebene hinzufügen möchten, verwenden Sie gcloud beta projects add-iam-policy-binding
.
IAM-Richtlinie für ein Projekt aufrufen
Console
- Rufen Sie in der Google Cloud Console die Seite IAM & Verwaltung auf.
- Wählen Sie im Drop-down-Menü des Projekts in der oberen Leiste das Projekt aus, dessen Richtlinie Sie aufrufen möchten.
- 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.
gcloud
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
- Rufen Sie in der Google Cloud Console die Seite IAM & Verwaltung auf.
- Wählen Sie im Drop-down-Menü des Projekts in der oberen Leiste das Projekt aus, aus dem Sie ein Mitglied entfernen möchten.
- Prüfen Sie, ob die Berechtigungen nach Mitglieder angezeigt werden, und wählen Sie die Mitglieder aus, die Sie entfernen möchten.
- Klicken Sie auf Entfernen.
- Klicken Sie im eingeblendeten Fenster auf Bestätigen.
gcloud
Wenn Sie eine IAM-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 BerechtigungsetIamPolicy
können Nutzer Berechtigungen ändern und die Kontrolle über Daten übernehmen. Sie sollten Rollen mit der BerechtigungsetIamPolicy
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.