Authentification des utilisateurs à l'aide de listes de contrôle d'accès (ACL) - Amazon MemoryDB for Redis

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Authentification des utilisateurs à l'aide de listes de contrôle d'accès (ACL)

Vous pouvez authentifier les utilisateurs à l'aide de listes de contrôle d'accès (ACL).

Les ACL vous permettent de contrôler l'accès au cluster en regroupant les utilisateurs. Ces listes de contrôle d'accès sont conçues pour organiser l'accès aux clusters.

Avec les ACL, vous créez des utilisateurs et leur attribuez des autorisations spécifiques à l'aide d'une chaîne d'accès, comme décrit dans la section suivante. Vous assignez les utilisateurs à des listes de contrôle d'accès alignées sur un rôle spécifique (administrateurs, ressources humaines) qui sont ensuite déployées sur un ou plusieurs clusters MemoryDB. Vous pouvez ainsi établir des limites de sécurité entre les clients utilisant le ou les mêmes clusters MemoryDB et empêcher les clients d'accéder aux données des autres.

Les ACL sont conçues pour prendre en charge l'introduction de Redis ACL dans Redis 6. Lorsque vous utilisez des ACL avec votre cluster MemoryDB, certaines limites s'appliquent :

  • Vous ne pouvez pas spécifier de mots de passe dans une chaîne d'accès. Vous définissez des mots de passe avec CreateUserou par UpdateUserappels.

  • Pour les droits d'utilisateur, vous passez on et off dans le cadre de la chaîne d'accès. Si aucune des deux n'est spécifiée dans la chaîne d'accès, l'utilisateur est affecté au cluster off et ne dispose pas de droits d'accès.

  • Vous ne pouvez pas utiliser de commandes interdites. Si vous spécifiez une commande interdite, une exception sera émise. Pour obtenir la liste de ces commandes, consultezCommandes Redis limitées.

  • Vous ne pouvez pas utiliser la commande reset dans le cadre d'une chaîne d'accès. Vous spécifiez les mots de passe avec les paramètres de l'API, et MemoryDB gère les mots de passe. Par conséquent, vous ne pouvez pas utiliser reset car il supprimerait tous les mots de passe d'un utilisateur.

  • Redis 6 introduit la commande ACL LIST. Cette commande renvoie une liste d'utilisateurs ainsi que les règles de liste ACL appliquées à chaque utilisateur. MemoryDB prend en charge la ACL LIST commande, mais ne prend pas en charge le hachage des mots de passe comme le fait Redis. Avec MemoryDB, vous pouvez utiliser l'DescribeUsersopération pour obtenir des informations similaires, y compris les règles contenues dans la chaîne d'accès. Cependant, DescribeUsersne permet pas de récupérer le mot de passe utilisateur.

    Les autres commandes en lecture seule prises en charge par MemoryDB incluent ACL WHOAMI, ACL USERS et ACL CAT. MemoryDB ne prend en charge aucune autre commande ACL basée sur l'écriture.

L'utilisation des ACL avec MemoryDB est décrite plus en détail ci-dessous.

Définition des autorisations à l'aide d'une chaîne d'accès

Pour spécifier les autorisations d'accès à un cluster MemoryDB, vous créez une chaîne d'accès et vous l'attribuez à un utilisateur en utilisant le AWS CLI ou. AWS Management Console

Les chaînes d'accès sont définies comme une liste de règles délimitées par des espaces qui sont appliquées à l'utilisateur. Elles définissent les commandes qu'un utilisateur peut exécuter et les clés qu'un utilisateur peut utiliser. Pour exécuter une commande, un utilisateur doit avoir accès à la commande en cours d'exécution et à toutes les clés accessibles par la commande. Les règles sont appliquées de gauche à droite de manière cumulative, et une chaîne plus simple peut être utilisée à la place de celle fournie en cas de redondance dans la chaîne fournie.

Pour plus d'informations sur la syntaxe des règles de liste ACL, veuillez consulter Listes ACL.

Dans l'exemple suivant, la chaîne d'accès représente un utilisateur actif ayant accès à toutes les clés et commandes disponibles.

on ~* &* +@all

