Aller au contenu principal

Sécurité intérieure

Aperçu

Sécurité intérieure in Ilum est un système d’autorisation et d’authentification interne géré par Ilum Core. Il stocke en toute sécurité toutes les données utilisateur dans une base de données et est utilisé dans l’environnement Ilum Core Server.

Le système de sécurité interne d’Ilum offre Contrôle d’accès basé sur les rôles (RBAC) , permettant à chaque action sur le serveur central Ilum d’être mappée à une autorisation spécifique. Cela permet une gestion très précise des accès.

Pour simplifier l’attribution des autorisations, vous pouvez créer des rôles et des groupes d’utilisateurs qui Définissez les autorisations des utilisateurs associés à ces rôles ou groupes.

Declarative Resource Management

Ilum Core provides a declarative way to manage users and their roles through Helm configuration.

An example of a Helm configuration for user management is provided below.

ilum-core :  
sécurité :
interne :
Utilisateurs :
- nom d’utilisateur : Admin
mot de passe : someNewSecurePassword # A simple way to change the initial password of the default admin user
Rôles :
- ADMIN # Assigning the ADMIN role to the user
- nom d’utilisateur : orgUser
mot de passe : userPassword # Set the initial password for the user
Rôles :
- UTILISATEUR # Assigning the USER role to the user

Exemple

Créons un utilisateur qui peut accéder à l’architecture de données existante pour récupérer et analyser des données, mais qui n’en a pas l’autorisation de le modifier en ajoutant de nouveaux pods.

La première étape consiste à créer un rôle. Cela permet de rationaliser le processus en évitant d’avoir à attribuer à plusieurs reprises les mêmes autorisations à plusieurs utilisateurs.

  1. Accédez à Sécurité -> Rôles et cliquez sur l’icône Ajouter un rôle bouton.
  2. Remplissez les détails du rôle, y compris le nom et la description. N’oubliez pas de vérifier la Activé pour activer le rôle.

Ilum

  1. Ensuite, allez dans Autorisations et attribuez les autorisations appropriées pour le rôle.

Ilum

Pour cet exemple, nous allons configurer les autorisations en fonction des hypothèses suivantes :

  • L’utilisateur doit avoir un accès complet aux informations sur l’architecture des données pour l’utiliser efficacement. Assigner Lire autorisations pour les ressources suivantes : Tâches, services, planifications, clusters et demandes de tâches .
  • L’utilisateur doit être en mesure de travailler au sein de l’architecture de données pour transformer les données sans modifier les parties critiques du système. Assigner Exécuter autorisation pour le Service ressource. Assigner Créer autorisation pour le Travail ressource.
  • L’utilisateur doit avoir accès aux composants Ilum tels que Explorateur de fichiers, lignage, explorateur de tables, serveur d’historique, notebooks Superset, Jupyter ou Zeppelin et Ilum SQL . Subvention Lire l’autorisation d’utiliser chacun de ces composants.
  1. L’utilisateur doit être conscient de ses privilèges, mais ne doit pas avoir la possibilité de les modifier. Assigner Lire autorisations pour Groupes, rôles et utilisateurs

Après avoir créé le rôle, l’étape suivante consiste à créer l’utilisateur.

  1. Accédez à Sécurité -> Utilisateurs et cliquez sur l’icône Ajouter un utilisateur bouton.
  2. Remplissez les détails de l’utilisateur et activez le compte en cochant le Activé case à cocher.

Ilum

  1. Ensuite, attribuez Autorisations à l’utilisateur.

La façon la plus simple de le faire est d’attribuer le rôle que vous avez créé précédemment. Cela accordera automatiquement toutes les autorisations souhaitées à l’utilisateur.

Ilum

Si des autorisations supplémentaires sont requises en plus de celles du rôle, vous pouvez les attribuer directement à l’utilisateur si nécessaire.

Ilum

Enfin, l’utilisateur est prêt. Vous pouvez vous connecter à l’application à l’aide de son nom d’utilisateur et de son mot de passe.

Contrôle d’accès

