Autenticazione degli utenti con gli elenchi di controllo degli accessi () ACLs - 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 gli elenchi di controllo degli accessi () ACLs

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

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

ConACLs, si creano utenti e si assegnano 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.

ACLssono progettati per supportare l'introduzione di ACLin Redis 6. OSS Quando si utilizza ACLs con il cluster MemoryDB, esistono alcune limitazioni:

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

  • 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 puoi usare comandi proibiti. Se specifichi un comando proibito, verrà generata un'eccezione. Per un elenco di questi comandi, vediComandi limitati.

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

  • Redis 6 introduce il comandoOSS. ACLLIST Questo comando restituisce un elenco di utenti insieme alle ACL regole 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, e. ACLWHOAMIACLUSERSACLCAT MemoryDB non supporta nessun altro comando basato sulla scrittura. ACL

L'utilizzo ACLs 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 informazioni sulla sintassi delle regole, vedere. ACL 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 è consentito 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 a comando1.

+@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 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.

VSSComandi @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 ACLs a un cluster per MemoryDB

Per utilizzare MemoryDBACLs, procedi nel seguente modo:

  1. Crea uno o più utenti.

  2. Crea un utente ACL e aggiungilo all'elenco.

  3. Assegna il 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 CLI

Le informazioni utente per ACLs gli utenti 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 diACL. Ad esempio, se crei una ACL chiamataAdministrators, qualsiasi utente che aggiungi a quel gruppo dovrebbe avere la stringa di accesso impostata per l'accesso completo a tasti e comandi. Per gli utenti in un e-commerceACL, è possibile impostare le stringhe di accesso in modalità di 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 OSS versioni precedenti di Redis e dispone di una stringa di accesso che gli consente di chiamare tutti i comandi e accedere a tutte le chiavi.

ACLVerrà creato un «accesso aperto» immutabile per ogni account che contiene l'utente predefinito. Questo è l'unico di ACL cui l'utente predefinito può essere membro. Quando si crea un cluster, è necessario ACL selezionarne uno da associare al cluster. Sebbene sia possibile applicare l' "accesso aperto» ACL all'utente predefinito, consigliamo vivamente di crearne uno ACL con utenti con autorizzazioni limitate alle loro esigenze aziendali.

I cluster che non sono TLS abilitati devono utilizzare l' "accesso aperto» ACL per fornire un'autenticazione aperta.

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

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 ACLs for 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 CLI

Per creare utenti sulla console
  1. Accedi AWS Management Console e apri 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 Create (Crea) .

Per creare un utente utilizzando il CLI
  • Utilizzare 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. Accedi AWS Management Console e apri 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 il CLI
  1. Utilizzare 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 a. 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. Accedi AWS Management Console e apri 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 dell'utente, il numero di password, lo stato e Amazon Resource Name (ARN).

  5. In Access control lists (ACL) puoi controllare a chi appartiene ACL 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. Accedi AWS Management Console e apri 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 il 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 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. Accedi AWS Management Console e apri 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 d'accesso (ACL), inserisci un ACL 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 Utenti selezionati, effettuate 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 i tag, puoi opzionalmente applicare tag per cercare e filtrare ACLs o tenere traccia AWS dei costi.

  7. Scegli Create (Crea) .

Utilizzare le seguenti procedure per creare un elenco di controllo degli accessi utilizzandoCLI.

Per creare un nuovo utente ACL e aggiungerne uno utilizzando il CLI
  • Utilizzare il comando create-acl per creare un file. 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. Accedi AWS Management Console e apri 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 ACL quello 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 aACL.

    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 ACL 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.

  6. In Utenti selezionati, effettuate 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 il CLI
  • Usa il comando update-acl per modificare un file. 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

Qualsiasi connessione aperta appartenente a un utente rimosso da un viene terminata con questo ACL comando.

Per visualizzare ACL i dettagli sulla console
  1. Accedi AWS Management Console e apri 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 il ACLnome ACL sotto o usa la casella di ricerca per trovare ilACL.

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

  5. In Cluster associati puoi esaminare il cluster a cui ACL appartiene.

  6. In Tag puoi rivedere tutti i tag associati a. ACL

Utilizzare 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. Accedi AWS Management Console e apri 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 ACL quello che desideri modificare, quindi scegli Elimina

  4. Nella pagina Elimina, entra delete nella casella di conferma e scegli Elimina o Annulla per evitare di eliminare ilACL.

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

Per eliminare un utente ACL utilizzando il CLI
  • Utilizzare 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 utente ACL e aggiunto gli utenti, il passaggio finale dell'implementazione ACLs consiste nell'ACLassegnarlo a un cluster.

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

Per aggiungere un file 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 transit (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 transit (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"