La syntaxe de la chaîne d'accès se décompose comme suit :

  • on : l'utilisateur est un utilisateur actif.

  • ~* : l'accès est accordé à toutes les clés disponibles.

  • &*— L'accès est donné à toutes les chaînes pubsub.

  • +@all : l'accès est accordé à toutes les commandes disponibles.

Les paramètres précédents sont les moins restrictifs. Vous pouvez modifier ces paramètres pour les rendre plus sécurisés.

Dans l'exemple suivant, la chaîne d'accès représente un utilisateur dont l'accès est restreint à l'accès en lecture sur les clés commençant par un keyspace « app:: »

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

Vous pouvez affiner ces autorisations en listant les commandes auxquelles l'utilisateur a accès :

+command1 : l'accès de l'utilisateur aux commandes est limité à command1.

+@category : l'accès de l'utilisateur est limité à une catégorie de commandes.

Pour plus d'informations sur l'attribution d'une chaîne d'accès à un utilisateur, veuillez consulter Création d'utilisateurs et de listes de contrôle d'accès à l'aide de la console et de la CLI.

Si vous migrez une charge de travail existante vers MemoryDB, vous pouvez récupérer la chaîne d'accès en appelantACL LIST, en excluant l'utilisateur et tout hachage de mot de passe.

Capacités de recherche vectorielle

Note

Cette fonctionnalité est en version préliminaire de MemoryDB pour Redis et est sujette à modification.

En Recherche vectorielle effet, toutes les commandes de recherche appartiennent à la @search catégorie et aux catégories existantes @read@write, @fast et @slow sont mises à jour pour inclure les commandes de recherche. Si un utilisateur n'a pas accès à une catégorie, il n'a accès à aucune commande de cette catégorie. Par exemple, si l'utilisateur n'y a pas accès@search, il ne peut exécuter aucune commande liée à la recherche.

Le tableau suivant indique le mappage des commandes de recherche vers les catégories appropriées.

Commandes 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

Appliquer des ACL à un cluster pour MemoryDB

Pour utiliser les ACL MemoryDB, procédez comme suit :

  1. Créez un ou plusieurs utilisateurs.

  2. Créez une ACL et ajoutez des utilisateurs à la liste.

  3. Assignez l'ACL à un cluster.

Ces étapes sont décrites en détail ci-dessous.

Création d'utilisateurs et de listes de contrôle d'accès à l'aide de la console et de la CLI

Les informations utilisateur pour les utilisateurs des ACL sont un nom d'utilisateur, et éventuellement un mot de passe et une chaîne d'accès. La chaîne d'accès fournit le niveau d'autorisation relatif aux clés et commandes. Le nom est propre à l'utilisateur et est transmis au moteur.

Assurez-vous que les autorisations utilisateur que vous fournissez correspondent à l'objectif de l'ACL. Par exemple, si vous créez une ACL appeléeAdministrators, la chaîne d'accès de tout utilisateur que vous ajoutez à ce groupe doit être définie de manière à avoir un accès complet aux touches et aux commandes. Pour les utilisateurs d'une e-commerce ACL, vous pouvez définir leurs chaînes d'accès en lecture seule.

MemoryDB configure automatiquement un utilisateur par défaut par compte avec un nom d'utilisateur. "default" Il ne sera associé à aucun cluster sauf s'il est explicitement ajouté à une ACL. Vous ne pouvez pas le supprimer ou le modifier. Cet utilisateur est destiné à être compatible avec le comportement par défaut des versions précédentes de Redis et dispose d'une chaîne d'accès qui lui permet d'appeler toutes les commandes et d'accéder à toutes les clés.

Une ACL « open access » immuable sera créée pour chaque compte contenant l'utilisateur par défaut. Il s'agit de la seule ACL dont l'utilisateur par défaut peut être membre. Lorsque vous créez un cluster, vous devez sélectionner une ACL à associer au cluster. Bien que vous ayez la possibilité d'appliquer l'ACL « libre accès » à l'utilisateur par défaut, nous vous recommandons vivement de créer une ACL avec des utilisateurs dont les autorisations sont limitées à leurs besoins commerciaux.

Les clusters sur lesquels le protocole TLS n'est pas activé doivent utiliser l'ACL « open access » pour fournir une authentification ouverte.

