IAM-Authentifizierung verwalten

Auf dieser Seite finden Sie Anleitungen zu gängigen Aufgaben der IAM-Authentifizierungsfunktion für Memorystore for Valkey. Weitere Informationen zu dieser Funktion finden Sie unter IAM-Authentifizierung.

Instanz mit IAM-Authentifizierung erstellen

Wenn Sie eine Memorystore for Valkey-Instanz erstellen möchten, für die die IAM-Authentifizierung verwendet wird, führen Sie den Befehl create aus:

gcloud memorystore instances create INSTANCE_ID --region=REGION_ID --network=NETWORK --node-type=NODE_TYPE --shard-count=SHARD_COUNT --auth-mode=iam-auth

Ersetzen Sie Folgendes:

  • INSTANCE_ID ist die ID der Memorystore for Valkey-Instanz, die Sie erstellen. Die Instanz-ID muss 1 bis 63 Zeichen lang sein und darf nur Kleinbuchstaben, Ziffern oder Bindestriche enthalten. Er muss mit einem Kleinbuchstaben beginnen und mit einem Kleinbuchstaben oder einer Ziffer enden.

  • REGION_ID ist die Region, in der sich die Instanz befinden soll.

  • NETWORK ist das Netzwerk, das zum Erstellen der Instanz verwendet wurde. Er muss das Format projects/NETWORK_PROJECT_ID/global/networks/NETWORK_ID haben. Die hier verwendete Netzwerk-ID muss mit der Netzwerk-ID übereinstimmen, die von der Richtlinie für Dienstverbindungen verwendet wird. Andernfalls schlägt der Vorgang create fehl. Weitere Informationen finden Sie unter Netzwerk.

  • NODE_TYPE ist der von Ihnen ausgewählte Knotentyp. Zulässige Werte:

    • shared-core-nano
    • standard-small
    • highmem-medium
    • highmem-xlarge
  • SHARD_COUNT bestimmt die Anzahl der Shards in Ihrer Instanz. Die Anzahl der Shards bestimmt die Gesamtspeicherkapazität für das Speichern von Instanzdaten. Weitere Informationen zur Instanzspezifikation finden Sie unter Instanz- und Knotenspezifikation.

Berechtigungen für die IAM-Authentifizierung erteilen

Um IAM-Zugriff zu gewähren, weisen Sie dem Hauptkonto die Rolle roles/memorystore.dbConnectionUser zu. Folgen Sie dazu der Anleitung zum Zuweisen von IAM-Rollen.

Wenn Sie einem Hauptkonto die Rolle roles/memorystore.dbConnectionUser zuweisen, kann es standardmäßig auf alle Instanzen in Ihrem Projekt zugreifen.

Eingeschränkte IAM-Administratorrolle für eine Instanz erstellen

Möglicherweise möchten Sie eine Rolle erstellen, mit der IAM-Berechtigungen für Instanzverbindungen geändert werden können, ohne dass vollständiger IAM-Administratorzugriff gewährt wird. Dazu können Sie einen eingeschränkten IAM-Administrator für die Rolle roles/memorystore.dbConnectionUser erstellen. Weitere Informationen finden Sie unter Eingeschränkte IAM-Administratoren erstellen.

Verbindung zu einer Instanz herstellen, die die IAM-Authentifizierung verwendet

  1. Wenn Sie noch keine Compute Engine-VM haben, die dasselbe autorisierte Netzwerk wie Ihre Valkey-Instanz verwendet, erstellen Sie eine VM und stellen Sie eine Verbindung zu ihr her: Folgen Sie dazu der Kurzanleitung: Linux-VM verwenden.

  2. Um eine Verbindung zu Ihrer Instanz herzustellen, müssen Sie die folgenden Zugriffsbereiche und APIs für Ihr Projekt aktivieren:

  3. Installieren Sie valkey-cli auf der Compute Engine-VM. Folgen Sie dazu der Anleitung unter Valkey installieren.

  4. Führen Sie den folgenden Befehl aus, um ein Zugriffstoken für Ihren IAM-Nutzer abzurufen:

    gcloud auth print-access-token
    
  5. Stellen Sie eine Verbindung zum Discovery-Endpunkt Ihrer Instanz her:

    valkey-cli -h NETWORK_ADDRESS -p PORT -a ACCESS_TOKEN -c
    

    Ersetzen Sie Folgendes:

    • NETWORK_ADDRESS ist die Netzwerkadresse der Instanz. Informationen zum Aufrufen der Netzwerkadresse finden Sie unter Instanzinformationen ansehen.

    • PORT ist die Portnummer der Instanz. Informationen zum Aufrufen der Portnummer finden Sie unter Instanzinformationen ansehen.

    • ACCESS_TOKEN ist das IAM-Zugriffstoken, das in den vorherigen Schritten abgerufen wurde.

  6. Führen Sie den Befehl CLUSTER SHARDS aus, um die Knotentopologie aufzurufen. Notieren Sie sich eine der IP-Adressen und Portnummern des Knotens.

  7. Stellen Sie mit dem folgenden Befehl eine Verbindung zum ausgewählten Knoten her:

    valkey-cli -h NODE_IP_ADDRESS -p NODE_PORT -a ACCESS_TOKEN -c
    

    Ersetzen Sie Folgendes:

    • NODE_IP_ADDRESS ist die IP-Adresse des Knotens, die Sie im vorherigen Schritt ermittelt haben.
    • NODE_PORT ist die Portnummer des Knotens, die Sie im vorherigen Schritt ermittelt haben.
  8. Führen Sie einen Valkey-Befehl SET und GET aus, um zu prüfen, ob eine authentifizierte Verbindung zum Knoten Ihrer Instanz hergestellt wurde.

  9. Nachdem Sie Ihre Verbindung zur Valkey-Instanz getestet haben, sollten Sie die Compute Engine-VM löschen, mit der Sie eine Verbindung zur Valkey-Instanz hergestellt haben. Dadurch vermeiden Sie, dass Ihrem Cloud-Rechnungskonto Gebühren berechnet werden.

  10. Führen Sie den folgenden Befehl aus, um valkey-cli zur Authentifizierung und Verbindung mit Ihrer Instanz zu verwenden. Ersetzen Sie dabei die Variablen durch die entsprechenden Werte:

    valkey-cli -h NETWORK_ADDRESS -p PORT -a ACCESS_TOKEN -c
    

    Ersetzen Sie Folgendes:

    • NETWORK_ADDRESS ist die Netzwerkadresse der Instanz. Informationen zum Aufrufen der Netzwerkadresse finden Sie unter Instanzinformationen ansehen.

    • PORT ist die Portnummer der Instanz. Informationen zum Aufrufen der Portnummer finden Sie unter Instanzinformationen ansehen.

    • ACCESS_TOKEN ist das IAM-Zugriffstoken, das in den vorherigen Schritten abgerufen wurde.

  11. Führen Sie einen Valkey-Befehl SET und GET aus, um zu prüfen, ob eine authentifizierte Verbindung zu Ihrer Instanz hergestellt wurde.

  12. Nachdem Sie Ihre Verbindung zur Valkey-Instanz getestet haben, sollten Sie die Compute Engine-VM löschen, mit der Sie eine Verbindung zur Valkey-Instanz hergestellt haben. Dadurch vermeiden Sie, dass Ihrem Cloud-Rechnungskonto Gebühren berechnet werden.

Abrufen von Zugriffstokens automatisieren

