Autenticazione degli utenti con elenchi di controllo degli accessi (ACL) - Amazon MemoryDB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Autenticazione degli utenti con elenchi di controllo degli accessi (ACL)

È possibile autenticare gli utenti con gli elenchi di controllo degli accessi (ACL).

Gli ACL consentono di controllare l'accesso al cluster raggruppando gli utenti. Queste liste di controllo degli accessi sono progettate per organizzare l'accesso ai cluster.

Con gli ACL, è possibile creare utenti e assegnare loro autorizzazioni specifiche utilizzando una stringa di accesso, come descritto nella sezione successiva. Gli utenti vengono assegnati agli elenchi di controllo degli accessi allineati a un ruolo specifico (amministratori, risorse umane) che vengono quindi distribuiti in uno o più cluster di MemoryDB. In questo modo, è possibile stabilire limiti di sicurezza tra i client che utilizzano lo stesso cluster o gli stessi cluster di MemoryDB e impedire ai client di accedere ai dati degli altri.

Gli ACL sono progettati per supportare l'introduzione di Redis ACL in Redis OSS 6. Quando si utilizzano gli ACL con il cluster MemoryDB, esistono alcune limitazioni:

  • Non è possibile specificare password in una stringa di accesso. Le password vengono impostate con o chiamate. CreateUserUpdateUser

  • Per i diritti utente, si passaoneoffcome parte della stringa di accesso. Se nessuno dei due è specificato nella stringa di accesso, l'utente viene assegnato off e non dispone dei diritti di accesso al cluster.

  • Non è possibile utilizzare comandi proibiti. Se specifichi un comando proibito, verrà generata un'eccezione. Per un elenco di questi comandi, vediComandi Redis OSS con restrizioni.

  • Non è possibile utilizzare laresetcome parte di una stringa di accesso. Si specificano le password con parametri API e MemoryDB gestisce le password. Pertanto, non è possibile utilizzareresetperché rimuoverebbe tutte le password per un utente.

  • Redis OSS 6 introduce il comando ACL LIST. Questo comando restituisce un elenco di utenti insieme alle regole ACL applicate a ciascun utente. MemoryDB supporta il ACL LIST comando, ma non include il supporto per gli hash delle password come fa Redis OSS. Con MemoryDB, è possibile utilizzare l'DescribeUsersoperazione per ottenere informazioni simili, incluse le regole contenute nella stringa di accesso. Tuttavia, DescribeUsersnon recupera una password utente.

    Altri comandi di sola lettura supportati da MemoryDB includono ACL WHOAMI, ACL USERS e ACL CAT. MemoryDB non supporta nessun altro comando ACL basato sulla scrittura.

L'uso degli ACL con MemoryDB è descritto più dettagliatamente di seguito.

Specifica delle autorizzazioni mediante una stringa di accesso

Per specificare le autorizzazioni per un cluster MemoryDB, si crea una stringa di accesso e la si assegna a un utente, utilizzando o. AWS CLI AWS Management Console

Le stringhe di accesso sono definite come un elenco di regole delimitate da spazi che vengono applicate all'utente. Essi definiscono quali comandi un utente può eseguire e quali chiavi un utente può operare. Per eseguire un comando, un utente deve avere accesso al comando in esecuzione e tutte le chiavi sono accessibili dal comando. Le regole vengono applicate cumulativamente da sinistra a destra e, se nella stringa fornita sono presenti ridondanze, è possibile utilizzare una stringa più semplice al posto di quella fornita.

Per ulteriori informazioni sulla sintassi delle regole ACL, consulta ACL.

Nell'esempio seguente, la stringa di accesso rappresenta un utente attivo con accesso a tutti i tasti e i comandi disponibili.

on ~* &* +@all

La sintassi della stringa di accesso è suddivisa come segue:

  • on— L'utente è un utente attivo.

  • ~*— L'accesso è dato a tutte le chiavi disponibili.

  • &*— L'accesso è dato a tutti i canali pubsub.

  • +@all— Accesso a tutti i comandi disponibili.

Le impostazioni precedenti sono le meno restrittive. È possibile modificare queste impostazioni per renderle più sicure.

Nell'esempio seguente, la stringa di accesso rappresenta un utente con accesso limitato all'accesso in lettura sulle chiavi che iniziano con lo spazio delle chiavi «app::»

on ~app::* -@all +@read

