Authentification des utilisateurs avec la commande Redis AUTH - Amazon ElastiCache for Redis

Authentification des utilisateurs avec la commande Redis AUTH

Les jetons d'authentification Redis, ou mots de passe, permettent à Redis d'exiger un mot de passe avant d'autoriser les clients à exécuter des commandes, améliorant ainsi la sécurité des données.

Présentation de AUTH dans ElastiCache for Redis

Lorsque vous utilisez Redis AUTH avec votre cluster ElastiCache for Redis, il y a quelques améliorations.

En particulier, prêtez attention à ces jetons AUTH, ou mots de passe, qui représentent des contraintes lors de l'utilisation de AUTH avec ElastiCache for Redis :

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

  • Les caractères non alphanumériques sont limités à (!, &, #, $, ^, <, >, -).

  • AUTH ne peut être activé que pour les clusters ElastiCache for Redis dans lesquels le chiffrement en transit est activé.

Pour configurer un jeton fort, nous vous recommandons de suivre une stratégie de mot de passe stricte, par exemple en exigeant les éléments suivants :

  • Les jetons ou mots de passe doivent inclure au moins trois des types de caractères suivants :

    • Caractères majuscules

    • Caractères minuscules

    • Chiffres

    • Caractères non alphanumériques (!, &, #, $, ^, <, >, -)

  • Les jetons, ou mots de passe, ne doivent pas contenir un mot provenant du dictionnaire ou un mot du dictionnaire légèrement modifié.

  • Les jetons, ou mots de passe, ne doivent pas être identiques ou similaires à un mot de passe utilisé récemment.

Application de l'authentification à un cluster ElastiCache for Redis

Vous pouvez exiger que les utilisateurs saisissent un jeton (mot de passe) sur un serveur Redis protégé par jetons. Pour ce faire, incluez le paramètre --auth-token (API : AuthToken) avec le jeton correct lorsque vous créez votre groupe ou cluster de réplication. Incluez-le également dans toutes les commandes suivantes vers le groupe ou le cluster de réplication.

L'opération AWS CLI suivante crée un groupe de réplication avec le chiffrement en transit (TLS) activé et le jeton AUTH This-is-a-sample-token. Remplacez le groupe de sous-réseaux sng-test par un groupe de sous-réseaux existant.

Paramètres clés

  • --engine – Doit indiquer redis.

  • --engine-version : version 3.2.6, 4.0.10 ou supérieure.

  • --transit-encryption-enabled : obligatoire pour l'authentification et l'éligibilité HIPAA.

  • --auth-token : obligatoire pour l'éligibilité HIPAA. Cette valeur doit constituer le jeton correct pour ce serveur Redis protégé par des jetons.

  • --cache-subnet-group : obligatoire pour l'éligibilité HIPAA.

Pour Linux, macOS ou Unix :

aws elasticache create-replication-group \ --replication-group-id authtestgroup \ --replication-group-description authtest \ --engine redis \ --engine-version 4.0.10 \ --cache-node-type cache.m4.large \ --num-node-groups 1 \ --replicas-per-node-group 2 \ --cache-parameter-group default.redis3.2.cluster.on \ --transit-encryption-enabled \ --auth-token This-is-a-sample-token \ --cache-subnet-group sng-test

Pour Windows :

aws elasticache create-replication-group ^ --replication-group-id authtestgroup ^ --replication-group-description authtest ^ --engine redis ^ --engine-version 4.0.10 ^ --cache-node-type cache.m4.large ^ --num-node-groups 1 ^ --replicas-per-node-group 2 ^ --cache-parameter-group default.redis3.2.cluster.on ^ --transit-encryption-enabled ^ --auth-token This-is-a-sample-token ^ --cache-subnet-group sng-test

Modification du jeton AUTH sur un cluster ElastiCache for Redis existant

Pour faciliter la mise à jour de votre authentification, vous pouvez modifier le jeton AUTH utilisé sur un cluster ElastiCache for Redis. Vous pouvez effectuer cette modification si la version du moteur est 5.0.5 ou supérieure et si ElastiCache for Redis est doté du chiffrement en transit.

La modification du jeton d'authentification prend en charge deux stratégies : ROTATE et SET. La stratégie ROTATE ajoute un jeton AUTH supplémentaire sur le serveur tout en conservant le jeton précédent. La stratégie SET met à jour le serveur pour prendre en charge un seul jeton AUTH. Effectuez ces appels de modification avec le paramètre --apply-immediately pour appliquer les modifications immédiatement.

Rotation du jeton AUTH

Pour mettre à jour un serveur Redis avec un nouveau jeton AUTH, appelez l'API ModifyReplicationGroup avec le paramètre --auth-token comme nouveau jeton d'authentification et le paramètre --auth-token-update-strategy avec la valeur ROTATE. Une fois la modification terminée, le cluster prendra en charge le jeton AUTH précédent en plus de celui spécifié dans le paramètre auth-token.

Note

Si vous ne configurez pas le jeton AUTH auparavant, une fois la modification terminée, le cluster ne prendra en charge aucun jeton AUTH en plus de celui spécifié dans le paramètre auth-token.

Si cette modification est effectuée sur un serveur qui prend déjà en charge deux jetons AUTH, le AUTH le plus ancien sera également supprimé au cours de cette opération, ce qui permet à un serveur de prendre en charge jusqu'à deux jetons AUTH récents à un moment donné.

À ce stade, vous pouvez procéder en mettant à jour le client pour qu'il utilise le dernier jeton AUTH. Une fois les clients mis à jour, vous pouvez utiliser la stratégie SET pour la rotation des jetons AUTH (expliqué dans la section suivante) pour commencer exclusivement à utiliser le nouveau jeton.

L'opération AWS CLI suivante modifie un groupe de réplication pour faire pivoter le jeton AUTH This-is-the-rotated-token.

Pour Linux, macOS ou Unix :

aws elasticache modify-replication-group \ --replication-group-id authtestgroup \ --auth-token This-is-the-rotated-token \ --auth-token-update-strategy ROTATE \ --apply-immediately

Pour Windows :

aws elasticache modify-replication-group ^ --replication-group-id authtestgroup ^ --auth-token This-is-the-rotated-token ^ --auth-token-update-strategy ROTATE ^ --apply-immediately

Définition du jeton AUTH

Pour mettre à jour un serveur Redis avec deux jetons AUTH pour prendre en charge un seul jeton AUTH, appelez l'opération d'API ModifyReplicationGroup. Appelez ModifyReplicationGroup avec le paramètre --auth-tokenen tant que nouveau jeton AUTH et le paramètre --auth-token-update-strategy avec la valeur SET. Le paramètre auth-token doit comporter la même valeur que le dernier jeton AUTH soumis à une rotation. Une fois la modification terminée, le serveur Redis ne prend en charge que le jeton AUTH spécifié dans le paramètre auth-token.

L'opération AWS CLI suivante modifie un groupe de réplication pour définir le jeton AUTH sur This-is-the-set-token.

Pour Linux, macOS ou Unix :

aws elasticache modify-replication-group \ --replication-group-id authtestgroup \ --auth-token This-is-the-set-token \ --auth-token-update-strategy SET \ --apply-immediately

Pour Windows :

aws elasticache modify-replication-group ^ --replication-group-id authtestgroup ^ --auth-token This-is-the-set-token ^ --auth-token-update-strategy SET ^ --apply-immediately

Activation de l'authentification sur un cluster ElastiCache for Redis existant

Pour activer l'authentification sur un serveur Redis existant, appelez l'opération d'API ModifyReplicationGroup. Appelez ModifyReplicationGroup avec le paramètre --auth-token en tant que nouveau jeton et le paramètre --auth-token-update-strategy avec la valeur ROTATE.

Une fois la modification terminée, le cluster prend en charge le jeton AUTH spécifié dans le paramètre auth-token en plus de prendre en charge la connexion sans authentification. L'activation de l'authentification n'est prise en charge que sur les serveurs Redis pour lesquels le chiffrement en transit (TLS) est activé.

Migration de RBAC vers Redis AUTH

Si vous authentifiez des utilisateurs avec le contrôle d'accès basé sur les rôles Redis (RBAC), comme décrit dansAuthentification des utilisateurs avec le contrôle d'accès basé sur les rôles (RBAC) et que vous souhaitez migrer vers Redis AUTH, utilisez les procédures suivantes. Vous pouvez migrer à l'aide de la console ou de la CLI.

Pour migrer de RBAC vers Redis AUTH à l'aide de la console

  1. Connectez-vous à la AWS Management Console et ouvrez la console ElastiCache à l'adresse https://console.aws.amazon.com/elasticache/.

  2. Depuis la liste située dans l'angle supérieur droit, choisissez la région AWS dans laquelle se trouve le cluster à modifier.

  3. Dans le volet de navigation, choisissez le moteur s'exécutant sur le cluster que vous voulez modifier.

    Une liste de clusters du moteur choisi s'affiche.

  4. Dans la liste des clusters, choisissez le nom du cluster que vous souhaitez modifier.

  5. Pour Actions, choisissez Modify (Modifier).

    La fenêtre Modify Cluster s'affiche.

  6. Pour Access Control Option (Option de contrôle d'accès), choisissez Redis AUTH Default User (Utilisateur par défaut Redis AUTH).

  7. Sous AUTH token (jeton AUTH), acceptez No change (Pas de modification), procédez à la rotation d'un jeton existant ou définissez un nouveau jeton.

  8. Sélectionnez Modify (Modifier).

Pour migrer de RBAC vers Redis AUTH à l'aide de la AWS CLI

  • Utilisez l'une des commandes suivantes.

    Pour Linux, macOS ou Unix :

    aws elasticache modify-replication-group \ --replication-group-id test \ --remove-user-groups \ --auth-token password \ --auth-token-update-strategy SET \ --apply-immediately

    Pour Windows :

    aws elasticache modify-replication-group ^ --replication-group-id test ^ --remove-user-groups ^ --auth-token password ^ --auth-token-update-strategy SET ^ --apply-immediately

Pour plus d'informations sur l'utilisation d'AUTH, veuillez consulter AUTH token sur le site de redis.io.