Zugriffssteuerung mit IAM

Auf dieser Seite wird beschrieben, wie Sie den Projektzugriff und Berechtigungen für Memorystore for Redis mithilfe von Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM) steuern können.

Überblick

Google Cloud bietet mit der IAM die Möglichkeit, den Zugriff auf einzelne Google Cloud-Ressourcen präzise zu steuern und unerwünschten Zugriff auf andere Ressourcen zu verhindern. Auf dieser Seite werden die IAM-Rollen und -Berechtigungen für Memorystore for Redis beschrieben. Eine ausführliche Beschreibung der Rollen und Berechtigungen finden Sie in der IAM-Dokumentation.

Memorystore for Redis bietet eine Reihe vordefinierter Rollen, mit denen Sie den Zugriff auf Redis-Ressourcen einfach steuern können. Wenn die vordefinierten Rollen nicht die erforderlichen Berechtigungen bereitstellen, können Sie auch eigene benutzerdefinierte Rollen erstellen. Zusätzlich stehen Ihnen die älteren einfachen Rollen (Bearbeiter, Betrachter und Inhaber) nach wie vor zur Verfügung, auch wenn sie nicht die gleiche detaillierte Steuerung wie die Memorystore for Redis-Rollen bieten. Insbesondere ermöglichen die einfachen Rollen Zugriff auf Ressourcen in der gesamten Google Cloud und nicht nur in Memorystore for Redis. Weitere Informationen zu einfachen Rollen finden Sie unter Einfache Rollen.

Berechtigungen und Rollen

In diesem Abschnitt werden die Berechtigungen und Rollen zusammengefasst, die Memorystore for Redis unterstützt.

Vordefinierte Rollen

Memorystore for Redis bietet vordefinierte Rollen, mit denen Sie detailliertere Berechtigungen für Hauptkonten bereitstellen können. Die Rolle, die Sie einem Hauptkonto zuweisen, legt fest, welche Aktionen mit dem Hauptkonto ausgeführt werden können. Hauptkonten können Einzelpersonen, Gruppen oder Dienstkonten sein.

Sie können einem Hauptkonto mehrere Rollen zuweisen. Wenn Sie die entsprechenden Berechtigungen haben, können Sie die zugewiesenen Rollen auch jederzeit ändern.

Die Rollen mit höheren Berechtigungen beinhalten die Rollen mit niedrigeren Berechtigungen. Die Redis-Rolle "Bearbeiter" enthält beispielsweise alle Berechtigungen der Redis-Rolle "Betrachter" zusammen mit den Berechtigungen der Redis-Rolle "Bearbeiter". Die Redis-Rolle "Administrator" umfasst alle Berechtigungen der Redis-Rolle "Bearbeiter" sowie entsprechende weitere Berechtigungen.

Die einfachen Rollen (Inhaber, Bearbeiter, Betrachter) stellen Berechtigungen für Google Cloud bereit. Die für Memorystore for Redis spezifischen Rollen bieten nur Memorystore for Redis-Berechtigungen, mit Ausnahme der folgenden Google Cloud-Berechtigungen, die für die allgemeine Nutzung in Google Cloud erforderlich sind:

resourcemanager.projects.get
resourcemanager.projects.list

In der folgenden Tabelle werden die vordefinierten Rollen aufgelistet, die für Memorystore for Redis verfügbar sind, zusammen mit ihren Memorystore for Redis-Berechtigungen:

Rolle Name Redis-Berechtigungen Beschreibung

roles/owner

Owner

redis.*

Uneingeschränkter Zugriff auf und Kontrolle über alle Google Cloud-Ressourcen; Verwaltung des Nutzerzugriffs

roles/editor

Editor Alle redis -Berechtigungen, außer für *.getIamPolicy .setIamPolicy Lese- und Schreibzugriff auf alle Google Cloud- und Redis-Ressourcen; vollständige Kontrolle mit Ausnahme der Möglichkeit, Berechtigungen zu ändern

roles/viewer

Betrachter

redis.*.get redis.*.list

Lesezugriff auf alle Google Cloud-Ressourcen, einschließlich Redis-Ressourcen

roles/redis.admin

Redis-Administrator

redis.*

Uneingeschränkte Kontrolle über alle Cloud Memorystore for Redis-Ressourcen.

