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

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 () ACLs

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

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

AvecACLs, 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.

ACLssont conçus pour prendre en charge l'introduction de ACLdans Redis OSS 6. Lorsque vous l'utilisez ACLs 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 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 à l'aide de API paramètres, 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 OSS 6 introduit la ACLLISTcommande. Cette commande renvoie une liste d'utilisateurs ainsi que les ACL règles 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. OSS 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 récupère pas le mot de passe utilisateur.

    Les autres commandes en lecture seule prises en charge par MemoryDB incluent ACLWHOAMI, et. ACLUSERSACLCAT MemoryDB ne prend en charge aucune autre commande basée sur l'écritureACL.

L'utilisation ACLs 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 ACL règles, consultez 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é à commande1.

+@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 avec la console et 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 pour MemoryDB 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.

VSSCommandes @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 ACLs à un cluster pour MemoryDB

Pour utiliser MemoryDBACLs, vous devez suivre les étapes suivantes :

  1. Créez un ou plusieurs utilisateurs.

  2. Créez un ACL et ajoutez-y des utilisateurs.

  3. ACLAttribuez-le à 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 avec la console et CLI

Les informations utilisateur pour ACLs les utilisateurs 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 accordez sont conformes à l'objectif duACL. Par exemple, si vous créez un ACL appelAdministrators, 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'un e-commerceACL, 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é à unACL. Vous ne pouvez pas le supprimer ou le modifier. Cet utilisateur est destiné à être compatible avec le comportement par défaut des OSS 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 touches.

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

Les clusters qui ne sont pas TLS activés doivent utiliser le « libre accès » ACL pour fournir une authentification ouverte.

ACLspeut être créé sans aucun utilisateur. Un élément vide n'ACLaurait aucun accès à un cluster et ne pourrait être associé qu'à des TLS clusters activés.

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 lors de l'utilisation ACLs de 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 à l'aide de la console et CLI

Pour créer des utilisateurs sur la console
  1. Connectez-vous à la console MemoryDB 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. Sélectionnez Create (Créer).

Pour créer un utilisateur à l'aide du 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 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 du 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 auACL. 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 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 la ressource Amazon (ARN) de l'utilisateur.

  5. Sous Listes de contrôle d'accès (ACL), vous pouvez vérifier à qui appartient ACL 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 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 du 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 à l'aide de la console et 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 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 Créer ACL.

  4. Sur la page Créer une liste de contrôle d'accès (ACL), entrez un ACL 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 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 coûts ACLs ou suivre vos AWS coûts.

  7. Sélectionnez Create (Créer).

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

Pour créer un nouveau compte ACL et ajouter un utilisateur à l'aide du CLI
  • Utilisez la commande create-acl pour créer un. 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 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 celui ACL que vous souhaitez modifier, puis sélectionnez 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 Créer un utilisateur à ajouter auACL.

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

  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 un ACL en ajoutant de nouveaux utilisateurs ou en supprimant des membres actuels à l'aide du CLI
  • Utilisez la commande update-acl pour modifier un. 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

Toutes les connexions ouvertes appartenant à un utilisateur supprimé d'un ACL sont interrompues par cette commande.

Pour afficher ACL les détails sur la console
  1. Connectez-vous à la console MemoryDB 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 le ACLnom du ACL sous-titre ou utilisez le champ de recherche pour trouver leACL.

  4. Sous Utilisateurs, vous pouvez consulter la liste des utilisateurs associés auACL.

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

  6. Sous Tags, vous pouvez consulter tous les tags associés auACL.

Utilisez la commande describe-acls pour afficher les détails d'un. 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 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 celui ACL que vous souhaitez modifier, puis cliquez sur Supprimer

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

C'ACLest lui-même, et non les utilisateurs appartenant au groupe, qui est supprimé.

Pour supprimer un à ACL l'aide du CLI
  • Utilisez la commande delete-acl pour supprimer un. 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

Une fois que vous avez créé ACL et ajouté des utilisateurs, la dernière étape de la mise en œuvre ACLs consiste ACL à les attribuer à un cluster.

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

Pour ajouter un 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 unACL.

  • --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 valeurnew-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"