È possibile perfezionare ulteriormente queste autorizzazioni elencando i comandi a cui l'utente ha accesso:

+command1— L'accesso dell'utente ai comandi è limitato acommand1.

+@category— L'accesso dell'utente è limitato a una categoria di comandi.

Per informazioni sull'assegnazione di una stringa di accesso a un utente, vedereCreazione di utenti ed elenchi di controllo degli accessi con la console e la CLI.

Se stai migrando un carico di lavoro esistente su MemoryDB, puoi recuperare la stringa di accesso chiamandoACL LIST, escludendo l'utente e qualsiasi hash della password.

Funzionalità di ricerca vettoriale

Nota

Questa funzionalità è in versione di anteprima per MemoryDB ed è soggetta a modifiche.

InfattiRicerca vettoriale, tutti i comandi di ricerca appartengono alla @search categoria e alle categorie @read esistenti @fast e @slow vengono aggiornati per includere i comandi di ricerca. @write Se un utente non ha accesso a una categoria, non ha accesso a nessun comando all'interno della categoria. Ad esempio, se l'utente non ha accesso a@search, non può eseguire alcun comando relativo alla ricerca.

La tabella seguente indica la mappatura dei comandi di ricerca alle categorie appropriate.

Comandi VSS @read @write @fast @slow
FT.CREATE Y Y
FT.DROPINDEX Y Y
FT.LIST Y Y
FT.INFO Y Y
FT.SEARCH Y Y
FT.AGGREGATE Y Y
FT.PROFILE Y Y
FT.ALIASADD Y Y
FT.ALIASDEL Y Y
FT.ALIASUPDATE Y Y
FT._ALIASLIST Y Y
FT.EXPLAIN Y Y
FT.EXPLAINCLI Y Y
FT.CONFIG Y Y

Applicazione degli ACL a un cluster per MemoryDB

Per utilizzare gli ACL di MemoryDB, procedi nel seguente modo:

  1. Crea uno o più utenti.

  2. Crea un ACL e aggiungi utenti all'elenco.

  3. Assegna l'ACL a un cluster.

La tabella seguente descrive i seguenti passaggi nel dettaglio.

Creazione di utenti ed elenchi di controllo degli accessi con la console e la CLI

Le informazioni utente per gli utenti ACL sono un nome utente e, facoltativamente, una password e una stringa di accesso. La stringa di accesso fornisce il livello di autorizzazione per i tasti e i comandi. Il nome è univoco per l'utente ed è quello che viene passato al motore.

Assicurati che le autorizzazioni utente fornite corrispondano allo scopo previsto dell'ACL. Ad esempio, se crei un ACL chiamatoAdministrators, qualsiasi utente aggiunto a quel gruppo dovrebbe avere la stringa di accesso impostata per l'accesso completo a tasti e comandi. Per gli utenti di un e-commerce ACL, è possibile impostare le stringhe di accesso in sola lettura.

MemoryDB configura automaticamente un utente predefinito per account con un nome utente. "default" Non sarà associato a nessun cluster a meno che non venga aggiunto esplicitamente a un ACL. Non è possibile eliminare o modificare questo utente. Questo utente è progettato per garantire la compatibilità con il comportamento predefinito delle versioni precedenti di Redis OSS e dispone di una stringa di accesso che gli consente di chiamare tutti i comandi e accedere a tutte le chiavi.

Verrà creato un ACL immutabile «ad accesso aperto» per ogni account che contiene l'utente predefinito. Questa è l'unica ACL di cui l'utente predefinito può essere membro. Quando si crea un cluster, è necessario selezionare un ACL da associare al cluster. Sebbene sia possibile applicare l'ACL «ad accesso aperto» all'utente predefinito, consigliamo vivamente di creare un ACL con utenti con autorizzazioni limitate alle esigenze aziendali.

I cluster che non hanno TLS abilitato devono utilizzare l'ACL «ad accesso aperto» per fornire un'autenticazione aperta.

Gli ACL possono essere creati senza utenti. Un ACL vuoto non avrebbe accesso a un cluster e può essere associato solo a cluster abilitati per TLS.

Quando si crea un utente, è possibile impostare fino a due password. Quando si modifica una password, vengono mantenute tutte le connessioni esistenti ai cluster.