Chaque action dans Ilum Core nécessite une autorisation spécifique. Au moment de la rédaction de cet article, 48 autorisations différentes peuvent être attribuées. Pour simplifier le contrôle d’accès, il est recommandé d’utiliser des groupes et des rôles.

Groupe Représenter des collections d’utilisateurs au sein de votre organisation. En affectant un utilisateur à un groupe, cet utilisateur hérite automatiquement de toutes les autorisations associées au groupe. Les autorisations de groupe peuvent être accordées à la fois directement et par le biais de rôles attribués au groupe.

Un utilisateur Peut appartenir à plusieurs groupes et se voir attribuer plusieurs rôles. Cela signifie que l’utilisateur héritera de toutes les autorisations accordées par ces groupes et rôles. De plus, vous pouvez attribuer des autorisations directement à l’utilisateur. Ilum Core vérifiera ensuite les permissions en prenant en compte celles directement attribuées à l’utilisateur, ainsi que celles des groupes et des rôles auxquels il appartient, y compris les rôles attribués aux groupes.

Remarque : Vous pouvez désactiver les rôles et les groupes, ce qui empêchera les utilisateurs d’hériter des autorisations de ceux-ci. De même, la désactivation des utilisateurs les empêchera d’accéder à tout ce qui se trouve dans l’application.

Autorisations

Chaque action dans Ilum Core nécessite sa propre autorisation.

1. Autorisations de la tâche Ilum :

  • JOB_READ
  • JOB_CREATE
  • JOB_DELETE - pour supprimer des tâches
  • REQUEST_READ

Remarque : JOB_READ permission vous donne accès à tout ce qui concerne le job : son message d’erreur et de réussite, ses logs, sa vue d’ensemble avec les métriques, etc. REQUEST_READ permission vous permet de lire une liste de toutes les requêtes et les détails de chacune d’entre elles

2. Autorisations du service Ilum :

  • SERVICE_CREATE
  • SERVICE_DELETEARCHIVE
  • SERVICE_EDIT
  • SERVICE_PAUSERESUME
  • SERVICE_EXECUTE
  • SERVICE_READ

3. Autorisations de planification :

  • SCHEDULE_READ
  • SCHEDULE_CREATE
  • SCHEDULE_EDIT
  • SCHEDULE_DELETE
  • SCHEDULE_PAUSERESUME

4. Autorisations du cluster :

  • CLUSTER_READ
  • CLUSTER_EDIT
  • CLUSTER_CREATE
  • CLUSTER_DELETE

Remarque : CLUSTER_READ ne donne pas accès aux services de lecture, aux planifications et aux tâches à l’intérieur d’un cluster. SERVICE_READ, SCHEDULE_READ et JOB_READ sont nécessaires

5. Accès aux modules.

Chaque module nécessite une autorisation pour y accéder. Cette autorisation donne un accès complet au module.

  • NOTEBOOK_READ : Jupyter et Zeppelin
  • LINEAGE_READ
  • SUPERSET_READ
  • HISTORYSERVER_READ
  • MINIO_READ
  • AIRFLOW_READ
  • MLFLOW_READ
  • SQL_READ
  • TABLEEXPLORER_READ
  • FILEEXPLORER_READ

6. Gestion de la sécurité

Il s’agit des autorisations requises pour observer, mettre à jour, supprimer, activer et désactiver des utilisateurs, des rôles et des groupes. En outre, il est permis d’observer l’historique des activités et de l’effacer.

  • USER_CREATE
  • USER_EDIT_PASSWORD (pour réinitialiser le mot de passe de l’utilisateur)
  • USER_EDIT_DETAILS (pour modifier le nom d’utilisateur, la description, le nom complet, le département, l’e-mail)
  • USER_EDIT_ACCESS (pour modifier les autorisations, les rôles et les groupes des utilisateurs)
  • USER_DELETE
  • USER_ENABLEDISABLE
  • USER_READ
  • USERROLE_CREATE
  • USERROLE_READ
  • USERROLE_DELETE
  • USERROLE_EDIT
  • USERROLE_ENABLEDISABLE
  • GROUP_READ
  • GROUP_DELETE
  • GROUP_CREATE
  • GROUP_EDIT
  • GROUP_ENABLEDISABLE
  • ACTIVITY_READ
  • ACTIVITY_DELETE