roles/redis.editor

Redis-Bearbeiter Alle redis-Berechtigungen außer

redis.instances.create redis.instances.delete redis.instances.upgrade redis.instances.import redis.instances.export redis.instances.updateAuth redis.instances.getAuthString redis.operations.delete

Memorystore for Redis-Instanzen verwalten. Kann keine Instanzen erstellen oder löschen.

roles/redis.viewer

Redis-Betrachter Alle redis-Berechtigungen außer

redis.instances.create redis.instances.delete redis.instances.update redis.instances.upgrade redis.instances.import redis.instances.export redis.instances.updateAuth redis.instances.getAuthString redis.operations.delete

Lesezugriff auf alle Memorystore for Redis-Ressourcen.

Berechtigungen und ihre Rollen

In der folgenden Tabelle sind alle Berechtigungen aufgeführt, die Memorystore for Redis unterstützt, sowie die zugehörigen Memorystore for Redis-Rollen:

Berechtigung Redis-Rolle Einfache Rolle

redis.instances.list

Redis-Administrator
Redis-Bearbeiter
Redis-Betrachter
Leser

redis.instances.get

Redis-Administrator
Redis-Bearbeiter
Redis-Betrachter
Leser

redis.instances.create

Redis-Administrator Autor

redis.instances.update

Redis-Administrator
Redis-Bearbeiter
Autor

redis.instances.updateAuth

Redis-Administrator Autor

redis.instances.getAuthString

Redis-Administrator Autor

redis.instances.delete

Redis-Administrator Autor

redis.instances.upgrade

Redis-Administrator Autor

redis.instances.import

Redis-Administrator Autor

redis.instances.export

Redis-Administrator Autor

redis.locations.list

Redis-Administrator
Redis-Bearbeiter
Redis-Betrachter
Leser

redis.locations.get

Redis-Administrator
Redis-Bearbeiter
Redis-Betrachter
Leser

redis.operations.list

Redis-Administrator
Redis-Bearbeiter
Redis-Betrachter
Leser

redis.operations.get

Redis-Administrator
Redis-Bearbeiter
Redis-Betrachter
Leser

redis.operations.delete

Redis-Administrator Autor

Benutzerdefinierte Rollen

Wenn die vordefinierten Rollen Ihren einmaligen Geschäftsanforderungen nicht gerecht werden, können Sie Ihre eigenen benutzerdefinierten Rollen definieren. Hierbei können Sie die gewünschten Berechtigungen definieren. Dafür bietet IAM benutzerdefinierte Rollen. Wenn Sie benutzerdefinierte Rollen für Memorystore for Redis erstellen, achten Sie darauf, dass sowohl resourcemanager.projects.get als auch resourcemanager.projects.list enthalten sind. Andernfalls funktioniert die Google Cloud Console für Memorystore for Redis nicht ordnungsgemäß. Weitere Informationen finden Sie unter Berechtigungsabhängigkeiten. Informationen zum Erstellen einer benutzerdefinierten Rolle finden Sie unter Benutzerdefinierte Rolle erstellen.

Erforderliche Berechtigungen für allgemeine Aufgaben in der Google Cloud Console

Damit ein Nutzer über die Google Cloud Console mit Memorystore for Redis arbeiten kann, muss die Rolle des Nutzers die Berechtigungen resourcemanager.projects.get und resourcemanager.projects.list enthalten.

Die folgende Tabelle enthält weitere Berechtigungen, die für einige allgemeine Aufgaben in der Google Cloud Console erforderlich sind:

Task Zusätzliche erforderliche Berechtigungen
Seite mit der Instanzliste anzeigen

redis.instances.get
redis.instances.list

Instanz erstellen und bearbeiten

redis.instances.create
redis.instances.get
redis.instances.list
compute.networks.list

Instanz löschen

redis.instances.delete
redis.instances.get
redis.instances.list

Verbindung zu einer Instanz aus der Cloud Shell herstellen

redis.instances.get
redis.instances.list
redis.instances.update

Instanzinformationen aufrufen

redis.instances.get
monitoring.timeSeries.list

RDB-Sicherungsdateien importieren und exportieren

redis.instances.import
redis.instances.export

Upgrade der Redis-Version einer Instanz durchführen