In particolare, tenete presente questi vincoli relativi alla password utente quando utilizzate gli ACL per MemoryDB:

  • Le password devono essere da 16 a 128 caratteri stampabili.

  • I seguenti caratteri non alfanumerici non sono consentiti:, "" / @.

Gestione degli utenti con la console e la CLI

Per creare utenti sulla console
  1. Accedere AWS Management Console e aprire la console MemoryDB all'indirizzo https://console.aws.amazon.com/memorydb/.

  2. Nel riquadro di navigazione a sinistra, scegli Utenti.

  3. Scegli Crea utente

  4. Nella pagina Crea utente, inserisci un nome.

    I vincoli di denominazione dei cluster sono i seguenti:

    • Devono contenere da 1 a 40 caratteri alfanumerici o trattini.

    • Devono iniziare con una lettera.

    • Non possono contenere due trattini consecutivi.

    • Non possono terminare con un trattino.

  5. In Password, puoi inserire fino a due password.

  6. In Stringa di accesso, inserisci una stringa di accesso. La stringa di accesso imposta il livello di autorizzazione per le chiavi e i comandi consentiti all'utente.

  7. Per i tag, puoi facoltativamente applicare tag per cercare e filtrare gli utenti o tenere traccia AWS dei costi.

  8. Scegli Crea.

Per creare un utente utilizzando la CLI
  • Utilizzate il comando create-user per creare un utente.

    Per Linux, macOS o Unix:

    aws memorydb create-user \ --user-name user-name-1 \ --access-string "~objects:* ~items:* ~public:*" \ --authentication-mode \ Passwords="abc",Type=password

    Per Windows:

    aws memorydb create-user ^ --user-name user-name-1 ^ --access-string "~objects:* ~items:* ~public:*" ^ --authentication-mode \ Passwords="abc",Type=password
Per modificare gli utenti sulla console
  1. Accedere AWS Management Console e aprire la console MemoryDB all'indirizzo https://console.aws.amazon.com/memorydb/.

  2. Nel riquadro di navigazione a sinistra, scegli Utenti.

  3. Scegli il pulsante di opzione accanto all'utente che desideri modificare, quindi scegli Azioni -> Modifica

  4. Se desideri modificare una password, scegli il pulsante di opzione Modifica password. Nota che se hai due password, devi inserirle entrambe quando ne modifichi una.

  5. Se stai aggiornando la stringa di accesso, inserisci quella nuova.

  6. Scegli Modifica.

Per modificare un utente utilizzando la CLI;
  1. Usa il comando update-user per modificare un utente.

  2. Quando un utente viene modificato, gli elenchi di controllo degli accessi associati all'utente vengono aggiornati, insieme a tutti i cluster associati all'ACL. Tutte le connessioni esistenti vengono mantenute. Di seguito vengono mostrati gli esempi.

    Per Linux, macOS o Unix:

    aws memorydb update-user \ --user-name user-name-1 \ --access-string "~objects:* ~items:* ~public:*"

    Per Windows:

    aws memorydb update-user ^ --user-name user-name-1 ^ --access-string "~objects:* ~items:* ~public:*"
Per visualizzare i dettagli dell'utente sulla console
  1. Accedere AWS Management Console e aprire la console MemoryDB all'indirizzo https://console.aws.amazon.com/memorydb/.

  2. Nel riquadro di navigazione a sinistra, scegli Utenti.

  3. Scegli l'utente in Nome utente o utilizza la casella di ricerca per trovare l'utente.

  4. In Impostazioni utente puoi controllare la stringa di accesso, il numero di password, lo stato e l'Amazon Resource Name (ARN) dell'utente.

  5. In Access control lists (ACL) puoi controllare l'ACL a cui appartiene l'utente.

  6. In Tag puoi rivedere tutti i tag associati all'utente.

Utilizzare il comando describe-users per visualizzare i dettagli di un utente.

aws memorydb describe-users \ --user-name my-user-name
Per eliminare utenti dalla console
  1. Accedere AWS Management Console e aprire la console MemoryDB all'indirizzo https://console.aws.amazon.com/memorydb/.

  2. Nel riquadro di navigazione a sinistra, scegli Utenti.

  3. Scegli il pulsante di opzione accanto all'utente che desideri modificare, quindi scegli Azioni -> Elimina

  4. Per confermare, inserisci delete nella casella di testo di conferma, quindi scegli Elimina.

  5. Per annullare, scegliere Cancel (Annulla).

Per eliminare un utente utilizzando la CLI;
  • Utilizzare il comando delete-user per eliminare un utente.

    L'account viene eliminato e rimosso da tutti gli elenchi di controllo degli accessi a cui appartiene. Di seguito è riportato un esempio.

    Per Linux, macOS o Unix:

    aws memorydb delete-user \ --user-name user-name-2

    Per Windows:

    aws memorydb delete-user ^ --user-name user-name-2

Gestione degli elenchi di controllo degli accessi con la console e la CLI

È possibile creare elenchi di controllo degli accessi per organizzare e controllare l'accesso degli utenti a uno o più cluster, come illustrato di seguito.

Utilizzare la procedura seguente per gestire gli elenchi di controllo degli accessi utilizzando la console.

Per creare un elenco di controllo degli accessi utilizzando la console
  1. Accedere AWS Management Console e aprire la console MemoryDB all'indirizzo https://console.aws.amazon.com/memorydb/.

  2. Nel riquadro di navigazione a sinistra, scegli Access control lists (ACL).

  3. Scegli Crea ACL.

  4. Nella pagina Crea lista di controllo di accesso (ACL), inserisci un nome ACL.

    I vincoli di denominazione dei cluster sono i seguenti:

    • Devono contenere da 1 a 40 caratteri alfanumerici o trattini.

    • Devono iniziare con una lettera.

    • Non possono contenere due trattini consecutivi.

    • Non possono terminare con un trattino.

  5. In Utenti selezionati, esegui una delle seguenti operazioni:

    1. Crea un nuovo utente selezionando Crea utente

    2. Aggiungi utenti scegliendo Gestisci, quindi selezionando gli utenti dalla finestra di dialogo Gestisci utenti e quindi selezionando Scegli.

  6. Per quanto riguarda i tag, puoi facoltativamente applicare tag per cercare e filtrare gli ACL o tenere traccia AWS dei costi.

  7. Scegli Crea.

Utilizzare le seguenti procedure per creare un elenco di controllo degli accessi utilizzando la CLI.

Per creare un nuovo ACL e aggiungere un utente utilizzando la CLI
  • Utilizzate il comando create-acl per creare un ACL.

    Per Linux, macOS o Unix:

    aws memorydb create-acl \ --acl-name "new-acl-1" \ --user-names "user-name-1" "user-name-2"

    Per Windows:

    aws memorydb create-acl ^ --acl-name "new-acl-1" ^ --user-names "user-name-1" "user-name-2"
Per modificare un elenco di controllo degli accessi utilizzando la console
  1. Accedere AWS Management Console e aprire la console MemoryDB all'indirizzo https://console.aws.amazon.com/memorydb/.

  2. Nel riquadro di navigazione a sinistra, scegli Access control lists (ACL).

  3. Scegli l'ACL che desideri modificare, quindi scegli Modifica

  4. Nella pagina Modifica, in Utenti selezionati, esegui una delle seguenti operazioni:

    1. Crea un nuovo utente scegliendo Crea utente da aggiungere all'ACL.

    2. Aggiungi o rimuovi utenti scegliendo Gestisci, quindi selezionando o deselezionando gli utenti dalla finestra di dialogo Gestisci utenti e quindi selezionando Scegli.

  5. Nella pagina Crea lista di controllo degli accessi (ACL), inserisci un nome ACL.

    I vincoli di denominazione dei cluster sono i seguenti:

    • Devono contenere da 1 a 40 caratteri alfanumerici o trattini.

    • Devono iniziare con una lettera.

    • Non possono contenere due trattini consecutivi.

    • Non possono terminare con un trattino.

  6. In Utenti selezionati, esegui una delle seguenti operazioni:

    1. Crea un nuovo utente selezionando Crea utente

    2. Aggiungi utenti scegliendo Gestisci, quindi selezionando gli utenti dalla finestra di dialogo Gestisci utenti e quindi selezionando Scegli.

  7. Scegli Modifica per salvare le modifiche o Annulla per eliminarle.

Per modificare un ACL aggiungendo nuovi utenti o rimuovendo i membri correnti utilizzando la CLI
  • Utilizzate il comando update-acl per modificare un ACL.

    Per Linux, macOS o Unix:

    aws memorydb update-acl --acl-name new-acl-1 \ --user-names-to-add user-name-3 \ --user-names-to-remove user-name-2

    Per Windows:

    aws memorydb update-acl --acl-name new-acl-1 ^ --user-names-to-add user-name-3 ^ --user-names-to-remove user-name-2