Les ACL peuvent être créées sans utilisateur. Une ACL vide n'aurait aucun accès à un cluster et ne pourrait être associée qu'à des clusters compatibles TLS.

Lors de la création d'un utilisateur, vous pouvez configurer jusqu'à deux mots de passe. Lorsque vous modifiez un mot de passe, toutes les connexions existantes aux clusters sont conservées.

Tenez compte en particulier de ces contraintes liées au mot de passe utilisateur lorsque vous utilisez des ACL pour MemoryDB :

  • Les mots de passe doivent comporter de 16 à 128 caractères imprimables.

  • Les caractères non alphanumériques suivants ne sont pas autorisés : , "" / @.

Gestion des utilisateurs avec la console et la CLI

Pour créer des utilisateurs sur la console
  1. Connectez-vous à la console MemoryDB pour Redis AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/memorydb/.

  2. Dans le volet de navigation de gauche, sélectionnez Utilisateurs.

  3. Choisissez Créer un utilisateur

  4. Sur la page Créer un utilisateur, entrez un nom.

    Les contraintes d'attribution de noms de cluster sont les suivantes :

    • Doit contenir entre 1 et 40 caractères alphanumériques ou traits d'union.

    • Doit commencer par une lettre.

    • Ils ne peuvent pas comporter deux traits d'union consécutifs.

    • Ils ne peuvent pas se terminer par un trait d'union.

  5. Sous Mots de passe, vous pouvez saisir jusqu'à deux mots de passe.

  6. Sous Chaîne d'accès, entrez une chaîne d'accès. La chaîne d'accès définit le niveau d'autorisation accordé à l'utilisateur pour les clés et commandes.

  7. Pour les tags, vous pouvez éventuellement appliquer des tags pour rechercher et filtrer vos utilisateurs ou suivre vos AWS coûts.

  8. Choisissez Créer.

Pour créer un utilisateur à l'aide de la CLI
  • Utilisez la commande create-user pour créer un utilisateur.

    Pour Linux, macOS ou Unix :

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

    Pour Windows :

    aws memorydb create-user ^ --user-name user-name-1 ^ --access-string "~objects:* ~items:* ~public:*" ^ --authentication-mode \ Passwords="abc",Type=password
Pour modifier les utilisateurs sur la console
  1. Connectez-vous à la console MemoryDB pour Redis AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/memorydb/.

  2. Dans le volet de navigation de gauche, sélectionnez Utilisateurs.

  3. Cliquez sur le bouton radio à côté de l'utilisateur que vous souhaitez modifier, puis choisissez Actions -> Modifier

  4. Si vous souhaitez modifier un mot de passe, cliquez sur le bouton radio Modifier les mots de passe. Notez que si vous avez deux mots de passe, vous devez saisir les deux lorsque vous modifiez l'un d'entre eux.

  5. Si vous mettez à jour la chaîne d'accès, entrez la nouvelle.

  6. Sélectionnez Modifier.

Pour modifier un utilisateur à l'aide de la CLI
  1. Utilisez la commande update-user pour modifier un utilisateur.

  2. Lorsqu'un utilisateur est modifié, les listes de contrôle d'accès associées à l'utilisateur sont mises à jour, ainsi que tous les clusters associés à l'ACL. Toutes les connexions existantes sont maintenues. Voici quelques exemples.

    Pour Linux, macOS ou Unix :

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

    Pour Windows :

    aws memorydb update-user ^ --user-name user-name-1 ^ --access-string "~objects:* ~items:* ~public:*"
Pour afficher les détails de l'utilisateur sur la console
  1. Connectez-vous à la console MemoryDB pour Redis AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/memorydb/.

  2. Dans le volet de navigation de gauche, sélectionnez Utilisateurs.

  3. Choisissez l'utilisateur sous Nom d'utilisateur ou utilisez le champ de recherche pour trouver l'utilisateur.

  4. Dans Paramètres utilisateur, vous pouvez consulter la chaîne d'accès, le nombre de mots de passe, le statut et le nom de ressource Amazon (ARN) de l'utilisateur.

  5. Sous Listes de contrôle d'accès (ACL), vous pouvez consulter l'ACL à laquelle appartient l'utilisateur.

  6. Sous Tags, vous pouvez consulter tous les tags associés à l'utilisateur.

