Oltre all'autenticazione Identity and Access Management (IAM), puoi utilizzare l'autenticazione di base basata su token per proteggere l'accesso alle tue istanze Memorystore for Valkey. In quanto soluzione leggera, l'autenticazione di base basata su token consente ai client di verificare la propria identità all'interno delle applicazioni utilizzando i propri token.
L'autenticazione di base basata su token ha requisiti di risorse minimi e un overhead di risorse basso. Inoltre, se i tuoi attuali carichi di lavoro su Memorystore for Redis o le tue applicazioni on-premise utilizzano già l'autenticazione di base basata su token, questa funzionalità facilita una transizione senza problemi quando esegui la migrazione a Memorystore for Valkey.
Vantaggi
Utilizzando l'autenticazione di base basata su token, ottieni i seguenti vantaggi:
- Flessibilità: per le istanze nuove ed esistenti, attiva l'autenticazione in qualsiasi momento. Quando attivi l'autenticazione di base basata su token, le tue istanze sono protette. Per tutte le nuove connessioni, gli utenti devono fornire un token di autenticazione per autenticarsi nelle tue istanze.
- Rotazione senza tempi di inattività: ruota i token utente senza causare tempi di inattività per le tue applicazioni.
- Compatibilità: il superutente
defaultmantiene gli stessi privilegi concessi a questo utente. L'autenticazione di base basata su token aggiunge un ulteriore livello di protezione. Ciò garantisce la compatibilità con le versioni precedenti quando esegui la migrazione dei tuoi carichi di lavoro da Memorystore for Redis a Memorystore for Valkey.
Modalità di autenticazione
L'autenticazione di base basata su token supporta due modalità di autenticazione principali:
- Autenticazione semplice: un metodo semplice in cui un utente invia un token di autenticazione per autenticarsi come utente
default - Autenticazione multiutente: gestisci più utenti per autenticare l'accesso alle tue istanze
Best practice
Per motivi di sicurezza, ti consigliamo di utilizzare le seguenti best practice per l'autenticazione di base basata su token:
- Ruota i token utente: utilizza una policy di rotazione per i token utente.
Utilizza Secret Manager: non codificare in modo permanente le credenziali di autenticazione di base basate su token di un utente nel codice dell'applicazione. Archiviali invece in Secret Manager e recuperali in fase di runtime.
Secret Manager fornisce un vault centralizzato e criptato per le credenziali utente, il che elimina la proliferazione dei secret e riduce il sovraccarico operativo della gestione manuale delle credenziali. Applica i controlli dell'accesso utilizzando IAM e genera automaticamente i log di controllo. In questo modo, garantiamo la conformità ed evitiamo l'esposizione delle credenziali.
Combina l'autenticazione di base basata su token con Transport Layer Security (TLS): quando utilizzi l'autenticazione di base basata su token, ti consigliamo di attivare la crittografia in transito. In questo modo, i nomi utente e i token di autenticazione non vengono inviati in testo normale sulla rete.
Prima di iniziare
Prima di iniziare a proteggere le tue istanze utilizzando l'autenticazione di base basata su token, completa i prerequisiti descritti in questa sezione.
Verifica il supporto del client per l'autenticazione di base basata su token
Per verificare che le applicazioni client possano supportare l'autenticazione di base basata su token, assicurati che possano utilizzare il comando AUTH.
L'utente default esegue l'autenticazione nelle tue applicazioni client utilizzando il seguente comando:
AUTH TOKEN
Per questo comando, TOKEN è il token di autenticazione dell'utente predefinito.
Tutti gli altri utenti si autenticano utilizzando il seguente comando:
AUTH USERNAME TOKEN
Per questo comando, USERNAME e TOKEN sono il nome utente e il token di autenticazione dell'utente.
Per saperne di più sul comando AUTH, consulta AUTH
nella documentazione di Valkey.
Utilizza la console Google Cloud , Google Cloud CLI e le API
Per utilizzare la console Google Cloud , gcloud CLI e le API, segui questi passaggi:
- Nella console Google Cloud , nella pagina di selezione del progetto, seleziona o crea un progetto Google Cloud .
- Verifica che la fatturazione sia attivata per il tuo progetto. Scopri come verificare se la fatturazione è abilitata per un progetto.
Installa e inizializza Google Cloud CLI (gcloud CLI).
Nota:se hai installato gcloud CLI, assicurati di avere l'ultima versione eseguendo
gcloud components update. Per accedere ai comandi gcloud CLI di Memorystore for Valkey, devi disporre almeno della versione489.0.0di gcloud CLI.-
Abilita l'API Memorystore for Valkey.
API Memorystore for Valkey -
Abilita l'API Network Connectivity.
API Network Connectivity -
Abilita l'API Service Consumer Management.
API Service Consumer Management
Assegna i ruoli
Per configurare l'autenticazione di base basata su token per le tue istanze, devi disporre di uno di questi ruoli IAM nel tuo progetto Google Cloud :
roles/memorystore.admin(il ruolo Memorystore Admin)roles/owner(ruolo Proprietario)roles/editor(il ruolo Editor)
Gestire l'autenticazione di base basata su token per le istanze
Memorystore for Valkey supporta le seguenti azioni per gestire l'autenticazione di base basata su token per le istanze:
- Crea un'istanza con l'autenticazione di base basata su token
- Attiva l'autenticazione di base basata su token per un'istanza
- Creare un utente di autenticazione di base basata su token per un'istanza
- Elenca gli utenti con autenticazione di base basata su token per un'istanza
- Visualizzare le informazioni su un utente con autenticazione di base basata su token
- Eliminare un utente con autenticazione basata su token di base da un'istanza
Crea un'istanza con l'autenticazione di base basata su token
Se crei un'istanza con l'autenticazione di base basata su token, hai a disposizione un metodo leggero e ampiamente supportato per limitare l'accesso di un utente all'istanza.
Puoi creare l'istanza utilizzando gcloud CLI.
Per creare un'istanza in cui è abilitata l'autenticazione di base basata su token, utilizza il
comando
gcloud beta memorystore instances create.
gcloud beta memorystore instances create INSTANCE_ID \ --location=REGION \ --authorization-mode=token-auth
Effettua le seguenti sostituzioni:
- INSTANCE_ID: l'ID dell'istanza che vuoi creare per utilizzare l'autenticazione di base basata su token
- REGION: la regione in cui vuoi che si trovi l'istanza
Attiva l'autenticazione di base basata su token per un'istanza
Se attivi l'autenticazione di base basata su token per un'istanza, hai a disposizione un metodo leggero e ampiamente supportato per limitare l'accesso di un utente all'istanza.
L'utente default può autenticarsi nell'istanza utilizzando solo il proprio token.
Tutti gli altri utenti si autenticano utilizzando un nome utente e un token standard. Per ulteriori
informazioni, consulta Verificare il supporto del client per l'autenticazione di base basata su token.
L'attivazione dell'autenticazione di base basata su token potrebbe causare tempi di inattività per le applicazioni che tentano di creare nuove connessioni, perché Memorystore for Valkey richiede richieste autenticate. Sebbene le connessioni esistenti rimangano inalterate, per utilizzare l'autenticazione di base basata su token per eventuali tentativi di connessione successivi all'istanza, devi aggiornare le applicazioni. Per saperne di più, consulta Connettersi a un'istanza utilizzando l'autenticazione di base basata su token.
Puoi attivare l'autenticazione di base basata su token per un'istanza utilizzando gcloud CLI.
Per abilitare l'autenticazione di base basata su token, utilizza il comando gcloud beta memorystore instances update.
gcloud beta memorystore instances update INSTANCE_ID \ --location=REGION \ --authorization-mode=token-auth
Effettua le seguenti sostituzioni:
- INSTANCE_ID: l'ID dell'istanza per cui vuoi attivare l'autenticazione di base basata su token
- REGION: la regione in cui si trova l'istanza
Crea un utente di autenticazione di base basata su token per un'istanza
Se crei un utente di autenticazione di base basata su token per un'istanza, configuri l'istanza in modo da consentire l'autenticazione multiutente. Dopo l'accesso iniziale dell'utente, questa modalità di autenticazione funge da credenziale sicura e revocabile per le nuove connessioni. L'utente può continuare a utilizzare il token di autenticazione finché non lo elimina o finché non viene rimosso.
Puoi creare un utente di autenticazione di base basata su token utilizzando gcloud CLI.
Per creare l'utente, utilizza il comando gcloud beta memorystore instances create-token-auth-user.
gcloud beta memorystore instances create-token-auth-user INSTANCE_ID \ --location=REGION \ --token-auth-user=USERNAME
Effettua le seguenti sostituzioni:
- INSTANCE_ID: l'ID dell'istanza per cui vuoi creare un utente con autenticazione di base basata su token
- REGION: la regione in cui si trova l'istanza
- USERNAME: il nome utente dell'utente
Elenca gli utenti dell'autenticazione di base basata su token per un'istanza
Puoi recuperare un elenco di utenti con autenticazione di base basata su token per un'istanza utilizzando gcloud CLI.
Per elencare gli utenti, utilizza il comando gcloud beta memorystore instances token-auth-users list.
gcloud beta memorystore instances token-auth-users list \ --instance=INSTANCE_ID \ --location=REGION
Effettua le seguenti sostituzioni:
- INSTANCE_ID: l'ID dell'istanza per cui vuoi recuperare un elenco di utenti con autenticazione di base basata su token
- REGION: la regione in cui si trova l'istanza
Visualizza le informazioni su un utente con autenticazione di base basata su token
Per visualizzare le informazioni sull'utente, utilizza il comando gcloud beta memorystore instances token-auth-users describe.
gcloud beta memorystore instances token-auth-users describe USERNAME \ --instance=INSTANCE_ID \ --location=REGION
Effettua le seguenti sostituzioni:
- USERNAME: il nome utente dell'utente con autenticazione di base basata su token di cui vuoi visualizzare le informazioni
- INSTANCE_ID: l'ID dell'istanza a cui l'utente può autenticarsi
- REGION: la regione in cui si trova l'istanza
Elimina un utente di autenticazione di base basata su token da un'istanza
Se elimini un utente con autenticazione di base basata su token da un'istanza, revochi i diritti di accesso dell'utente all'istanza.
Puoi eliminare un utente con autenticazione di base basata su token da un'istanza utilizzando gcloud CLI.
Per eliminare l'utente, utilizza il comando gcloud beta memorystore instances token-auth-users delete.
gcloud beta memorystore instances token-auth-users delete USERNAME \ --instance=INSTANCE_ID \ --location=REGION
Effettua le seguenti sostituzioni:
- USERNAME: il nome utente dell'utente con autenticazione di base basata su token
- INSTANCE_ID: l'ID dell'istanza da cui vuoi eliminare l'utente
- REGION: la regione in cui si trova l'istanza
Per l'utente che stai eliminando, Memorystore for Valkey non termina le connessioni esistenti. Per terminare queste connessioni, esegui questo comando su tutti i nodi dell'istanza:
CLIENT KILL USER USERNAME
Gestire l'autenticazione di base basata su token per gli utenti
Memorystore for Valkey supporta le seguenti azioni per gestire l'autenticazione di base basata su token per gli utenti:
- Creare un token di autenticazione per un utente
- Elencare i token di autenticazione per un utente
- Visualizzare le informazioni su un token di autenticazione per un utente
- Eliminare un token di autenticazione da un utente
Creare un token di autenticazione per un utente
Creando un token di autenticazione per un utente, puoi ruotare il token esistente dell'utente senza causare tempi di inattività per le tue applicazioni.
Puoi creare un token di autenticazione per un utente utilizzando gcloud CLI.
Per creare l'utente, utilizza il comando gcloud beta memorystore instances token-auth-users create-auth-token.
gcloud beta memorystore instances token-auth-users create-auth-token USERNAME \ --instance=INSTANCE_ID \ --location=REGION
Effettua le seguenti sostituzioni:
- USERNAME: il nome utente dell'utente per cui vuoi creare un token di autenticazione
- INSTANCE_ID: l'ID dell'istanza a cui l'utente può accedere utilizzando il token
- REGION: la regione in cui si trova l'istanza
Elenca i token di autenticazione per un utente
Puoi recuperare un elenco di token di autenticazione per un utente utilizzando gcloud CLI.
Per elencare i token, utilizza il comando gcloud beta memorystore instances token-auth-users auth-tokens list.
gcloud beta memorystore instances token-auth-users auth-tokens list \ --token-auth-user=USERNAME \ --instance=INSTANCE_ID \ --location=REGION
Effettua le seguenti sostituzioni:
- USERNAME: il nome utente dell'utente a cui appartengono i token di autenticazione
- INSTANCE_ID: l'ID dell'istanza a cui l'utente può accedere utilizzando i token di autenticazione
- REGION: la regione in cui si trova l'istanza
Visualizzare le informazioni su un token di autenticazione per un utente
Puoi visualizzare le informazioni su un token di autenticazione per un utente utilizzando gcloud CLI.
Per visualizzare le informazioni, utilizza il comando
gcloud beta memorystore instances token-auth-users auth-tokens describe.
gcloud beta memorystore instances token-auth-users auth-tokens describe AUTH_TOKEN \ --instance=INSTANCE_ID \ --location=REGION \ --token-auth-user=USERNAME
Effettua le seguenti sostituzioni:
- AUTH_TOKEN: il nome del token di autenticazione di cui vuoi visualizzare le informazioni
- INSTANCE_ID: l'ID dell'istanza a cui l'utente può accedere utilizzando il token
- REGION: la regione in cui si trova l'istanza
- USERNAME: il nome utente dell'utente a cui appartiene il token di autenticazione
Eliminare un token di autenticazione da un utente
L'eliminazione di un token di autenticazione da un utente è un'azione di sicurezza critica che invalida il token.
Puoi eliminare un token di autenticazione da un utente utilizzando gcloud CLI.
Per eliminare il token, utilizza il comando gcloud beta memorystore instances token-auth-users auth-tokens delete.
gcloud beta memorystore instances token-auth-users auth-tokens delete AUTH_TOKEN \ --instance=INSTANCE_ID \ --location=REGION \ --token-auth-user=USERNAME
Effettua le seguenti sostituzioni:
- AUTH_TOKEN: il nome del token di autenticazione che vuoi eliminare dall'utente
- INSTANCE_ID: l'ID dell'istanza a cui vuoi impedire l'accesso all'utente eliminando il token
- REGION: la regione in cui si trova l'istanza
- USERNAME: il nome utente dell'utente che ha un token che vuoi eliminare
Connessione a un'istanza utilizzando l'autenticazione di base basata su token
Puoi utilizzare i seguenti metodi per connetterti a un'istanza utilizzando l'autenticazione di base basata su token:
- Stringa URI (Uniform Resource Identifier): questa singola stringa formattata viene utilizzata per comodità perché tutte le informazioni di connessione necessarie (ad esempio, il nome utente e il token di autenticazione dell'utente, nonché l'indirizzo IP e il nome host dell'istanza) sono contenute in una singola stringa.
- Flag: questo metodo è più adatto per l'utilizzo di singoli strumento a riga di comando, script o ambienti in cui la configurazione è suddivisa in variabili di ambiente separate utilizzando più argomenti separati.
Nelle sezioni seguenti viene spiegato ogni metodo di connessione.
Utilizzare una stringa URI
Per connetterti da una VM Compute Engine o da un ambiente supportato utilizzando una stringa URI, utilizza il seguente comando:
valkey-cli -u redis://USERNAME:TOKEN@IP_ADDRESS:PORT
Effettua le seguenti sostituzioni:
- USERNAME: il nome utente dell'utente che tenta di connettersi all'istanza
- TOKEN: il token di autenticazione dell'utente
- IP_ADDRESS: l'indirizzo IP dell'istanza
- PORT: il numero di porta riservato all'istanza
Utilizzare i flag
Per connetterti da una VM di Compute Engine o da un ambiente supportato utilizzando i flag, utilizza il seguente comando:
valkey-cli --user USERNAME -a TOKEN -h IP_ADDRESS -p PORT
Effettua le seguenti sostituzioni:
- USERNAME: il nome utente dell'utente che tenta di connettersi all'istanza
- TOKEN: il token di autenticazione dell'utente
- IP_ADDRESS: l'indirizzo IP dell'istanza
- PORT: il numero di porta riservato all'istanza
Ruotare il token di autenticazione di un utente senza tempi di inattività
Per ruotare il token di autenticazione di un utente senza causare tempi di inattività alle tue applicazioni, segui questi passaggi:
- Crea un token di autenticazione aggiuntivo per l'utente: Memorystore for Valkey genera un secondo token valido. Entrambi i token sono validi.
- Aggiorna le applicazioni: aggiorna le applicazioni per utilizzare il nuovo token.
- Elimina il token di autenticazione per l'utente: Memorystore for Valkey rimuove il primo token. L'utente può utilizzare solo il secondo token per autenticarsi nelle tue applicazioni.
Log di accesso per l'autenticazione di base basata su token
Memorystore for Valkey genera audit log per le attività di amministrazione e l'accesso ai dati per le operazioni associate a token di autenticazione e utenti. Per ulteriori informazioni su questi audit log, vedi Monitoraggio dell'accesso tramite audit log.