Rôles par défaut

Par défaut Ilum Core vous propose 4 rôles :

  1. ADMIN : A accès à toutes les autorisations
  2. UTILISATEUR : N’a accès qu’aux permissions de lecture, à l’exception de MLFlow, Minio, Ilum sql, Airlfow et Notebooks. A USER_EDIT_DETAILS autorisation
  3. DATA_ENGINEER : A accès à toutes les autorisations, à l’exception des autorisations de sécurité. A USER_EDIT_DETAILS autorisation
  4. DATA_SCIENTIST : Dispose de toutes les autorisations de lecture à l’exception de MLFlow et Airflow. Dispose de SERVICE_EXECUTE et JOB_CREATE autorisations. A USER_EDIT_DETAILS autorisation

Activités

Ilum conserve un historique des opérations de l’utilisateur, qui peut être consulté dans le Sécurité -> Activités dossier. Ici, vous pouvez voir une brève description de chaque action effectuée, ainsi que le point de terminaison utilisé, toutes les variables de chemin associées et son horodatage.

Ilum

Vous pouvez filtrer le journal d’activité par nom ou par extrémité pour trouver rapidement des informations pertinentes.

Déploiement

Ilum propose 3 types de sécurité et vous ne pouvez en choisir qu’un seul à la fois. Pour choisir la sécurité interne, vous devez définir les configurations de barre correspondantes sur interne Comme ci-dessous :

mise à niveau helm ilum ilum/ilum \\ 
--set ilum-core.security.internal.enabled=true \\
--set ilum-core.security.type=interne --reuse-values

En outre, vous pouvez utiliser la configuration Helm pour ajouter des utilisateurs initiaux à votre application. Les utilisateurs ajoutés via la configuration Helm seront créés au démarrage de l’application et étiquetés en tant qu’utilisateurs racines.

Utilisateurs root Sont assortis de certaines restrictions : Vous ne pouvez pas supprimer, désactiver, modifier son nom d’utilisateur ou restreindre son accès. Cependant, vous pouvez mettre à jour leurs détails, tels que leur nom complet, leur adresse e-mail, leur description ou réinitialiser leur mot de passe. Cela garantit que vous avez toujours un accès garanti à votre application.

Si vous avez besoin de mettre à jour les utilisateurs initiaux, il vous suffit de modifier votre configuration Helm. Ilum appliquera automatiquement la configuration mise à jour et mettra à jour les utilisateurs racine au prochain démarrage de l’application.

Juste un rappel : utilisez l’interface utilisateur/API pour l’ensemble de la gestion des utilisateurs après la configuration initiale. Il est recommandé de changer votre mot de passe lorsque vous vous connectez pour la première fois.

Vous pouvez ajouter des utilisateurs initiaux dans helm avec cela configuration.yaml :

ilum-core :  
sécurité :
interne :
Utilisateurs :
- nom d’utilisateur : « admin2 »
mot de passe : « admin »
Rôles :
- « ADMINISTRATEUR »
- nom d’utilisateur : « utilisateur2 »
mot de passe : « admin »
Rôles :
- « UTILISATEUR »

helm upgrade ilum ilum/ilum -f configuration.yaml --reuse-values 

Vous pouvez configurer tous les champs d’un utilisateur en helm comme dans l’exemple ci-dessous :

ilum-core :  
sécurité :
interne :
Utilisateurs :
- nom d’utilisateur : « monutilisateur »
Messagerie électronique : « e-mail »
nom complet : « nom complet »
département : « ministère »
description : « description »
mot de passe : « mot de passe »
Rôles :
- « RÔLE 1 »
- « RÔLE2 »
- « RÔLE3 »
Autorisations :
- « SERVICE_CREATE »
- « SERVICE_EXECUTE »
groupe :
- « groupId1 »
état : ACTIVÉ
rootState : faux

Remarque : si vous ne souhaitez pas que votre utilisateur initial soit un utilisateur root, vous pouvez définir l’indicateur rootState à false