MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Application des contrôles d'accès basés sur les rôles avec ClusterControl

Dans la récente version 1.8.2 de ClusterControl de Manynines, nous avons introduit de nombreuses fonctionnalités et modifications sophistiquées. L'une des fonctionnalités importantes est le système de gestion des utilisateurs récemment amélioré, qui couvre la gestion des nouveaux utilisateurs et LDAP. Une fonctionnalité existante complémentaire dans ClusterControl est son contrôle d'accès basé sur les rôles (RBAC) pour la gestion des utilisateurs, qui est au centre de ce blog.

Contrôle d'accès basé sur les rôles dans ClusterControl

Pour ceux qui ne connaissent pas les contrôles d'accès basés sur les rôles (RBAC) de ClusterControl, il s'agit d'une fonctionnalité qui vous permet de restreindre l'accès de certains utilisateurs à des fonctionnalités de cluster de base de données spécifiques et à des actions ou tâches administratives. Par exemple, l'accès aux fonctionnalités de déploiement (ajout d'équilibreurs de charge, ajout de cluster existant), de gestion et de surveillance. Cela garantit que seuls les utilisateurs autorisés sont autorisés à travailler et à afficher en fonction de leurs rôles respectifs et évite les intrusions indésirables ou les erreurs humaines en limitant l'accès d'un rôle aux tâches administratives. L'accès aux fonctionnalités est précis, ce qui permet de définir l'accès par une organisation ou un utilisateur. ClusterControl utilise un cadre d'autorisations pour définir comment un utilisateur peut interagir avec la fonctionnalité de gestion et de surveillance en fonction de son niveau d'autorisation.

Le contrôle d'accès basé sur les rôles dans ClusterControl joue un rôle important, en particulier pour les utilisateurs administrateurs qui l'utilisent constamment dans le cadre de leurs tâches DBA. Un DBA ClusterControl doit être familiarisé avec cette fonctionnalité car elle permet au DBA de déléguer des tâches aux membres de l'équipe, de contrôler l'accès à la fonctionnalité ClusterControl et de ne pas exposer toutes les fonctionnalités et fonctionnalités à tous les utilisateurs. Ceci peut être réalisé en utilisant la fonctionnalité de gestion des utilisateurs, qui vous permet de contrôler qui peut faire quoi. Par exemple, vous pouvez configurer une équipe telle qu'un analyste, un développeur ou un administrateur de base de données, et ajouter des restrictions en fonction de l'étendue de ses responsabilités pour un cluster de bases de données donné.

Le contrôle d'accès de ClusterControl est illustré dans le schéma suivant

Les détails des termes utilisés ci-dessus sont fournis ci-dessous. Une équipe peut être affectée à un ou plusieurs des clusters de bases de données gérés par ClusterControl. Une équipe se compose d'utilisateurs vides ou multiples dans une équipe. Par défaut, lors de la création d'une nouvelle équipe, le compte super administrateur lui sera toujours associé. La suppression du superadministrateur ne l'empêche pas d'être lié à cette nouvelle équipe.

Un utilisateur et un cluster doivent être affectés à une équipe ; c'est une implémentation obligatoire dans ClusterControl. Par défaut, le compte super-administrateur est attribué à une équipe d'administrateurs, qui a déjà été créée par défaut. Les clusters de bases de données sont également affectés à l'équipe d'administration par défaut.

Un rôle ne peut avoir aucun utilisateur attribué ou il peut être attribué à plusieurs utilisateurs conformément à leur rôle ClusterControl.

Rôles dans ClusterControl

Les rôles dans ClusterControl sont en fait définis par défaut. Ces rôles par défaut sont :

  • Super Admin - C'est un rôle caché, mais c'est le rôle de super administrateur (superadmin), ce qui signifie toutes les fonctionnalités sont disponibles pour ce rôle. Par défaut, l'utilisateur que vous avez créé après une installation réussie représente votre rôle de super administrateur. De plus, lors de la création d'une nouvelle équipe, le superadmin est toujours affecté à la nouvelle équipe par défaut.

  • Admin - Par défaut, presque toutes les fonctionnalités sont visibles. Être visible signifie que les utilisateurs sous le rôle d'administrateur peuvent effectuer des tâches de gestion. Les fonctionnalités qui ne sont pas disponibles pour ce rôle sont le conseiller client et la gestion des clés SSL.

  • Utilisateur :les intégrations, l'accès à tous les clusters et certaines fonctionnalités ne sont pas disponibles pour ce rôle et sont refusés par défaut. Ceci est utile si vous souhaitez affecter des utilisateurs réguliers qui ne sont pas destinés à travailler sur des tâches de base de données ou d'administration. Il y a quelques étapes manuelles à faire pour ceux qui ont le rôle d'utilisateur pour voir d'autres clusters.

Les rôles dans ClusterControl sont arbitraires afin que les administrateurs puissent créer des rôles arbitraires et les attribuer à un utilisateur sous Teams.

Comment accéder aux rôles ClusterControl