Utilisez la commande describe-users pour afficher les détails d'un utilisateur.

aws memorydb describe-users \ --user-name my-user-name
Pour supprimer des utilisateurs sur la console
  1. Connectez-vous à la console MemoryDB pour Redis AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/memorydb/.

  2. Dans le volet de navigation de gauche, sélectionnez Utilisateurs.

  3. Cliquez sur le bouton radio à côté de l'utilisateur que vous souhaitez modifier, puis choisissez Actions -> Supprimer

  4. Pour confirmer, entrez delete dans la zone de texte de confirmation, puis choisissez Supprimer.

  5. Pour annuler, choisissez Cancel (Annuler).

Pour supprimer un utilisateur à l'aide de la CLI
  • Utilisez la commande delete-user pour supprimer un utilisateur.

    Le compte est supprimé et retiré de toutes les listes de contrôle d'accès auxquelles il appartient. Voici un exemple.

    Pour Linux, macOS ou Unix :

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

    Pour Windows :

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

Gestion des listes de contrôle d'accès avec la console et la CLI

Vous pouvez créer des listes de contrôle d'accès pour organiser et contrôler l'accès des utilisateurs à un ou plusieurs clusters, comme indiqué ci-dessous.

Utilisez la procédure suivante pour gérer les listes de contrôle d'accès à l'aide de la console.

Pour créer une liste de contrôle d'accès à l'aide de la console
  1. Connectez-vous à la console MemoryDB pour Redis AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/memorydb/.

  2. Dans le volet de navigation de gauche, choisissez Listes de contrôle d'accès (ACL).

  3. Choisissez Create ACL.

  4. Sur la page Créer une liste de contrôle d'accès (ACL), entrez un nom d'ACL.

    Les contraintes d'attribution de noms de cluster sont les suivantes :

    • Doit contenir entre 1 et 40 caractères alphanumériques ou traits d'union.

    • Doit commencer par une lettre.

    • Ils ne peuvent pas comporter deux traits d'union consécutifs.

    • Ils ne peuvent pas se terminer par un trait d'union.

  5. Sous Utilisateurs sélectionnés, effectuez l'une des opérations suivantes :

    1. Créez un nouvel utilisateur en choisissant Créer un utilisateur

    2. Ajoutez des utilisateurs en choisissant Gérer, puis en sélectionnant des utilisateurs dans la boîte de dialogue Gérer les utilisateurs, puis en sélectionnant Choisir.

  6. Pour les balises, vous pouvez éventuellement appliquer des balises pour rechercher et filtrer vos ACL ou suivre vos AWS coûts.

  7. Choisissez Créer.

Utilisez les procédures suivantes pour créer une liste de contrôle d'accès à l'aide de la CLI.

Pour créer une nouvelle ACL et ajouter un utilisateur à l'aide de la CLI
  • Utilisez la commande create-acl pour créer une ACL.

    Pour Linux, macOS ou Unix :

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

    Pour Windows :

    aws memorydb create-acl ^ --acl-name "new-acl-1" ^ --user-names "user-name-1" "user-name-2"
Pour modifier une liste de contrôle d'accès à l'aide de la console
  1. Connectez-vous à la console MemoryDB pour Redis AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/memorydb/.

  2. Dans le volet de navigation de gauche, choisissez Listes de contrôle d'accès (ACL).

  3. Choisissez l'ACL que vous souhaitez modifier, puis choisissez Modifier

  4. Sur la page Modifier, sous Utilisateurs sélectionnés, effectuez l'une des opérations suivantes :

    1. Créez un nouvel utilisateur en choisissant Create user à ajouter à l'ACL.

    2. Ajoutez ou supprimez des utilisateurs en choisissant Gérer, puis en sélectionnant ou désélectionnant des utilisateurs dans la boîte de dialogue Gérer les utilisateurs, puis en sélectionnant Choisir.

  5. Sur la page Créer une liste de contrôle d'accès (ACL), entrez un nom d'ACL.

    Les contraintes d'attribution de noms de cluster sont les suivantes :

    • Doit contenir entre 1 et 40 caractères alphanumériques ou traits d'union.

    • Doit commencer par une lettre.

    • Ils ne peuvent pas comporter deux traits d'union consécutifs.

    • Ils ne peuvent pas se terminer par un trait d'union.

  6. Sous Utilisateurs sélectionnés, effectuez l'une des opérations suivantes :

    1. Créez un nouvel utilisateur en choisissant Créer un utilisateur

    2. Ajoutez des utilisateurs en choisissant Gérer, puis en sélectionnant des utilisateurs dans la boîte de dialogue Gérer les utilisateurs, puis en sélectionnant Choisir.

  7. Choisissez Modifier pour enregistrer vos modifications ou Annuler pour les ignorer.