Nota

Tutte le connessioni aperte appartenenti a un utente rimosso da un ACL vengono terminate con questo comando.

Per visualizzare i dettagli ACL sulla console
  1. Accedere AWS Management Console e aprire la console MemoryDB all'indirizzo https://console.aws.amazon.com/memorydb/.

  2. Nel riquadro di navigazione a sinistra, scegli Access control lists (ACL).

  3. Scegli l'ACL sotto il nome ACL o usa la casella di ricerca per trovare l'ACL.

  4. In Utenti puoi visualizzare l'elenco degli utenti associati all'ACL.

  5. In Cluster associati è possibile esaminare il cluster a cui appartiene l'ACL.

  6. In Tag è possibile esaminare tutti i tag associati all'ACL.

Utilizzate il comando describe-acls per visualizzare i dettagli di un ACL.

aws memorydb describe-acls \ --acl-name test-group
Per eliminare gli elenchi di controllo degli accessi utilizzando la console
  1. Accedere AWS Management Console e aprire la console MemoryDB all'indirizzo https://console.aws.amazon.com/memorydb/.

  2. Nel riquadro di navigazione a sinistra, scegli Access control lists (ACL).

  3. Scegli l'ACL che desideri modificare, quindi scegli Elimina

  4. Nella pagina Elimina, inserisci delete la casella di conferma e scegli Elimina o Annulla per evitare di eliminare l'ACL.

L'ACL stesso, non gli utenti che appartengono al gruppo, viene eliminato.

Per eliminare un ACL utilizzando la CLI
  • Utilizzate il comando delete-acl per eliminare un ACL.

    Per Linux, macOS o Unix:

    aws memorydb delete-acl / --acl-name

    Per Windows:

    aws memorydb delete-acl ^ --acl-name

    Gli esempi precedenti restituiscono la risposta seguente.

    aws memorydb delete-acl --acl-name "new-acl-1" { "ACLName": "new-acl-1", "Status": "deleting", "EngineVersion": "6.2", "UserNames": [ "user-name-1", "user-name-3" ], "clusters": [], "ARN":"arn:aws:memorydb:us-east-1:493071037918:acl/new-acl-1" }

Assegnazione delle liste di controllo degli accessi ai cluster

Dopo aver creato un ACL e aggiunto gli utenti, il passaggio finale dell'implementazione degli ACL consiste nell'assegnare l'ACL a un cluster.

Assegnazione degli elenchi di controllo degli accessi ai cluster mediante la console

Per aggiungere un ACL a un cluster utilizzando il AWS Management Console, vedere. Creazione di un cluster MemoryDB

Assegnazione delle liste di controllo degli accessi ai cluster Utilizzando il AWS CLI

La seguente AWS CLI operazione crea un cluster con la crittografia in transito (TLS) abilitata e il acl-name parametro con il valore. my-acl-name Sostituisci il gruppo di sottoreti subnet-group con uno esistente.

Parametri chiave
  • --engine-version— Deve essere 6.2.

  • --tls-enabled— Utilizzato per l'autenticazione e per associare un ACL.

  • --acl-name— Questo valore fornisce elenchi di controllo degli accessi composti da utenti con autorizzazioni di accesso specifiche per il cluster.

Per Linux, macOS o Unix:

aws memorydb create-cluster \ --cluster-name "new-cluster" \ --description "new-cluster" \ --engine-version "6.2" \ --node-type db.r6g.large \ --tls-enabled \ --acl-name "new-acl-1" \ --subnet-group-name "subnet-group"

Per Windows:

aws memorydb create-cluster ^ --cluster-name "new-cluster" ^ --cluster-description "new-cluster" ^ --engine-version "6.2" ^ --node-type db.r6g.large ^ --tls-enabled ^ --acl-name "new-acl-1" ^ --subnet-group-name "subnet-group"

La seguente AWS CLI operazione modifica un cluster con la crittografia in transito (TLS) abilitata e il acl-name parametro con il valore. new-acl-2

Per Linux, macOS o Unix:

aws memorydb update-cluster \ --cluster-name cluster-1 \ --acl-name "new-acl-2"

Per Windows:

aws memorydb update-cluster ^ --cluster-name cluster-1 ^ --acl-name "new-acl-2"