Note de la rédaction :Cet exemple illustre notre précoce, la moins directe (bien que toujours disponible) méthode d'utilisation d'IRI FieldShield pour protéger les données trouvées dans les tables MongoDB. Comme vous le lirez, l'utilitaire d'exportation MongoDB dans ce cas extrait les données et crée un fichier CSV que FieldShield masque en externe, avant de charger les données nouvellement sécurisées dans MongoDB. Vous pouvez utiliser cette même approche pour les données d'autres bases de données NoSQL telles que Cassandra et ElasticSearch.
IRI propose également des méthodes plus directes pour déplacer les données entre les collections MongoDB et les moteurs de masquage de données IRI comme FieldShield ou Voracity. Un article pratique sur le masquage direct des données MongoDB structurées via ODBC à partir de 2016 est ici , et via le pilote natif de MongoDB pris en charge dans CoSort v10 (alimentant FieldShield et Voracity) en 2018 est ici. La méthode la plus récente (quatrième méthode) – qui peut rechercher et masquer des informations personnelles dans les collections MongoDB structurées et non structurées à l'aide d'IRI DarkShield — dans l'interface graphique depuis 2019 est ici et dans l'API depuis 2021 est ici.
MongoDB est une base de données NoSQL puissante qui peut stocker de grandes quantités de données dans des paquets appelés collections (similaires aux tables des bases de données relationnelles). Bien qu'il s'adapte horizontalement (ajoutez de la puissance à la base de données en ajoutant des machines), MongoDB n'a aucun moyen interne de masquer les données une fois qu'elles ont été saisies, à part la mise à jour manuelle de chaque enregistrement.
L'exemple ci-dessous protège les valeurs MongoDB de manière externe. J'explique comment exporter une collection vers un fichier CSV, utiliser IRI FieldShield pour masquer un champ dans ce fichier et réimporter ce fichier dans Mongo afin que la collection soit protégée de manière appropriée. Notez que vous pouvez masquer n'importe quel nombre de champs de 14 manières différentes à l'aide de FieldShield.
Il est également possible de découvrir et de masquer automatiquement des données dans de multiples sources structurées, semi-structurées et non structurées sur la base de classes de données définies de manière centralisée, que d'autres articles de ce blog (comme celui-ci) détaillent. Cet exemple ne montre cependant que les aspects de masquage, sur la base des sélections exportées.
Données avant masquage
Voici les enregistrements de la table source, affichés avec MongoVUE.
Exporter les données du tableau
Utilisez l'utilitaire d'exportation MongoDB (mongoexport) pour exécuter la commande :
--db <Database Name> --collection <Collection Name> --csv --fields <field1,field2,...> --out <Output Path>
Utilisation de l'interface graphique FieldShield pour créer la tâche de masquage des données
- Ouvrez l'atelier IRI et démarrez l'assistant Créer une nouvelle tâche de protection (masquage) pour FieldShield.
- Choisissez le nom que vous souhaitez donner au travail et cliquez sur suivant.
- Sur l'écran Sources de données, cliquez sur Ajouter une source de données et localisez le fichier CSV que vous avez créé.
- Cliquez sur Modifier les options de source et, sous Options, changez le type de format en CSV et cliquez sur OK.
- Cliquez sur Découvrir les métadonnées et suivez l'assistant. Il devrait détecter le séparateur comme ',' et être capable de générer les données de champ. Il choisira très probablement ASCII pour le type de données. Pour changer cela, cliquez sur le type de données de champ que vous souhaitez modifier, puis sélectionnez le type de données que vous souhaitez utiliser. Une fois que vous êtes satisfait de vos types de données, cliquez sur Terminer .
- Cliquez sur Suivant pour accéder à l'écran des cibles de données, puis cliquez sur Ajouter une cible de données . Nommez ensuite un fichier CSV que vous souhaitez créer, et cliquez sur OK .
- Cliquez sur Mise en page du champ cible pour faire apparaître l'écran où vous appliquerez le masque :
- Le tableau du bas vous montrera tous les champs qui seront dans votre fichier cible. Sélectionnez le nom du champ que vous souhaitez masquer, cliquez sur la flèche du menu Protection des champs et choisissez la fonction de masquage souhaitée dans la liste déroulante.
- Complétez les paramètres de la boîte de dialogue, cliquez sur OK (deux fois) et Terminer pour terminer l'assistant de tâche.
- Votre tâche FieldShield devrait alors être générée pour vous :
Vérifiez et, si nécessaire, modifiez et réenregistrez votre travail de masquage des données. Exécutez-le depuis l'interface graphique, la ligne de commande ou depuis une application pour générer le fichier que vous allez réimporter dans MongoDB.
Importation de la table masquée
Utilisez l'utilitaire d'importation MongoDB (mongoimport) pour exécuter les commandes :
--db <Database Name> --collection <Collection Name> --type csv --fields <field1,field2,...> --upsert --upsertFields <Field to match to old database*> --file <File Path of the file to import (The file created by the Mask Script)>
*Pour réimporter tout dans l'ancienne collection, vous devez lui indiquer les champs que vous saisissez pour interroger les enregistrements existants. Un exemple serait le courrier électronique; il associerait tous les enregistrements importés à leur adresse e-mail existante et mettrait à jour l'enregistrement.
Données après masquage
Vous trouverez ci-dessous les enregistrements de la table cible ; montré avec MongoVUE. Notez que seuls les numéros de carte de crédit ont été masqués dans le processus FieldShield ; d'autres champs auraient pu être protégés avec des fonctions similaires ou différentes en même temps.
Outre la définition et l'exécution relativement faciles des tâches FieldShield, son utilisation avec Mongo présente d'autres avantages, notamment :
- vitesse en volume :les architectures de performance d'IRI et de Mongo sont conçues pour évoluer de manière linéaire
- compatibilité multiplateforme :choisissez parmi ces sources compatibles
- Fonctionnalités simultanées d'intégration, de migration, de réplication, de fédération et de création de rapports de données dans le même script de tâche CoSort (programme SortCL, parent de FieldShield) et passe d'E/S
Contactez si vous avez des questions sur ce processus ou commentez ci-dessous.