Oltre all'autenticazione di Identity and Access Management (IAM), puoi utilizzare l'autenticazione di base basata su token per proteggere l'accesso ai cluster in Memorystore for Redis Cluster. Come 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 basso overhead di risorse. Inoltre, se i carichi di lavoro attuali su Memorystore for Redis o le applicazioni on-premise utilizzano già l'autenticazione di base basata su token, questa funzionalità facilita una transizione senza problemi durante la migrazione a Memorystore for Redis Cluster.
Vantaggi
L'utilizzo dell'autenticazione di base basata su token offre i seguenti vantaggi:
- Flessibilità: per i cluster nuovi ed esistenti, abilita l'autenticazione in qualsiasi momento. Quando abiliti l'autenticazione di base basata su token, i cluster sono protetti. Per tutte le nuove connessioni, gli utenti devono fornire un token per autenticarsi nei cluster.
- Rotazione senza tempi di inattività: ruota i token utente senza causare tempi di inattività per le applicazioni.
- Compatibilità: il superutente
defaultmantiene gli stessi privilegi che sono 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 carichi di lavoro da Memorystore for Redis a Memorystore for Redis Cluster.
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 ai cluster
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 le credenziali di autenticazione di base basata su token di un utente nel codice dell'applicazione. Archiviale invece in Secret Manager e recuperale in fase di runtime.
Secret Manager fornisce un vault centralizzato e criptato per le credenziali utente, che elimina la proliferazione dei secret e riduce l'overhead operativo della gestione manuale delle credenziali. Applica i controlli di accesso utilizzando IAM e genera automaticamente i log di controllo. Ciò garantisce la conformità ed evita 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 abilitare la crittografia in transito. In questo modo, i nomi utente e i token non vengono inviati in testo normale sulla rete.
Prima di iniziare
Prima di iniziare a proteggere i cluster utilizzando l'autenticazione di base basata su token, completa i prerequisiti descritti in questa sezione.
Verificare il supporto 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 le applicazioni possano utilizzare il comando AUTH.
L'utente default esegue l'autenticazione nelle applicazioni client utilizzando il seguente comando:
AUTH TOKEN
Per questo comando, TOKEN è il token di autenticazione dell'utente predefinito.
Tutti gli altri utenti eseguono l'autenticazione 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 ulteriori informazioni sul comando AUTH, consulta AUTH
nella documentazione di Redis.
Utilizzare la Google Cloud console, Google Cloud CLI e le API
Per utilizzare la Google Cloud console, gcloud CLI e le API:
- Nella Google Cloud console, nella pagina di selezione del progetto, seleziona o crea un Google Cloud progetto.
- Verifica che la fatturazione sia attivata per il tuo progetto. Scopri come verificare se la fatturazione è attivata 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 Redis Cluster, devi avere almeno la versione489.0.0di gcloud CLI.-
Abilita l'API Memorystore for Redis Cluster.
API Memorystore for Redis Cluster -
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 i cluster, devi disporre di uno di questi ruoli IAM nel tuo Google Cloud progetto:
roles/redis.admin(il ruolo di amministratore Redis)roles/owner(il ruolo di proprietario)roles/editor(il ruolo di editor)
Gestire l'autenticazione di base basata su token per i cluster
Memorystore for Redis Cluster supporta le seguenti azioni per gestire l'autenticazione di base basata su token per i cluster:
- Creare un cluster con autenticazione di base basata su token
- Abilitare l'autenticazione di base basata su token per un cluster
- Creare un utente di autenticazione di base basata su token per un cluster
- Elencare gli utenti di autenticazione di base basata su token per un cluster
- Visualizzare le informazioni su un utente di autenticazione di base basata su token
- Eliminare un utente di autenticazione di base basata su token da un cluster
Creare un cluster con autenticazione di base basata su token
La creazione di un cluster con autenticazione di base basata su token offre un metodo leggero e ampiamente supportato per limitare l'accesso di un utente al cluster.
Puoi creare il cluster utilizzando la gcloud CLI.
Per creare un cluster con l'autenticazione di base basata su token abilitata, utilizza il
gcloud beta redis clusters create
comando.
gcloud beta redis clusters create CLUSTER_ID \ --region=REGION \ --auth-mode=token-auth
Esegui le seguenti sostituzioni:
- CLUSTER_ID: l'ID del cluster che vuoi creare per utilizzare l'autenticazione di base basata su token
- REGION: la regione in cui vuoi che si trovi il cluster
Abilitare l'autenticazione di base basata su token per un cluster
L'abilitazione dell'autenticazione di base basata su token per un cluster offre un metodo leggero e ampiamente supportato per limitare l'accesso di un utente al cluster.
L'utente default può eseguire l'autenticazione nel cluster utilizzando solo il proprio token.
Tutti gli altri utenti eseguono l'autenticazione utilizzando un nome utente e un token standard. Per ulteriori
informazioni, vedi Verificare il supporto client per l'autenticazione di base basata su token.
L'abilitazione dell'autenticazione di base basata su token potrebbe causare tempi di inattività per le applicazioni che tentano di creare nuove connessioni perché Memorystore for Redis Cluster richiede richieste autenticate. Sebbene le connessioni esistenti rimangano invariate, per utilizzare l'autenticazione di base basata su token per eventuali tentativi di connessione successivi al cluster, devi aggiornare le applicazioni. Per ulteriori informazioni, vedi Connettersi a un cluster utilizzando l'autenticazione di base basata su token.
Puoi abilitare l'autenticazione di base basata su token per un cluster utilizzando la gcloud CLI.
Per abilitare l'autenticazione di base basata su token, utilizza il gcloud beta redis clusters update comando.
gcloud beta redis clusters update CLUSTER_ID \ --region=REGION \ --auth-mode=token-auth
Esegui le seguenti sostituzioni:
- CLUSTER_ID: l'ID del cluster per il quale vuoi abilitare l'autenticazione di base basata su token
- REGION: la regione in cui si trova il cluster
Creare un utente di autenticazione di base basata su token per un cluster
La creazione di un utente di autenticazione di base basata su token per un cluster consente di configurare il cluster 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é l'utente non viene rimosso.
Puoi creare un utente di autenticazione di base basata su token utilizzando gcloud CLI.
Per creare l'utente, utilizza il gcloud beta redis clusters create-token-auth-user comando.
gcloud beta redis clusters create-token-auth-user CLUSTER_ID \ --region=REGION \ --token-auth-user=USERNAME
Esegui le seguenti sostituzioni:
- CLUSTER_ID: l'ID del cluster per il quale vuoi creare un utente di autenticazione di base basata su token
- REGION: la regione in cui si trova il cluster
- USERNAME: il nome utente dell'utente
Elencare gli utenti di autenticazione di base basata su token per un cluster
Puoi recuperare un elenco di utenti di autenticazione di base basata su token per un cluster utilizzando la gcloud CLI.
Per elencare gli utenti, utilizza il gcloud beta redis clusters token-auth-users list comando.
gcloud beta redis clusters token-auth-users list \ --cluster=CLUSTER_ID \ --region=REGION
Esegui le seguenti sostituzioni:
- CLUSTER_ID: l'ID del cluster per il quale vuoi recuperare un elenco di utenti di autenticazione di base basata su token.
- REGION: la regione in cui si trova il cluster
Visualizzare le informazioni su un utente di autenticazione di base basata su token
Puoi visualizzare le informazioni su un utente di autenticazione di base basata su token utilizzando gcloud CLI.
Per visualizzare le informazioni sull'utente, utilizza il gcloud beta redis clusters token-auth-users describe comando.
gcloud beta redis clusters token-auth-users describe USERNAME \ --cluster=CLUSTER_ID \ --region=REGION
Esegui le seguenti sostituzioni:
- USERNAME: il nome utente dell'utente di autenticazione di base basata su token di cui vuoi visualizzare le informazioni
- CLUSTER_ID: l'ID del cluster a cui l'utente può eseguire l'autenticazione
- REGION: la regione in cui si trova il cluster
Eliminare un utente di autenticazione di base basata su token da un cluster
L'eliminazione di un utente di autenticazione di base basata su token da un cluster revoca i diritti di accesso dell'utente al cluster.
Puoi eliminare un utente di autenticazione di base basata su token da un cluster utilizzando la gcloud CLI.
Per eliminare l'utente, utilizza il gcloud beta redis clusters token-auth-users delete comando.
gcloud beta redis clusters token-auth-users delete USERNAME \ --cluster=CLUSTER_ID \ --region=REGION
Esegui le seguenti sostituzioni:
- USERNAME: il nome utente dell'utente di autenticazione di base basata su token
- CLUSTER_ID: l'ID del cluster da cui vuoi eliminare l' utente
- REGION: la regione in cui si trova il cluster
Per l'utente che stai eliminando, Memorystore for Redis Cluster non termina le connessioni esistenti. Per terminare queste connessioni, esegui il seguente comando su tutti i nodi del cluster:
CLIENT KILL USER USERNAME
Gestire l'autenticazione di base basata su token per gli utenti
Memorystore for Redis Cluster 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
La creazione di un token di autenticazione per un utente consente di ruotare il token esistente dell'utente senza causare tempi di inattività per le applicazioni.
Puoi creare un token di autenticazione per un utente utilizzando la gcloud CLI.
Per creare l'utente, utilizza il gcloud beta redis clusters token-auth-users create-auth-token comando.
gcloud beta redis clusters token-auth-users create-auth-token USERNAME \ --cluster=CLUSTER_ID \ --region=REGION
Esegui le seguenti sostituzioni:
- USERNAME: il nome utente dell'utente per il quale vuoi creare un token di autenticazione
- CLUSTER_ID: l'ID del cluster a cui l'utente può accedere utilizzando il token
- REGION: la regione in cui si trova il cluster
Elencare 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 gcloud beta redis clusters token-auth-users auth-tokens list comando.
gcloud beta redis clusters token-auth-users auth-tokens list \ --token-auth-user=USERNAME \ --cluster=CLUSTER_ID \ --region=REGION
Esegui le seguenti sostituzioni:
- USERNAME: il nome utente dell'utente a cui appartengono i token di autenticazione
- CLUSTER_ID: l'ID del cluster a cui l'utente può accedere utilizzando i token di autenticazione
- REGION: la regione in cui si trova il cluster
Visualizzare le informazioni su un token di autenticazione per un utente
Puoi visualizzare le informazioni su un token di autenticazione per un utente utilizzando il gcloud CLI.
Per visualizzare le informazioni, utilizza il gcloud beta redis clusters token-auth-users auth-tokens describe
comando.
gcloud beta redis clusters token-auth-users auth-tokens describe AUTH_TOKEN \ --cluster=CLUSTER_ID \ --region=REGION \ --token-auth-user=USERNAME
Esegui le seguenti sostituzioni:
- AUTH_TOKEN: il nome del token di autenticazione di cui vuoi visualizzare le informazioni
- CLUSTER_ID: l'ID del cluster a cui l'utente può accedere utilizzando il token
- REGION: la regione in cui si trova il cluster
- 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 fondamentale che invalida il token.
Puoi eliminare un token di autenticazione da un utente utilizzando gcloud CLI.
Per eliminare il token, utilizza il gcloud beta redis clusters token-auth-users auth-tokens delete comando.
gcloud beta redis clusters token-auth-users auth-tokens delete AUTH_TOKEN \ --cluster=CLUSTER_ID \ --region=REGION \ --token-auth-user=USERNAME
Esegui le seguenti sostituzioni:
- AUTH_TOKEN: il nome del token di autenticazione che vuoi eliminare dall'utente
- CLUSTER_ID: l'ID del cluster a cui vuoi impedire l'accesso all' utente eliminando il token
- REGION: la regione in cui si trova il cluster
- USERNAME: il nome utente dell'utente che ha un token che vuoi eliminare
Connettersi a un cluster utilizzando l'autenticazione di base basata su token
Puoi utilizzare i seguenti metodi per connetterti a un cluster utilizzando l'autenticazione di base basata su token:
- Stringa dell'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 dell'utente, nonché l'indirizzo IP e il nome host del cluster) sono contenute in una stringa.
- Flag: questo metodo è più adatto per l'utilizzo di singoli strumento a riga di comando, scripting o ambienti in cui la configurazione è suddivisa in variabili di ambiente separate utilizzando più argomenti separati.
Nelle sezioni seguenti viene illustrato ogni metodo di connessione.
Utilizzare una stringa URI
Per connetterti da una VM di Compute Engine o da un ambiente supportato utilizzando una stringa URI, utilizza il seguente comando:
redis-cli -u redis://USERNAME:TOKEN@IP_ADDRESS:PORT
Esegui le seguenti sostituzioni:
- USERNAME: il nome utente dell'utente che tenta di connettersi a l cluster
- TOKEN: il token di autenticazione dell'utente
- IP_ADDRESS: l'indirizzo IP del cluster
- PORT: il numero di porta riservato al cluster
Utilizzare i flag
Per connetterti da una VM di Compute Engine o da un ambiente supportato utilizzando i flag, utilizza il seguente comando:
redis-cli --user USERNAME -a TOKEN -h IP_ADDRESS -p PORT
Esegui le seguenti sostituzioni:
- USERNAME: il nome utente dell'utente che tenta di connettersi a l cluster
- TOKEN: il token di autenticazione dell'utente
- IP_ADDRESS: l'indirizzo IP del cluster
- PORT: il numero di porta riservato al cluster
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à per le applicazioni:
- Crea un token di autenticazione aggiuntivo per l'utente: Memorystore for Redis Cluster genera un secondo token valido. Entrambi i token sono validi.
- Aggiorna le applicazioni: aggiorna le applicazioni in modo che utilizzino il nuovo token.
- Elimina il token di autenticazione per l'utente: Memorystore for Redis Cluster rimuove il primo token. L'utente può utilizzare solo il secondo token per eseguire l'autenticazione nelle applicazioni.
Log di accesso per l'autenticazione di base basata su token
Memorystore for Redis Cluster genera audit log delle attività di amministrazione e di accesso ai dati per le operazioni associate ai token di autenticazione e agli utenti. Per ulteriori informazioni su questi audit log, vedi Monitorare l'accesso utilizzando gli audit log.