Pour modifier une ACL en ajoutant de nouveaux utilisateurs ou en supprimant des membres actuels à l'aide de la CLI
  • Utilisez la commande update-acl pour modifier une ACL.

    Pour Linux, macOS ou Unix :

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

    Pour Windows :

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

Cette commande met fin à toutes les connexions ouvertes appartenant à un utilisateur supprimé d'une ACL.

Pour afficher les détails de l'ACL sur la console
  1. Connectez-vous à la console MemoryDB pour Redis AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/memorydb/.

  2. Dans le volet de navigation de gauche, choisissez Listes de contrôle d'accès (ACL).

  3. Choisissez l'ACL sous le nom de l'ACL ou utilisez le champ de recherche pour trouver l'ACL.

  4. Sous Utilisateurs, vous pouvez consulter la liste des utilisateurs associés à l'ACL.

  5. Sous Clusters associés, vous pouvez consulter le cluster auquel appartient l'ACL.

  6. Sous Tags, vous pouvez consulter tous les tags associés à l'ACL.

Utilisez la commande describe-acls pour afficher les détails d'une ACL.

aws memorydb describe-acls \ --acl-name test-group
Pour supprimer des listes de contrôle d'accès à l'aide de la console
  1. Connectez-vous à la console MemoryDB pour Redis AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/memorydb/.

  2. Dans le volet de navigation de gauche, choisissez Listes de contrôle d'accès (ACL).

  3. Choisissez l'ACL que vous souhaitez modifier, puis choisissez Supprimer

  4. Sur la page Supprimer, entrez delete dans la case de confirmation et choisissez Supprimer ou Annuler pour éviter de supprimer l'ACL.

C'est l'ACL elle-même, et non les utilisateurs appartenant au groupe, qui est supprimée.

Pour supprimer une ACL à l'aide de la CLI
  • Utilisez la commande delete-acl pour supprimer une ACL.

    Pour Linux, macOS ou Unix :

    aws memorydb delete-acl / --acl-name

    Pour Windows :

    aws memorydb delete-acl ^ --acl-name

    Les exemples précédents renvoient la réponse suivante.

    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" }

Affectation de listes de contrôle d'accès aux clusters

Après avoir créé une ACL et ajouté des utilisateurs, la dernière étape de la mise en œuvre des ACL consiste à attribuer l'ACL à un cluster.

Affectation de listes de contrôle d'accès à des clusters à l'aide de la console

Pour ajouter une ACL à un cluster à l'aide du AWS Management Console, voirCréation d'un cluster MemoryDB.

Affectation de listes de contrôle d'accès à des clusters à l'aide du AWS CLI

L' AWS CLI opération suivante crée un cluster avec le chiffrement en transit (TLS) activé et le acl-name paramètre avec la valeurmy-acl-name. Remplacez le groupe de sous-réseaux subnet-group par un groupe de sous-réseaux existant.

Paramètres clés
  • --engine-version— Doit être 6,2.

  • --tls-enabled— Utilisé pour l'authentification et pour associer une ACL.

  • --acl-name— Cette valeur fournit des listes de contrôle d'accès composées d'utilisateurs dotés d'autorisations d'accès spécifiées pour le cluster.

Pour Linux, macOS ou 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"

Pour 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"

L' AWS CLI opération suivante modifie un cluster dont le chiffrement en transit (TLS) est activé et dont le acl-name paramètre contient la valeur. new-acl-2

Pour Linux, macOS ou Unix :

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

Pour Windows :

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