ApsaraMQ for RabbitMQ prend en charge deux modes d'authentification et d'autorisation : l'authentification native open source et la gestion des accès via Resource Access Management (RAM). Lorsqu'un client open source se connecte au serveur ApsaraMQ for RabbitMQ, il doit fournir un nom d'utilisateur et un mot de passe pour s'authentifier selon le mode sélectionné. L'accès n'est accordé qu'après une authentification réussie.
Informations générales
ApsaraMQ for RabbitMQ propose deux modes d'authentification et de gestion des permissions : open-source authentication and permission management et Alibaba Cloud Resource Access Management (RAM). Lors de la création d'une instance, vous devez choisir l'un de ces modes. Ce choix est définitif et ne peut pas être modifié ultérieurement. Le tableau suivant compare ces deux modes.
|
Mode d'authentification |
Description |
Portée |
Avantages et inconvénients |
|
Gestion des authentifications et des autorisations open source |
Créez des noms d'utilisateur et des mots de passe personnalisés et attribuez des autorisations aux utilisateurs. |
SDK client |
|
|
Les noms d'utilisateur et les mots de passe sont générés à partir d'une paire AccessKey (AccessKey ID et AccessKey Secret) issue de RAM. Pour plus d'informations, consultez la section Créer des identifiants statiques ci-dessous. |
|
|
Remarques
-
Gestion des authentifications et des autorisations open source
La gestion des authentifications et des autorisations open source est disponible uniquement pour les instances nouvellement achetées. Les instances existantes ne peuvent pas basculer vers ce mode. Types d'instances pris en charge :
Évitez d'utiliser des mots de passe faibles pour prévenir les fuites d'identifiants.
Désactivez le compte guest par défaut.
-
Resource Access Management (RAM)
Le compte utilisé pour se connecter à la console ApsaraMQ for RabbitMQ doit être un compte Alibaba Cloud ou un utilisateur RAM disposant au minimum des autorisations permettant de consulter, créer et supprimer des noms d'utilisateur et des mots de passe statiques. Pour plus d'informations sur les autorisations liées aux noms d'utilisateur et mots de passe statiques ainsi que sur les opérations d'autorisation, consultez les sections Stratégies d'autorisation RAM et Autorisation du principal RAM et des sous-comptes.
Pour créer ou supprimer un nom d'utilisateur et un mot de passe statiques, l'instance doit être à l'état Running.
Le système génère un nom d'utilisateur et un mot de passe uniques pour chaque instance, même si vous utilisez la même paire AccessKey.
Pour mettre à jour un nom d'utilisateur et un mot de passe statiques, supprimez les identifiants existants et créez-en de nouveaux.
Le mot de passe d'un nom d'utilisateur et mot de passe statiques doit contenir simultanément des lettres majuscules, des lettres minuscules, des chiffres et des caractères spéciaux. Cette politique de complexité des mots de passe est appliquée de manière stricte et ne peut pas être désactivée temporairement. Si vous disposez d'une instance existante ou d'un ancien mot de passe ne répondant pas à cette exigence, nous vous recommandons d'ajouter au moins un caractère spécial à votre mot de passe actuel pour le rendre conforme.
Lorsque votre client utilise un SDK pour envoyer et recevoir des messages, nous vous recommandons d'utiliser des connexions persistantes. Cela évite au client d'établir une nouvelle connexion pour chaque message, ce qui pourrait consommer d'importantes ressources réseau et serveur, et déclencher potentiellement la protection contre les attaques SYN flood sur le serveur. Pour plus d'informations, consultez la section Connexion.
Authentification et autorisations open source
Créer un nom d'utilisateur et un mot de passe
Connectez-vous à la console ApsaraMQ for RabbitMQ. Dans le volet de navigation de gauche, cliquez sur Instances.
Dans la barre de navigation supérieure de la page Instances, sélectionnez la région où réside l'instance que vous souhaitez gérer. Ensuite, dans la liste des instances, cliquez sur le nom de l'instance concernée.
Dans le volet de navigation de gauche, cliquez sur Users and Permissions.
Sur la page Users and Permissions, cliquez sur Create Username/Password.
Dans le panneau Create Username/Password, saisissez le Username, le Password et le Confirm Password, puis cliquez sur OK.
Modifier le mot de passe d'un utilisateur
Sur la page Users and Permissions, repérez l'utilisateur dont vous souhaitez modifier le mot de passe. Dans la colonne Actions, cliquez sur Edit.
Dans le panneau Edit Username and Password, saisissez le nouveau Password et le Confirm Password, puis cliquez sur OK.
Supprimer un utilisateur
Si un utilisateur est supprimé, tout client tentant de se connecter à ApsaraMQ for RabbitMQ avec le nom d'utilisateur et le mot de passe de cet utilisateur sera rejeté.
Sur la page Users and Permissions, repérez l'utilisateur que vous souhaitez supprimer. Dans la colonne Actions, cliquez sur Delete.
Dans la boîte de dialogue Delete, cliquez sur OK.
Gestion des autorisations
La gestion des authentifications et des autorisations open source de ApsaraMQ for RabbitMQ s'applique au niveau des vhosts. Les autorisations d'un utilisateur ne sont effectives que dans les vhosts auxquels il est assigné. Le contrôle granulaire des autorisations utilisateur pour les opérations sur les Exchanges et les Queues est mis en œuvre à l'aide d'expressions régulières (Regex). Pour plus d'informations, consultez la section Gestion des authentifications et des autorisations open source.
Ajouter une autorisation
Sur la page Users and Permissions, repérez l'utilisateur auquel vous souhaitez ajouter des autorisations. Dans la colonne Actions, cliquez sur Manage Permissions.
Dans le panneau Manage Permissions, cliquez sur Add Permission.
-
Dans la liste déroulante, sélectionnez le vhost à configurer, saisissez les expressions régulières correspondant aux opérations pertinentes, puis cliquez sur OK.
L'expression régulière correspond aux noms des exchanges et des queues.
.*correspond à toutes les ressources.^$correspond uniquement à une chaîne vide. Cela remplace tout accès aux ressources et bloque l'utilisateur pour toute opération.'^(amq\.gen.*|amq\.default)$'permet l'accès aux ressources générées par le système et à l'exchange par défaut.
ImportantSi vous utilisez un point de terminaison public, vous devez également configurer une liste blanche d'adresses IP publiques après avoir défini les autorisations. Si l'instance utilise l'authentification open source et nécessite la configuration de l'ID d'instance lors de la connexion via un point de terminaison public, consultez la section Accéder à une instance avec authentification open source via un point de terminaison public.
Mettre à jour une autorisation
La modification des autorisations d'un utilisateur pour un virtual host peut entraîner des erreurs lors de l'envoi ou de la consommation de messages pour les clients connectés à ce virtual host avec les identifiants de cet utilisateur.
Dans le panneau Manage Permissions, repérez l'autorisation du virtual host que vous souhaitez modifier. Dans la colonne Actions, cliquez sur Update.
Saisissez l'expression régulière mise à jour pour l'opération et cliquez sur OK.
Supprimer une autorisation
Si les autorisations d'un utilisateur pour un virtual host sont supprimées, le serveur rejettera les tentatives de connexion des clients utilisant ces identifiants pour ce virtual host.
Dans le panneau Manage Permissions, repérez l'autorisation du virtual host que vous souhaitez supprimer. Dans la colonne Actions, cliquez sur Delete.
Dans la boîte de dialogue Delete, cliquez sur OK.
Resource Access Management (RAM)
Créer des identifiants statiques
Connectez-vous à la console ApsaraMQ for RabbitMQ. Dans le volet de navigation de gauche, cliquez sur Instances.
Dans la barre de navigation supérieure de la page Instances, sélectionnez la région où réside l'instance que vous souhaitez gérer. Ensuite, dans la liste des instances, cliquez sur le nom de l'instance concernée.
Dans le volet de navigation de gauche, cliquez sur Users and Permissions.
Sur la page Users and Permissions, cliquez sur Create Username/Password.
-
Dans le panneau Create Username/Password, saisissez l'AccessKey ID et l'AccessKey Secret, puis cliquez sur OK.
RemarqueVous pouvez obtenir l'AccessKey ID et l'AccessKey Secret depuis la console Alibaba Cloud RAM. Pour plus d'informations, consultez la section Créer une paire AccessKey.
ImportantApsaraMQ for RabbitMQ ne prend pas en charge l'utilisation directe d'une AccessKey Alibaba Cloud (AccessKey ID et AccessKey Secret) comme identifiant de connexion client. Vous devez d'abord convertir l'AccessKey en identifiants statiques dans la console, puis utiliser le nom d'utilisateur et le mot de passe générés pour authentifier la connexion client. Si vous utilisez directement l'AccessKey comme identifiant de connexion, celle-ci échouera avec l'erreur
AuthenticationFailureException: AkDisabled.Une fois les identifiants créés, la page Users and Permissions affiche le nouveau nom d'utilisateur et le nouveau mot de passe statiques, le mot de passe étant masqué par défaut. La nouvelle entrée apparaît dans la liste des identifiants avec des colonnes telles que Instance ID, AccessKey, Username, Password et Creation Time. Vous pouvez cliquer sur Delete dans la colonne Actions pour supprimer l'identifiant.
Dans la colonne Password de l'identifiant statique créé, cliquez sur Display pour afficher le mot de passe.
Si vous utilisez un nom d'utilisateur et un mot de passe statiques créés à partir de l'AccessKey d'un utilisateur RAM pour vous connecter à ApsaraMQ for RabbitMQ et envoyer/recevoir des messages, assurez-vous que l'utilisateur RAM dispose des autorisations nécessaires pour envoyer et recevoir des messages. Pour plus d'informations, consultez la section Stratégies d'autorisation RAM.
Supprimer des identifiants statiques
Un nom d'utilisateur et un mot de passe statiques deviennent invalides s'ils sont supprimés ou si l'AccessKey utilisée pour les créer est désactivée ou supprimée. Si un client tente de se connecter à ApsaraMQ for RabbitMQ avec ces identifiants statiques, la connexion sera rejetée.
Sur la page Users and Permissions, repérez le nom d'utilisateur et le mot de passe statiques à supprimer, puis dans la colonne Actions, cliquez sur Delete.
-
Dans la boîte de dialogue Prompt, lisez attentivement le message et cliquez sur OK.
Le nom d'utilisateur et le mot de passe statiques supprimés n'apparaissent plus sur la page Users and Permissions.
Opérations associées
Après avoir créé un nom d'utilisateur et un mot de passe, votre client peut utiliser directement un client RabbitMQ open source pour se connecter à ApsaraMQ for RabbitMQ. Pour plus d'informations, consultez la section Liste des SDK et exemples de code.