Vous pouvez créer un rôle personnalisé avec son propre ensemble de niveaux d'accès. Attribuez le rôle à un utilisateur spécifique sous l'onglet Équipes. Ceci peut être atteint en localisant la gestion des utilisateurs dans la barre latérale dans le coin droit. Voir la capture d'écran ci-dessous :

Application des contrôles d'accès basés sur les rôles avec ClusterControl

L'application de RBAC est spécifique au domaine de l'utilisateur, ce qui limite l'accès d'un utilisateur aux fonctionnalités de ClusterControl en fonction de ses rôles et privilèges. Dans cet esprit, nous devrions commencer à créer un utilisateur spécifique.

Création d'un utilisateur dans ClusterControl

Pour créer un utilisateur, commencez sous l'onglet Gestion des utilisateurs ➝ Équipes. Maintenant, créons d'abord une équipe.

Une fois créé, il existe un compte super-admin qui est lié par défaut une fois qu'une équipe est créée.

Maintenant, ajoutons un nouvel utilisateur. L'ajout d'un nouvel utilisateur doit être fait dans une équipe, nous pouvons donc le créer sous DevOps.

Comme vous l'avez peut-être remarqué, le nouvel utilisateur que nous avons créé est maintenant sous le rôle User, qui est ajouté par défaut dans ClusterControl. Ensuite, l'équipe est également sous DevOps.

Fondamentalement, il y a maintenant deux utilisateurs dans l'équipe DevOps, comme indiqué ci-dessous :

Notez que les rôles sont spécifiques au domaine de l'utilisateur, il applique donc des restrictions d'accès uniquement à cet utilisateur spécifique, et non à l'équipe à laquelle il appartient.

Rôles administrateur vs utilisateur (rôles par défaut dans ClusterControl)

Étant donné que nous avons deux rôles ajoutés par défaut dans ClusterControl, certaines limitations sont définies par défaut. Pour savoir de quoi il s'agit, accédez simplement à  Gestion des utilisateurs ➝ Contrôle d'accès. Vous trouverez ci-dessous une capture d'écran illustrant les fonctionnalités ou privilèges disponibles qu'un utilisateur appartenant au rôle peut utiliser :

Rôle d'administrateur

Rôle d'utilisateur

Le rôle d'administrateur a beaucoup plus de privilèges, tandis que le rôle d'utilisateur a certains privilèges qui sont restreints. Ces rôles par défaut peuvent être modifiés en fonction de la configuration souhaitée. L'ajout d'un rôle vous permet également de démarrer et de définir les rôles autorisés ou non. Par exemple, nous allons créer un nouveau rôle. Pour créer un rôle, appuyez simplement sur le bouton "+" plus le long des rôles. Vous pouvez voir le nouveau rôle que nous avons créé, appelé Lecteur.

Tous les ticks sont décochés. Cochez simplement sous la colonne Autoriser pour activer la fonctionnalité ou le privilège ou cochez sous la colonne Refuser si vous souhaitez refuser l'accès. La colonne Gérer permet aux utilisateurs de ce rôle d'effectuer des tâches de gestion. Alors que la colonne Modifier vous permet d'activer les modifications qui ne sont disponibles que pour les privilèges ou les fonctionnalités sous Alarmes, Tâches et Paramètres.

Tester RBAC

Dans cet exemple, les clusters suivants sont présents dans mon contrôleur, comme indiqué ci-dessous :

Ceci est visible par le compte super administrateur dans cet environnement.

Maintenant que nous avons défini le RBAC pour l'utilisateur que nous venons de créer, essayons de nous connecter en utilisant l'e-mail et le mot de passe que nous venons de définir.

C'est ce qui est créé,

Aucun cluster n'est disponible et visible, et certains privilèges sont refusés comme indiqué ci-dessous, tels que les paramètres de gestion des clés et les notifications par e-mail :

Régler RBAC

Étant donné que les privilèges des rôles sont modifiables, il est facile de les gérer via Gestion des utilisateurs ➝ Contrôle d'accès.

Maintenant, permettons à l'utilisateur créé de voir un cluster. Étant donné que l'accès à tous les clusters est refusé à notre utilisateur, nous devons l'activer. Voir ci-dessous,

Maintenant, comme nous l'avons indiqué précédemment sur la base du diagramme, les clusters sont contrôlés par l'équipe. Par exemple, il existe les attributions de cluster suivantes : 

Étant donné que nous devons affecter le cluster à la bonne équipe, sélectionner le cluster spécifique et cliquer sur le bouton "Changer d'équipe" affichera l'invite vous permettant de le réaffecter à la bonne équipe.

Maintenant, attribuons-le à DevOps.

Maintenant, reconnectez-vous en tant qu'utilisateur nouvellement créé, et nous pourrons voir le cluster.

Résumé

Le contrôle d'accès basé sur les rôles (RBAC) dans ClusterControl est une fonctionnalité qui fournit un contrôle d'accès restrictif précis pour chaque utilisateur que vous avez créé dans ClusterControl, permettant une plus grande sécurité et un contrôle d'accès plus restrictif basé sur un rôle de l'utilisateur.