Es wird empfohlen, den Abruf von Zugriffstokens in Ihrer Anwendung zu automatisieren, da Zugriffstokens aufgrund ihrer kurzen Lebensdauer nicht einfach fest codiert werden können.

  1. Optional: Wenn Sie noch kein Dienstkonto für Ihre Anwendung haben, erstellen Sie eines (siehe Dienstkonto erstellen und verwalten).

    gcloud iam service-accounts create SA_NAME \
        --description="DESCRIPTION" \
        --display-name="DISPLAY_NAME"
    

    Ersetzen Sie Folgendes:

    • SA_NAME ist der Name des Dienstkontos.
    • DESCRIPTION ist eine optionale Beschreibung des Dienstkontos.
    • DISPLAY_NAME ist ein Dienstkontoname, der in derGoogle Cloud Console angezeigt werden soll.
  2. Gewähren Sie Ihrem Dienstkonto die Berechtigung memorystore.dbConnectionUser für Ihr Projekt.

    gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="serviceAccount:SA_NAME@PROJECT_ID.iam.gserviceaccount.com" \
    --role="memorystore.dbConnectionUser"
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID ist die Projekt-ID.
    • SA_NAME ist der Name des Dienstkontos.
    • ROLE_NAME ist ein Rollenname, z. B. roles/compute.osLogin.
  3. Authentifizieren Sie Ihre Anwendung als das angegebene Dienstkonto. Weitere Informationen finden Sie unter Dienstkonten.

    Codebeispiele, die zeigen, wie Sie Ihre Anwendung mit gängigen Clientbibliotheken authentifizieren können, finden Sie unter Codebeispiele für Clientbibliotheken.

Codebeispiel für die Verbindung zu einer Instanz, die die IAM-Authentifizierung verwendet

Ein Valkey-kompatibles Codebeispiel zum Einrichten einer Clientbibliothek für die Verbindung zu einer Instanz, die die IAM-Authentifizierung verwendet, finden Sie unter Codebeispiel für IAM-Authentifizierung und Transitverschlüsselung.

Fehlermeldungen bei der IAM-Authentifizierung beheben

Fehlermeldung Empfohlene Maßnahmen Beschreibung

-WRONGPASS invalid username-password pair or user is disabled

Prüfen Sie den Nutzernamen und das Zugriffstoken, die für den Memorystore for Valkey-Server angegeben wurden. Der angegebene Nutzername oder das angegebene Zugriffstoken ist ungültig. „default“ ist der einzige unterstützte Nutzername. Wenn Ihre Anwendung bereits den Standardnutzernamen verwendet, prüfen Sie, ob das Zugriffstoken abgelaufen ist und ob es gemäß der Anleitung unter Verbindung zu einer Instanz herstellen, die die IAM-Authentifizierung verwendet abgerufen wurde. Es kann einige Minuten dauern, bis IAM-Berechtigungen wirksam werden, wenn sie vor Kurzem geändert wurden.

-NOAUTH Authentication required

Prüfen Sie, ob die Anwendung so konfiguriert ist, dass sie ein IAM-Zugriffstoken für den Memorystore for Valkey-Server bereitstellt. Die Anwendung stellt kein Zugriffstoken für den Memorystore for Valkey-Server bereit. Prüfen Sie, ob die Anwendung so konfiguriert ist, dass ein Zugriffstoken bereitgestellt wird. Folgen Sie dazu der Anleitung unter Verbindung zu einer Instanz herstellen, die die IAM-Authentifizierung verwendet.

-ERR (ERR_IAM_EXHAUSTED) Memorystore IAM authentication backend quota exceeded. See https://cloud.google.com/memorystore/docs/valkey/manage-iam-auth#error_messages.

Mit exponentiellem Backoff wiederholen. Das IAM-Backend ist überlastet und hat einen Fehler wegen überschrittenen Kontingents an den Memorystore for Valkey-Server zurückgegeben. Anwendungen sollten versuchen, diesen Fehler mit exponentiellem Backoff zu wiederholen, um weitere Verbindungsfehler zu vermeiden.

-ERR (ERR_IAM_OTHER) Memorystore IAM authentication backend error. See https://cloud.google.com/memorystore/docs/valkey/manage-iam-auth#error_messages.

Mit exponentiellem Backoff wiederholen. Das IAM-Backend hat einen vorübergehenden Fehler an den Memorystore for Valkey-Server zurückgegeben. Anwendungen sollten versuchen, diesen Fehler mit exponentiellem Backoff zu wiederholen, um weitere Verbindungsfehler zu vermeiden.