redis.instances.upgrade

Erforderliche Berechtigungen für gcloud-Befehle

Damit ein Nutzer Memorystore for Redis mit gcloud-Befehlen verwenden kann, muss die Rolle des Nutzers die Berechtigungen resourcemanager.projects.get und resourcemanager.projects.list enthalten.

In der folgenden Tabelle sind die Berechtigungen aufgeführt, die der Nutzer, der einen gcloud-Befehl aufruft, für jeden Unterbefehl gcloud redis haben muss:

Befehl Erforderliche Berechtigungen
gcloud redis instances auth

redis.instances.updateAuth
redis.instances.getAuthString

gcloud redis instances create

redis.instances.get
redis.instances.create

gcloud redis instances delete

redis.instances.delete

gcloud redis instances update

redis.instances.get
redis.instances.update

gcloud redis instances list

redis.instances.list

gcloud redis instances describe

redis.instances.get

gcloud redis instances import

redis.instances.import

gcloud redis instances export

redis.instances.export

gcloud redis instances upgrade

redis.instances.upgrade

gcloud redis operations list

redis.operations.list

gcloud redis operations describe

redis.operations.get

gcloud redis regions list

redis.locations.list

gcloud redis regions describe

redis.locations.get

gcloud redis zones list

redis.locations.list

Erforderliche Berechtigungen für API-Methoden

In der folgenden Tabelle sind die Berechtigungen aufgeführt, die zum Aufrufen der einzelnen Methoden in der Memorystore for Redis API oder zum Ausführen von Aufgaben mit Google Cloud-Tools benötigt werden, die die API verwenden (z. B. die Google Cloud Console oder das gcloud-Befehlszeilentool):

Methode Erforderliche Berechtigungen

locations.get

redis.locations.get

locations.list

redis.locations.list

instances.create

redis.instances.create

instances.delete

redis.instances.delete

instances.get

redis.instances.get

instances.list

redis.instances.list

instances.patch

redis.instances.update

instances.import

redis.instances.import

instances.export

redis.instances.export

instances.upgrade

redis.instances.upgrade

operations.get

redis.operations.get

operations.list

redis.operations.list

Das Memorystore for Redis-Dienstkonto

Jede Memorystore for Redis-Instanz hat ein Dienstkonto, das für die Kommunikation mit anderen Google Cloud-Ressourcen verwendet wird.

Manchmal (z. B. beim exporting oder Verwenden von CMEK) müssen Sie dem Dienstkonto bestimmte Rollen oder Berechtigungen zuweisen.

Memorystore for Redis-Dienstkontoformat

Das Dienstkonto Ihrer Instanz verwendet je nachdem, wann es erstellt wurde, eines von zwei verschiedenen Formaten.

  • Das erste Format ist:

    [PROJECT_NUMBER]-compute@developer.gserviceaccount.com

  • Das zweite Format lautet:

    service-[PROJECT_NUMBER]@cloud-redis.iam.gserviceaccount.com

Unter Dienstkonto Ihrer Instanz ansehen erfahren Sie, welches Dienstkonto die Instanz verwendet.

Bekannte Probleme

Manchmal kann ein Dienstkonto mit dem Format [PROJECT_NUMBER]-compute@developer.gserviceaccount.com mit Ihrer Organisationsrichtlinie in Konflikt stehen. Weitere Informationen und Schritte zum Beheben dieses Problems finden Sie unter Probleme mit der Organisationsrichtlinie für die domaineingeschränkte Freigabe.

Rufen Sie das Dienstkonto der Instanz auf:

Führen Sie den folgenden Befehl aus und notieren Sie sich das Dienstkonto, das unter persistenceIamIdentity aufgeführt ist, um das Dienstkonto für Ihre Instanz aufzurufen:

gcloud redis instances describe [INSTANCE_ID] --region=[REGION]

Berechtigungen für Redis AUTH

Die folgende Tabelle enthält die Mindestberechtigungen, die ein Nutzer zum Ausführen einiger grundlegender AUTH-Aufgaben von Memorystore for Redis ausführen muss.

Berechtigungen erforderlich Erstellen einer Memorystore-Instanz mit aktiviertem Redis AUTH. Aktivieren / deaktivieren Sie AUTH in einer vorhandenen Redis-Instanz. Sehen Sie sich den AUTH-String an. Prüfen Sie, ob AUTH für eine Redis-Instanz aktiviert / deaktiviert ist.
redis.instances.create X X X
redis.instances.update X X X
redis.instances.get X X X
redis.instances.updateAuth X X
redis.instances.getAuthString X X X

Berechtigungen für die Verschlüsselung während der Übertragung

Die folgende Tabelle enthält die Berechtigungen, die zum Aktivieren und Verwalten der Verschlüsselung während der Übertragung für Memorystore for Redis erforderlich sind.

Berechtigungen erforderlich Memorystore-Instanz mit Verschlüsselung während der Übertragung erstellen Zertifizierungsstelle herunterladen
redis.instances.create X
redis.instances.get X

Berechtigungen für Wartungsrichtlinien

Die folgende Tabelle enthält die Berechtigungen, die zum Verwalten der Wartungsrichtlinie für Memorystore for Redis erforderlich sind.

Berechtigungen erforderlich Memorystore-Instanz mit aktivierter Wartungsrichtlinie erstellen Wartungsrichtlinien für eine vorhandene Memorystore-Instanz erstellen oder ändern Einstellungen für Wartungsrichtlinien aufrufen Wartung verschieben
redis.instances.create X X X
redis.instances.update X X X
redis.instances.get X X X
redis.instances.rescheduleMaintenance X X X

Erforderliche Berechtigungen für Import und Export

Die Verwendung benutzerdefinierter Rollen zum Importieren und Exportieren erfordert zwei separate benutzerdefinierte Rollen. Eine benutzerdefinierte Rolle für den Nutzer und eine zusätzliche benutzerdefinierte Rolle für das Dienstkonto der Redis-Instanz. Die benutzerdefinierte Rolle für das Dienstkonto verwendet Berechtigungen auf Cloud Storage-Bucket-Ebene.

Unter Dienstkonto Ihrer Instanz ansehen erfahren Sie, wie Sie das Dienstkonto für Ihre Instanz finden.

Berechtigungen für das Dienstkonto

Sie müssen dem Dienstkonto nur Storage-Berechtigungen auf Bucket-Ebene zuweisen, nicht auf das gesamte Projekt. Eine Anleitung finden Sie unter Hauptkonten zu einer Richtlinie auf Bucket-Ebene hinzufügen.

Nachdem Sie Ihrem Dienstkonto Berechtigungen auf Bucket-Ebene gewährt haben, können Sie die Meldung „Memorystore kann nicht prüfen, ob das Dienstkonto xxxx@xxxx.gserviceaccount.com die erforderlichen Berechtigungen zum Importieren/Exportieren hat. Wenn Sie Hilfe beim Überprüfen oder Aktualisieren von Berechtigungen benötigen, wenden Sie sich an den Administrator Ihres Projekts. Informationen zu den erforderlichen Berechtigungen finden Sie in der Dokumentation zu Import-/Exportberechtigungen." Wenn Sie die unten aufgeführten Berechtigungen auf benutzerdefinierte Rollen für das Nutzerkonto und das Dienstkonto anwenden, ist der Import/Export erfolgreich.

Berechtigungen für benutzerdefinierte Rolle für das Dienstkonto Mit gcloud importieren Mit gcloud exportieren Mit der Google Cloud Console importieren Mit der Google Cloud Console exportieren
storage.buckets.get
storage.objects.get X X
storage.objects.create X X
storage.objects.delete X Optional.
(Berechtigung zum Überschreiben einer vorhandenen RDB-Datei).
X Optional.
(Berechtigung zum Überschreiben einer vorhandenen RDB-Datei).

Berechtigungen für das Nutzerkonto

Berechtigungen für die benutzerdefinierte Rolle für das Nutzerkonto Mit gcloud importieren Mit gcloud exportieren Mit der Google Cloud Console importieren Mit der Google Cloud Console exportieren
resourcemanager.projects.get X X
redis.instances.get
redis.instances.list X X X X
redis.instances.import X X
redis.instances.export X X
redis.operations.get X
redis.operations.list X X
redis.operations.cancel
storage.buckets.list X X
storage.buckets.get X X
storage.objects.list X X
storage.objects.get X X

Nächste Schritte