IAM-Authentifizierung

Memorystore bietet die IAM-Authentifizierung (Identity and Access Management), mit der Sie den Anmeldezugriff für Nutzer und Dienstkonten besser verwalten können. Die IAM-basierte Authentifizierung ist in Redis AUTH integriert. So können Sie Anmeldedaten (IAM-Tokens) nahtlos rotieren, ohne auf statische Passwörter angewiesen zu sein.

Eine Anleitung zum Einrichten der IAM-Authentifizierung für Ihren Memorystore-Cluster finden Sie unter IAM-Authentifizierung verwalten.

IAM-Authentifizierung für Redis

Bei Verwendung der IAM-Authentifizierung wird dem Endnutzer die Berechtigung für den Zugriff auf einen Memorystore-Cluster nicht direkt gewährt. Stattdessen werden Berechtigungen in Rollen gruppiert, die dann Hauptkonten zugewiesen werden. Weitere Informationen finden Sie in der IAM-Übersicht.

Administratoren, die sich mit IAM authentifizieren, können die Memorystore-IAM-Authentifizierung verwenden, um die Zugriffssteuerung für ihre Instanzen zentral über IAM-Richtlinien zu verwalten. IAM-Richtlinien umfassen die folgenden Entitäten:

  • Hauptkonten. In Memorystore können Sie zwei Arten von Hauptkonten verwenden: ein Nutzerkonto und ein Dienstkonto (für Anwendungen). Andere Arten von Hauptkonten wie Google Groups-Gruppen, Google Workspace-Domains oder Cloud Identity-Domains werden für die IAM-Authentifizierung noch nicht unterstützt. Weitere Informationen finden Sie unter Identitätskonzepte.

  • Rollen: Für die Memorystore-IAM-Authentifizierung benötigt ein Nutzer die Berechtigung redis.clusters.connect, um sich bei einem Cluster zu authentifizieren. Damit der Nutzer diese Berechtigung erhält, können Sie ihn oder das Dienstkonto an die vordefinierte Rolle „Redis Cluster DB Connection User“ (roles/redis.dbConnectionUser) binden. Weitere Informationen zu IAM-Rollen finden Sie unter Rollen.

  • Ressourcen: Die Ressourcen, auf die Hauptkonten zugreifen, sind Memorystore-Cluster. Standardmäßig werden IAM-Richtlinienbindungen auf Projektebene angewendet, sodass Hauptkonten Rollenberechtigungen für alle Memorystore-Instanzen im Projekt erhalten. IAM-Richtlinienbindungen können jedoch auf einen bestimmten Cluster beschränkt werden. Eine Anleitung finden Sie unter Berechtigungen für die IAM-Authentifizierung verwalten.

Redis AUTH-Befehl

Das Feature zur IAM-Authentifizierung verwendet den Redis AUTH-Befehl zur Integration in IAM. So können Clients ein IAM-Zugriffstoken bereitstellen, das vom Memorystore-Cluster überprüft wird, bevor der Zugriff auf Daten gewährt wird.

Wie jeder Befehl wird auch der AUTH-Befehl unverschlüsselt gesendet, sofern Verschlüsselung bei der Übertragung nicht aktiviert ist.

Ein Beispiel dafür, wie der AUTH-Befehl aussehen kann, finden Sie unter Verbindung zu einem Redis-Cluster herstellen, der die IAM-Authentifizierung verwendet.

Zeitrahmen für IAM-Zugriffstoken

Standardmäßig läuft das IAM-Zugriffstoken, das Sie im Rahmen der Authentifizierung abrufen, eine Stunde nach dem Abrufen ab. Alternativ können Sie beim Generieren des Zugriffstokens die Ablaufzeit des Zugriffstokens definieren.

Wenn Sie eine neue Redis-Verbindung herstellen, müssen Sie mit dem Befehl AUTH ein gültiges Zugriffstoken präsentieren. Wenn das Token abläuft, müssen Sie ein neues Token abrufen, um neue Verbindungen herzustellen. Wenn Sie jedoch bereits eine bestehende Verbindung authentifiziert haben, funktioniert sie auch weiterhin, selbst wenn das Token abläuft.

Authentifizierte Verbindung beenden

Wenn Sie die Verbindung beenden möchten, verwenden Sie den Redis-Befehl CLIENT KILL. Um die Verbindung zu finden, die Sie beenden möchten, führen Sie zuerst CLIENT LIST aus. Dadurch werden Clientverbindungen nach Alter zurückgegeben. Anschließend können Sie CLIENT KILL ausführen, um die Verbindung zu beenden.

IAM-Authentifizierung aktivieren

Die Aktivierung der IAM-Authentifizierung beeinträchtigt die Leistung im Steady State nicht. Es wirkt sich jedoch auf die Geschwindigkeit aus, mit der Sie eine Verbindung herstellen können.

Wenn Sie die IAM-Authentifizierung aktivieren, wird die Rate der Clientverbindungen, die jede Sekunde hergestellt werden, gedrosselt. Das liegt daran, dass bei der IAM-Authentifizierung von Google Cloud jede neue Verbindung authentifiziert werden muss. Im Steady State aktiviert eine Anwendung Verbindungspools, sodass die Auswirkungen vernachlässigbar sind. Wenn Clientanwendungen jedoch durch Bereitstellungen oder Bounce-Verarbeitung aktualisiert werden, kann es zu einem erneuten Anstieg der Verbindungen kommen. Wenn Sie Ihre Clients nach und nach aktualisieren und exponentielle Backoffs implementieren, können Sie diese reduzierte Rate auffangen.

Ein Codebeispiel für die Verwendung der IAM-Authentifizierung finden Sie unter Codebeispiel für IAM-Authentifizierung und Transitverschlüsselung.

Sicherheit und Datenschutz

Mit der IAM-Authentifizierung können Sie dafür sorgen, dass nur autorisierte IAM-Principals auf Ihren Redis-Cluster zugreifen können. Die TLS-Verschlüsselung wird nur bereitgestellt, wenn Verschlüsselung während der Übertragung aktiviert ist. Daher wird empfohlen, die In-Transit-Verschlüsselung zu aktivieren, wenn Sie die IAM-Authentifizierung verwenden.

Verbindung mit einer Compute Engine-VM herstellen

Wenn Sie eine Compute Engine-VM verwenden, um eine Verbindung zu einer Instanz herzustellen, die die IAM-Authentifizierung verwendet, müssen Sie die folgenden Zugriffsbereiche und APIs für Ihr Projekt aktivieren: