Notes de mise à jour
1.1.0
Added
- Added support for configurable delimiters, including custom values with validation.
- Added support for remove quotes from the CSV file.
Changed
- Updated loggers and tooltips.
1.0.1
Fixed
- Fixed plugin validation with respect to CSV path.
- Fixed Sanity Step level validation.
1.0.0
Added
- Initial release.
This document explains how to configure the Linux File Share EDM plugin v1.1.0 with the Exact Data Match plugin of the Netskope Cloud Exchange platform. Use this integration to pull CSV files from a Linux server and generate Exact Data Match (EDM) hashes according to the defined plugin configurations.
Conditions préalables
Pour compléter la configuration, vous devez
- Un locataire Netskope (ou plusieurs, par exemple des instances de production et de développement/test).
- Un Netskope Cloud Exchange locataire avec leplugin Tenant et le plugin Exact données Match déjà configurés.
- Un serveur Linux avec le service SSH activé pour extraire le fichier CSV.
Prise en charge du plugin EDM pour le partage de fichiers sous Linux
Ce plugin récupère des fichiers CSV d'un serveur Linux via le protocole SFTP et génère des hachages Exact données Match (EDM) selon les configurations définies par le plugin. Le plugin prend en charge des fonctions avancées d'assainissement, de normalisation et de génération de hachage des données afin de garantir la qualité des données et la conformité aux normes de sécurité.
| Fonction | Support |
|---|---|
| Pull | Oui |
| Push | Non |
Permissions du serveur Linux
| Type d'autorisation | Requirement |
|---|---|
| Accès SSH | Required |
| Permissions de lecture des fichiers | Required |
| Protocole SFTP | Required |
Autorisations requises
Ces autorisations sont nécessaires pour la configuration du plugin :
- L'utilisateur SSH doit avoir les droits de lecture pour le fichier CSV spécifié.
- Connectivité réseau avec le serveur Linux sur le port configuré (par défaut : 22).
- Espace disque suffisant sur Cloud Exchange pour le traitement des fichiers temporaires.
Détails de l'API
Liste des bibliothèques utilisées
Ce plugin utilise des bibliothèques Python pour établir des connexions sécurisées avec des serveurs Linux et transférer des fichiers CSV via le protocole SFTP.
Library: Paramiko - Bibliothèque de protocole SSH2 pour Python
Usage: Paramiko est une implémentation purement Python du protocole SSHv2, fournissant à la fois des fonctionnalités de client et de serveur. Le plugin utilise Paramiko pour créer des connexions SFTP sécurisées, s'authentifier auprès du serveur Linux et transférer des fichiers CSV en toute sécurité. Paramiko offre des fonctionnalités SSH complètes, notamment l'authentification, la gestion des canaux et le transfert de fichiers.
Créer une connexion client SSH
import paramiko
ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_client.connect(
hostname=self.server_ip,
port=self.port,
username=self.username,
password=self.password,
timeout=30)
Créer un client SFTP
sftp_client = ssh_client.open_sftp()
Télécharger un fichier CSV à partir d'un serveur Linux
sftp_client.get(
remotepath=self.csv_file_path,
localpath=local_file_path
)
Vérifier l'existence et les autorisations des fichiers
try:
file_stat = sftp_client.stat(self.csv_file_path)
file_size = file_stat.st_size
file_permissions = file_stat.st_mode
except FileNotFoundError:
# Handle file not found error pass
Connexions étroites
sftp_client.close()
ssh_client.close()
Matrice de performance
Here is the performance reading conducted for fetching and sanitizing ~1M Rows (25 columns, per column ~50 characters long string, 1.3 GB size, Avg Column Uniqueness: ~96%, Avg Row Uniqueness: ~96%) CSV file on a Large CE instance with these specifications:
| Description | Spécifications |
|---|---|
| Détails de la pile | Taille : Grande RAM : 32 GB CPU : 16 cœurs |
| Données CSV extraites d'un partage de fichiers Linux sans assainissement | ~7.5K rows/sec |
Workflow
- Get your Linux server credentials and file paths
- Configurer le plugin EDM de partage de fichiers Linux
- Configure sharing between Linux File Share EDM Plugin and Tenant
- Validez le plugin EDM Linux File Share
Watch a Video
Cliquer sur « play » pour regarder une vidéo.
Get Your SFTP Shared File Path from Linux Server
-
Most SFTP setups are controlled via the SSH config file:
sudo vi /etc/ssh/sshd_config
-
Look for entries like:
Subsystem sftp internal-sftp
and especially:
Match User <username> ChrootDirectory /path/to/sftp/root ForceCommand internal-sftp -
The value of
ChrootDirectoryis the SFTP root (shared path) for that user. -
If no
ChrootDirectoryis set, then SFTP typically defaults to the user’s home directory:echo $HOME
OR
grep <username> /etc/passwd
-
Example output:
testuser:x:1001:1001::/home/testuser:/bin/bash
-
Here, /home/testuser is the SFTP accessible path.
Configurer le plugin EDM de partage de fichiers Linux
-
Dans Cloud Exchange, accédez à Settings > Plugin Store.
-
Recherchez et sélectionnez le plugin Linux File Share v1.1.0 (EDM).

-
Saisissez les informations de base :
- Configuration Name: Enter a name appropriate for your integration.
Le nom de configuration que vous fournissez sera utilisé pour donner un nom au fichier de hachage généré à partager avec le locataire Netskope. Sachez que si vous supprimez ultérieurement cette configuration et en créez une autre à l'adresse New avec le même nom, le fichier de hachage peut déjà exister dans le locataire Netskope. Dans ce cas, la tentative de transfert du fichier de hachage vers le locataire entraînera une erreur, car le fichier portant le même nom existe déjà. Envisagez d'utiliser un nom unique pour éviter ce problème.- Sync Interval: Adjust Sync Interval as per your requirement. (Default: 12 hours)

-
Click Next and enter the Configuration Parameters:
- Server IP/Hostname: IP address/Hostname of the Linux server.
- Username: Username of the Linux Machine.
- Password: Password for the provided username.
- Port: Port number to connect to the SSH service on the Linux machine.
- CSV File Path: Path of the CSV file to be pulled from the server.
- Delimiter: Single character delimiter used in the CSV/TXT file (e.g. comma, pipe, semicolon).
- Remove Quotes: Mark as checked if your CSV encloses fields in double quotes, especially when values contain commas. Quoted fields will be parsed as single columns. Improper quote placement may cause rows to be skipped.
By default, quotes are treated as literal text. Enable Remove Quotes toggle if your CSV uses double quotes to encapsulate fields that contain commas (like"123 ABC Street, Suite 100"). This ensures the field is treated as a single column. Note that this mode requires strict CSV formatting. If a field starts with a quote, any character, including a space, following the closing quote but preceding the comma (like"Word",) will cause the row to be skipped. -
Click Next and enter the Hash Generation and Sanitization Parameters:
- Select les options appropriées pour les opérations d'assainissement et de génération de hachage :
- Sanitization (Name Column): Sanitize the content by checking the Name Column checkbox. (Default: Unchecked). The Sanitization Process performs the following actions:
- One character: The cell will be marked as invalid if it contains only one character.
- Digits: Cells containing digits will be marked as invalid.
- Stopwords: Cells that match a stopword from the list will be marked as invalid (This works only if the Remove stopwords checkbox is checked).
- Non-alphanumeric characters: Remove all special characters to validate the cell.
- La génération de hachages est divisée en deux parties :
- Normalization: Select the value from dropdown to normalize the data value. (Default: None)
- Create Dictionary: Select value from dropdown to create dictionary of unique values for selected field that can be used in DLP rule in netskope tenant. (Default: None)
- Sanitization (Name Column): Sanitize the content by checking the Name Column checkbox. (Default: Unchecked). The Sanitization Process performs the following actions:
- Remove Stopwords: Mark as checked if you want to remove certain stopwords as part of the sanitization process.(Default:Unchecked) Ensure that Name Column is checked for the applicable field to reflect the changes.

Note
- Utilisez le paramètre de normalisation pour normaliser les résultats récupérés. Par exemple, un numéro tel que 123-45-6789 ou 123 45 6789 sera traité comme 123456789. Les normalisations numériques ignorent des caractères tels que les points, tirets et espaces. Une normalisation de chaîne ignore la sensibilité des lettres majuscules.
- N'utilisez l'option Créer un dictionnaire qu'en cas de nécessité, car cette opération est gourmande en ressources et peut avoir un impact sur les performances du système. Choisissez cette option de manière réfléchie pour une efficacité optimale.
- Select les options appropriées pour les opérations d'assainissement et de génération de hachage :
-
Click Next. Preview the sanitization sample output by clicking Preview Good File or Preview Bad File.
If you are using the plugin with sanitization On, then the performance may be differ due to extra processing. -
Proceed without sanitization: Uncheck this option to proceed with sanitization. (Default: Checked)
Toutes les données seront prises en compte pour la génération du hachage si cette option n'est pas cochée; dans le cas contraire, seul le contenu du bon fichier sera pris en compte pour la génération du hachage. -
Click Save. You will be redirected to Exact Data Match > Plugins page where you can see your configured plugin.

Configurer une configuration de partage EDM pour un partage de fichiers Linux
Une configuration de partage est utilisée pour partager les hachages EDM générés avec la plate-forme de destination. Pour partager les hachages EDM avec votre locataire Netskope, créez une configuration de partage en suivant ces étapes :
-
Allez à Exact Data Match > Sharing et cliquez sur Add Sharing Configuration.

-
Configurez les paramètres de partage :
- Source ConfigurationSelect le plugin Linux File Share EDM configuré.
- Destination ConfigurationSelect une destination où le hachage d'EDM sera partagé.
- Target: La valeur est automatiquement définie en fonction de la configuration de la destination sélectionnée.

- Cliquez sur Save.
Validate the Linux File Share EDM Plugin
Valider dans Cloud Exchange
Pour valider le tirage du plugin configuré dans Cloud Exchange, allez sur Settings > Logging et recherchez les journaux du plugin Linux File Share EDM.
Vous pouvez vérifier le fonctionnement du plugin à partir des journaux disponibles sur Logging dans Cloud Exchange :
EDM Linux File Share [Linux File Share Config]: Successfully connected to Linux server 192.168.1.100.

Les valeurs d'état sont les suivantes :
- Scheduled: Indique que le partage a été configuré et que les opérations "pull" et "push" sont en attente de traitement dans la file d'attente.
- Generating Hash: Indique que le processus de génération de hachage a commencé. Cette étape comprend l'extraction de > la validation de > l'assainissement (s'il est activé) > la génération d'un hachage.
- Uploading Hash: Indique que le téléchargement du hachage de la configuration de destination a commencé.
- Upload Completed: Indique que les hachages sont téléchargés dans la configuration de destination.
- Checking Apply Status: Vérification de l'état d'application des hachages à la configuration de destination.
- Apply In Progress: Le processus de hachage a commencé et est en cours sur la destination.
- Completed: Indique que le fichier de hachage a été transféré avec succès dans la configuration de destination.
- Failed: Indique que le résultat final de l'action n'a pas été exécuté. Les actions sont les suivantes : générer un hachage/télécharger un hachage/vérifier l'état de l'application.
Les hachages EDM partagés peuvent être vérifiés à partir des journaux disponibles à l'adresse Logging dans Cloud Exchange :

Validate on the Netskope Tenant
Dépannage du plugin EDM pour le partage de fichiers sous Linux
Impossible de configurer le plugin Linux File Share EDM
Si vous ne parvenez pas à configurer le plugin Linux File Share EDM, cela peut être dû à l'une des raisons suivantes :
- Les informations d'identification SSH fournies sont incorrectes.
- L'utilisateur n'a pas le droit de lire le fichier CSV.
- Nom d'hôte/adresse IP du serveur incorrects.
- Le port SSH est désactivé ou bloqué sur le serveur Linux.
- Problèmes de connectivité réseau entre Cloud Exchange et le serveur Linux.
What to do:
- Vérifiez que les informations d'identification SSH sont correctes :
ssh username@server_ip -p port_number - Vérifiez les autorisations de fichiers sur le serveur Linux :
ls -la /path/to/your/csv/file.csv - Assurez-vous que le service SSH est en cours d'exécution :
sudo systemctl status ssh - Vérifiez la connectivité du réseau :
telnet server_ip port_number
Fichier CSV introuvable ou accès refusé
Si vous recevez des messages d'erreur concernant un fichier non trouvé ou un accès refusé :
What to do:
- Vérifiez que le chemin d'accès au fichier CSV est correct et que le fichier existe.
- Assurez-vous que l'utilisateur SSH dispose des droits de lecture pour le fichier.
- Vérifiez que le fichier n'est pas verrouillé par un autre processus.
La génération de hachage échoue ou prend trop de temps
Si la génération de hachage échoue ou si les performances sont médiocres :
What to do:
- Vérifiez l'espace disque disponible sur Cloud Exchange (assurez-vous d'avoir au moins 2x la taille du fichier CSV).
- Réduisez la taille du fichier CSV ou divisez-le en plusieurs fichiers plus petits.
- Désactivez l'assainissement s'il n'est pas nécessaire pour améliorer les performances.
- Surveillez les ressources du système pendant le traitement.
Comportements connus
- L'assainissement peut réduire la vitesse de traitement d'environ 65% mais améliore la qualité des données.
- La création de dictionnaires est gourmande en ressources et ne doit être utilisée qu'en cas de nécessité.
- Le plugin crée des fichiers temporaires pendant le traitement qui sont automatiquement nettoyés.
- Des dépassements de délai de connexion SSH peuvent se produire avec des fichiers très volumineux ; envisagez d'augmenter les valeurs de délai.
- L'utilisation de la mémoire augmente avec la taille du fichier CSV ; surveillez les ressources du système pendant le traitement de fichiers volumineux.
Limites
-
Each Netskope tenant has a limit of handling up to 5 staging files. If this maximum limit is reached, you may encounter the following error while sharing hashes:
EDM Netskope Exact Data Match [EDM Netskope] Received exit code 400, Error occurred while uploading edm hashes of configuration Linux EDM to the configuration EDM Netskope.
-
To resolve this error, you have to delete the existing files from staging.




