Gestire l'autenticazione IAM

Questa pagina fornisce istruzioni sulle attività comuni per la funzionalità di autenticazione IAM per Memorystore for Valkey. Per ulteriori dettagli sulla funzionalità, consulta Informazioni sull'autenticazione IAM.

Crea un'istanza con l'autenticazione IAM

Per creare un'istanza Memorystore for Valkey che utilizza l'autenticazione IAM, esegui il comando create:

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

Sostituisci quanto segue:

  • INSTANCE_ID è l'ID dell'istanza Memorystore for Valkey che stai creando. L'ID istanza deve contenere da 1 a 63 caratteri e utilizzare solo lettere minuscole, numeri o trattini. Deve iniziare con una lettera minuscola e terminare con una lettera minuscola o un numero.

  • REGION_ID è la regione in cui vuoi posizionare l'istanza.

  • NETWORK è la rete utilizzata per creare l'istanza. Deve utilizzare il formato: projects/NETWORK_PROJECT_ID/global/networks/NETWORK_ID. L'ID di rete utilizzato qui deve corrispondere all'ID di rete utilizzato dal criterio di connessione al servizio. In caso contrario, l'operazione create non riesce. Per ulteriori dettagli, consulta la sezione Networking.

  • NODE_TYPE è il tipo di nodo scelto. I valori accettati sono:

    • shared-core-nano
    • standard-small
    • highmem-medium
    • highmem-xlarge
  • SHARD_COUNT determina il numero di shard nella tua istanza. Il conteggio degli shard determina la capacità di memoria totale per l'archiviazione dei dati dell'istanza. Per ulteriori dettagli sulla specifica dell'istanza, consulta Specifica dell'istanza e del nodo.

Concedi autorizzazioni per l'autenticazione IAM

Per concedere un accesso IAM, assegna all'entità il ruolo roles/memorystore.dbConnectionUser utilizzando le istruzioni per la concessione del ruolo IAM.

Per impostazione predefinita, la concessione del ruolo roles/memorystore.dbConnectionUser a un'entità consente all'entità di accedere a tutte le istanze del tuo progetto.

Creare un ruolo di amministratore IAM limitato per un'istanza

Potresti voler creare un ruolo che possa modificare le autorizzazioni IAM di connessione all'istanza senza concedere l'accesso completo di amministratore IAM. Questa operazione può essere eseguita creando un amministratore IAM limitato per il ruolo roles/memorystore.dbConnectionUser. Per maggiori dettagli, consulta Creare amministratori IAM con accesso limitato.

Connettersi a un'istanza che utilizza l'autenticazione IAM

  1. Se non hai già una VM di Compute Engine che utilizza la stessa rete autorizzata dell'istanza Valkey, creane una e connettiti seguendo la Guida rapida all'utilizzo di una VM Linux.

  2. Per connetterti alla tua istanza, devi abilitare le seguenti API e ambiti di accesso per il tuo progetto:

  3. Installa valkey-cli sulla VM di Compute Engine seguendo le istruzioni riportate in Installare Valkey.

  4. Esegui questo comando per ottenere un token di accesso per il tuo utente IAM:

    gcloud auth print-access-token
    
  5. Connettiti all'endpoint di rilevamento della tua istanza:

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

    Sostituisci quanto segue:

  6. Esegui il comando CLUSTER SHARDS per visualizzare la topologia dei nodi. Prendi nota di uno degli indirizzi IP e dei numeri di porta del nodo.

  7. Connettiti al nodo scelto eseguendo questo comando:

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

    Sostituisci quanto segue:

    • NODE_IP_ADDRESS è l'indirizzo IP del nodo che hai trovato nel passaggio precedente.
    • NODE_PORT è il numero di porta del nodo che hai trovato nel passaggio precedente.
  8. Esegui un comando Valkey SET e GET per verificare di aver stabilito una connessione autenticata al nodo della tua istanza.

  9. Una volta terminato il test della connessione all'istanza Valkey, ti consigliamo di eliminare la VM Compute Engine che hai utilizzato per connetterti all'istanza Valkey. In questo modo, eviti di incorrere in addebiti sul tuo account di fatturazione Cloud.

  10. Esegui questo comando per utilizzare valkey-cli per autenticarti e connetterti alla tua istanza, sostituendo le variabili con i valori appropriati:

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

    Sostituisci quanto segue:

  11. Esegui un comando Valkey SET e GET per verificare di aver stabilito una connessione autenticata alla tua istanza.

  12. Una volta terminato il test della connessione all'istanza Valkey, ti consigliamo di eliminare la VM Compute Engine che hai utilizzato per connetterti all'istanza Valkey. In questo modo, eviti di incorrere in addebiti sul tuo account di fatturazione Cloud.

Automatizzare il recupero del token di accesso

Ti consigliamo di automatizzare il recupero dei token di accesso nella tua applicazione, in quanto i token di accesso non possono essere codificati in modo permanente a causa della loro breve durata.

  1. (Facoltativo) Se non l'hai ancora fatto, crea un account di servizio per la tua applicazione (vedi Creazione e gestione di un service account).

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

    Sostituisci quanto segue:

    • SA_NAME è il nome del account di servizio.
    • DESCRIPTION è una descrizione facoltativa del account di servizio.
    • DISPLAY_NAME è il nome di un account di servizio da visualizzare nella Google Cloud console.
  2. Concedi al tuo account di servizio l'autorizzazione memorystore.dbConnectionUser sul tuo progetto.

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

    Sostituisci quanto segue:

    • PROJECT_ID è l'ID progetto.
    • SA_NAME è il nome del account di servizio.
    • ROLE_NAME è un nome di ruolo, ad esempio roles/compute.osLogin.
  3. Autentica l'applicazione come account di servizio specificato. Per ulteriori informazioni, consulta la sezione Service account.

    Per esempi di codice che mostrano come autenticare l'applicazione utilizzando librerie client popolari, consulta la sezione Esempi di codice della libreria client.

Esempio di codice per la connessione a un'istanza che utilizza l'autenticazione IAM

Per visualizzare un esempio di codice compatibile con Valkey su come configurare una libreria client per connettersi a un'istanza che utilizza l'autenticazione IAM, consulta Esempio di codice per l'autenticazione IAM e la crittografia in transito.

Risoluzione dei problemi relativi ai messaggi di errore con l'autenticazione IAM

Messaggio di errore Azione consigliata Descrizione

-WRONGPASS invalid username-password pair or user is disabled

Verifica il nome utente e il token di accesso forniti al server Memorystore for Valkey Il nome utente o il token di accesso forniti non sono validi. "default" è l'unico nome utente supportato. Se la tua applicazione utilizza già il nome utente "default", verifica che il token di accesso non sia scaduto e che venga recuperato seguendo le istruzioni riportate in Connettersi a un'istanza che utilizza l'autenticazione IAM. La propagazione delle autorizzazioni IAM potrebbe richiedere alcuni minuti se sono state modificate di recente.

-NOAUTH Authentication required

Verifica che l'applicazione sia configurata per fornire un token di accesso IAM al server Memorystore for Valkey L'applicazione non fornisce un token di accesso al server Memorystore for Valkey. Verifica che l'applicazione sia configurata per fornire un token di accesso seguendo le istruzioni riportate in Connettersi a un'istanza che utilizza l'autenticazione IAM.

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

Effettua nuovi tentativi con backoff esponenziale Il backend IAM è sovraccarico e ha restituito un errore di superamento della quota al server Memorystore for Valkey. Le applicazioni devono tentare di ripetere l'operazione con backoff esponenziale per evitare ulteriori errori di connessione.

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

Effettua nuovi tentativi con backoff esponenziale Il backend IAM ha restituito un errore temporaneo al server Memorystore for Valkey. Le applicazioni devono tentare di ripetere l'operazione con backoff esponenziale per evitare ulteriori errori di connessione.