Presidio de Microsoft en Open source.
Installation de PRESIDIO sur DOCKER
Description
This document describes the installation of the entire Presidio suite using pip (as Python packages) or using Docker (As containerized services).
Using pip
Supported Python Versions
Presidio is supported for the following python versions:
- 3.10
- 3.11
- 3.12
- 3.13
PII anonymization on text
For PII anonymization on text, install the presidio-analyzer and presidio-anonymizer packages with at least one NLP engine (spaCy, transformers or stanza):
pip install presidio_analyzer
pip install presidio_anonymizer
python -m spacy download en_core_web_lg
GPU acceleration (optional)
For GPU acceleration, install the appropriate dependencies for your hardware:
- Linux with NVIDIA GPU:
pip install "spacy[cuda12x]"(or the version matching your CUDA installation) - macOS with Apple Silicon: MPS is detected automatically, no additional dependencies required.
For detailed GPU setup, verification, and troubleshooting, see GPU Acceleration.
PII redaction in images
For PII redaction in images
Install the
presidio-image-redactorpackage:pip install presidio_image_redactor # Presidio image redactor uses the presidio-analyzer # which requires a spaCy language model: python -m spacy download en_core_web_lgInstall an OCR engine. The default version uses the Tesseract OCR Engine. More information on installation can be found here.
Utilisation de Docker
Presidio peut exposer les terminaux REST pour chaque service en utilisant Flask et Docker. Pour télécharger les conteneurs Presidio Docker, exécutez la commande suivante :
Note
Cela nécessite l’installation de Docker. Téléchargez Docker.
Pour l’anonymisation des PII dans le texte
Pour la détection des PII et l’anonymisation dans le texte, les modules et sont requis.presidio-analyzerpresidio-anonymizer
# Download Docker images
docker pull mcr.microsoft.com/presidio-analyzer
docker pull mcr.microsoft.com/presidio-anonymizer
# Run containers with default ports
docker run -d -p 5002:3000 mcr.microsoft.com/presidio-analyzer:latest
docker run -d -p 5001:3000 mcr.microsoft.com/presidio-anonymizer:latest
Pour la rédaction des PII dans les images
Pour la détection de PII dans les images, le est requis.presidio-image-redactor
# Download Docker image
docker pull mcr.microsoft.com/presidio-image-redactor
# Run container with the default port
docker run -d -p 5003:3000 mcr.microsoft.com/presidio-image-redactor:latest
Une fois les services en cours, leurs API sont disponibles. Des références API et des appels d’exemples sont disponibles ici.
Installer depuis la source
Pour installer Presidio depuis le source, clonez d’abord le dépôt :
- utilisant HTTPS
git clone https://github.com/microsoft/presidio.git
- Utilisation du SSH
git clone git@github.com:microsoft/presidio.git
Ensuite, construis les conteneurs localement.
Note
Presidio utilise docker-compose pour gérer les différents conteneurs Presidio.
Depuis le dossier racine du dépôt :
docker-compose up --build
Sinon, vous pouvez construire et gérer des services individuels. Par exemple, pour le service :presidio-anonymizer
docker build ./presidio-anonymizer -t presidio/presidio-anonymizer
Et courez :
docker run -d -p 5001:5001 presidio/presidio-anonymizer
Pour plus d’informations sur le développement local, Consultez la section Mise en place d’un environnement de développement.
Installation testée et validée.
1. Pré‑requis rapides
Avant d’exécuter les commandes :
- Docker doit être installé et lancé.
- Ton utilisateur doit avoir les droits pour exécuter
docker(sinon utilisersudo).
2. Télécharger les images Presidio
Ces commandes téléchargent les images officielles Microsoft Presidio pour l’analyse et l’anonymisation de PII.
docker pull mcr.microsoft.com/presidio-analyzer
docker pull mcr.microsoft.com/presidio-anonymizer
3. Lancer les conteneurs avec les ports par défaut
Les services internes tournent sur le port 3000 dans le conteneur.
On les expose sur 5002 et 5001 côté hôte :
docker run -d -p 5002:3000 mcr.microsoft.com/presidio-analyzer:latest
docker run -d -p 5001:3000 mcr.microsoft.com/presidio-anonymizer:latest
-d→ mode détaché (en arrière-plan)-p HOST:CONTAINER→ mapping des ports
4. Vérifier que tout fonctionne
Liste des conteneurs actifs :
docker ps
Tu devrais voir quelque chose comme :
presidio-analyzer→ port 5002presidio-anonymizer→ port 5001
Tester l’API Analyzer :
curl http://localhost:5002/analyze
Tester l’API Anonymizer :
curl http://localhost:5001/anonymize
5. Où cela se situe dans la documentation ?
Les commandes que tu cites proviennent de la section Using Docker de la page d’installation Presidio microsoft.github.io.
6. Variante recommandée pour un usage professionnel (DSI/DPO/RSSI)
Pour stabiliser l’environnement dans un workflow d’audit :
- Ajouter des noms explicites aux conteneurs
- Fixer les versions (éviter
latest) - Ajouter un réseau Docker dédié
Exemple :
docker network create presidio-net
docker run -d --name presidio-analyzer \
--network presidio-net \
-p 5002:3000 \
mcr.microsoft.com/presidio-analyzer:1.0.0
docker run -d --name presidio-anonymizer \
--network presidio-net \
-p 5001:3000 \
mcr.microsoft.com/presidio-anonymizer:1.0.0
Voici une analyse complète et structurée de l’installation de Presidio, de ses variantes, ainsi que de ses avantages et limites, avec un niveau d’expertise aligné sur vos besoins en IA, gouvernance, conformité, DSI/DPO/RSSI.
Présidio : de quoi parle-t‑on exactement ?
Presidio est un framework open source de Microsoft conçu pour :
- détecter des données personnelles (PII/PHI/PCI),
- les anonymiser, pseudonymiser ou masquer,
- s’intégrer dans des pipelines d’audit, de conformité, de gouvernance documentaire ou d’IA.
Il est composé de plusieurs services modulaires :
- presidio-analyzer : détecte les entités sensibles (NIR, IBAN, email, téléphone, etc.)
- presidio-anonymizer : applique des transformations (mask, redact, hash, encrypt…)
- presidio-image-redactor : caviarde les images
- presidio-ocr : extrait du texte avant analyse
- presidio-re : moteur regex avancé
1) Installation de Presidio : les trois approches possibles
A. Installation via Docker (la plus stable et recommandée)
C’est la méthode que tu utilises déjà. Elle offre :
- isolation,
- reproductibilité,
- compatibilité multi‑OS,
- déploiement rapide.
Étapes :
- Installer Docker Desktop.
- Télécharger les images :
docker pull mcr.microsoft.com/presidio-analyzer:1.0.0 docker pull mcr.microsoft.com/presidio-anonymizer:1.0.0 - Lancer les conteneurs :
docker run -d -p 5002:3000 mcr.microsoft.com/presidio-analyzer:1.0.0 docker run -d -p 5001:3000 mcr.microsoft.com/presidio-anonymizer:1.0.0
Avantages :
- aucune dépendance locale,
- versions figées,
- idéal pour pipelines d’audit.
Limites :
- nécessite Docker,
- pas de GPU support natif,
- pas de scaling automatique sans orchestrateur.
B. Installation via Python (pip)
Pour intégrer Presidio dans un script Python ou un pipeline ML.
pip install presidio-analyzer presidio-anonymizer
Avantages :
- intégration directe dans un code Python,
- personnalisation fine (custom recognizers, ML models).
Limites :
- dépendances parfois lourdes,
- versions moins stables que Docker,
- nécessite un environnement Python propre.
C. Installation avancée : Kubernetes / AKS / OpenShift
Pour les environnements d’entreprise :
- scaling horizontal,
- monitoring (Prometheus, Grafana),
- CI/CD,
- isolation réseau.
Avantages :
- haute disponibilité,
- intégration dans un SI souverain.
Limites :
- complexité,
- nécessite une équipe DevOps.
2) Variantes de Presidio : modules et cas d’usage
A. Presidio Analyzer
Détecte les entités sensibles via :
- regex,
- modèles ML,
- règles contextuelles,
- modèles spaCy.
Cas d’usage :
- audit documentaire,
- pré‑traitement avant ingestion IA,
- conformité RGPD/PCI‑DSS.
B. Presidio Anonymizer
Transforme les données détectées :
- mask,
- redact,
- replace,
- hash,
- encrypt,
- fpe (format-preserving encryption).
Cas d’usage :
- caviardage automatique,
- pseudonymisation,
- génération de jeux de données anonymisés.
C. Presidio Image Redactor
Caviarde les images contenant :
- visages,
- plaques d’immatriculation,
- texte OCR.
Cas d’usage :
- vidéosurveillance,
- documents scannés,
- archives.
D. Presidio OCR
Pipeline complet :
- OCR (Tesseract)
- Analyzer
- Anonymizer
Cas d’usage :
- traitement de PDF,
- audit de documents papier numérisés.
3) Avantages de Presidio pour un environnement DSI/DPO/RSSI
✔️ A. Alignement RGPD / ISO / NIS2
Presidio permet :
- minimisation des données,
- pseudonymisation,
- privacy by design,
- auditabilité.
✔️ B. Open source et souveraineté
- pas de dépendance à un cloud externe,
- déploiement on‑premise,
- contrôle total sur les modèles.
✔️ C. Modularité
Tu peux :
- ajouter tes propres règles,
- intégrer des modèles IA internes,
- adapter les anonymizers.
✔️ D. Intégration facile dans les pipelines
Compatible avec :
- PowerShell,
- Python,
- Docker,
- CI/CD,
- ETL,
- ingestion IA (Azure, OpenAI, Llama…).
4) Limites de Presidio (et contournements)
A. Modèles ML limités
Les modèles intégrés sont basiques.
Contournement :
- intégrer spaCy FR,
- ajouter des recognizers custom,
- brancher un LLM interne.
B. Pas de support GPU natif
Presidio n’est pas optimisé pour le deep learning.
Contournement :
- utiliser des modèles externes (transformers),
- pré‑analyser avec un LLM puis valider avec Presidio.
C. Pas de gestion native des PDF
Il faut passer par :
- Presidio OCR,
- ou un pipeline externe (PyMuPDF, Tika).
D. Pas de gestion de la qualité des données
Presidio détecte, mais ne :
- nettoie pas,
- normalise pas,
- ne reconstruit pas les documents.
5) Synthèse : quand utiliser Presidio ?
| Besoin | Pertinence Presidio |
|---|---|
| Audit documentaire | ⭐⭐⭐⭐⭐ |
| RGPD / DPO / RSSI | ⭐⭐⭐⭐⭐ |
| Préparation de données IA | ⭐⭐⭐⭐ |
| Anonymisation massive | ⭐⭐⭐⭐ |
| Analyse sémantique avancée | ⭐⭐ (limité) |
| Traitement d’images | ⭐⭐⭐ |
Combiner Presidio + LLM Ollama pour une gouvernance augmentée.
1. Rôles respectifs : qui fait quoi ?
| Composant | Rôle principal | Forces | Limites |
|---|---|---|---|
| Presidio | Détection & anonymisation PII/PHI/PCI | Déterministe, traçable, RGPD | Peu sémantique, règles/regex |
| LLM (Ollama) | Analyse sémantique & gouvernance | Contexte, résumé, classification | Non déterministe, à encadrer |
| PowerShell | Orchestration & pipeline d’audit | Reproductible, scriptable | Nécessite une bonne discipline |
2. Architecture cible “Gouvernance augmentée”
Pipeline logique :
Ingestion
Fichiers (TXT, DOCX, PDF+OCR) → PowerShell
Détection & anonymisation
PowerShell → Presidio Analyzer
PowerShell → Presidio Anonymizer
Sorties :
texte anonymisé,
journal des entités détectées (JSON).
Analyse sémantique & gouvernance
PowerShell → Ollama (LLM local) avec :
texte anonymisé,
résumé des entités détectées (types, volumes, criticité).
Sorties gouvernance
classification documentaire (sensibilité, périmètre DPO/RSSI),
recommandations (conservation, restriction, revue humaine),
synthèse pour COMEX / DSI / DPO.
3. Exemple de flux PowerShell + Presidio + Ollama
3.1. Étape 1 – Presidio (détection + anonymisation)
Tu pars du pipeline que tu as déjà presque en place :
3.2. Étape 2 – Préparer un “résumé gouvernance” pour le LLM
On synthétise les entités détectées pour le LLM :
3.3. Étape 3 – Appel à Ollama (LLM local)
Supposons qu’Ollama expose une API HTTP locale (ex. modèle llama3 ou mistral).
4. Ce que t’apporte réellement la combinaison Presidio + LLM
Avantages
Séparation nette des rôles
Presidio : détection/anonymisation déterministe, traçable.
LLM : interprétation, priorisation, synthèse.
Conformité renforcée
Le LLM ne voit que du texte déjà anonymisé → réduction du risque.
Gouvernance augmentée
Classification automatique des documents,
recommandations de conservation/accès,
aide à la décision pour DPO/RSSI/COMEX.
Souveraineté
Ollama en local + Presidio en Docker → aucun envoi vers un cloud externe.
Limites à encadrer
Le LLM reste probabiliste → toujours prévoir une revue humaine pour les décisions critiques.
Nécessité de journaliser :
prompts,
réponses,
versions de modèles,
horodatage.
5. Comment en faire un vrai outil d’audit DSI/DPO/RSSI
Tu peux aller vers :
un script PowerShell maître qui :
parcourt un dossier,
applique Presidio,
appelle Ollama,
génère :
fichier anonymisé,
audit JSON,
synthèse gouvernance (LLM),
un tableau de bord Excel/Power BI alimenté par ces sorties,
une matrice de risques documentaire (type, volume de PII, recommandations).
Architecture globale : pipeline de gouvernance augmentée
1) Vue d’ensemble (conceptuelle)
2) Architecture technique (composants + flux)
A. Couche d’ingestion
Fichiers :
.txt,.docx,.pdf,.jpg/.pngOCR optionnel pour PDF/images
Normalisation (encodage, nettoyage)
B. Couche Presidio (Docker)
presidio-analyzer: détection PII/PHI/PCIpresidio-anonymizer: masquage, pseudonymisationpresidio-ocr(optionnel)
Flux :
PowerShell → Analyzer → JSON d’entités
PowerShell → Anonymizer → texte anonymisé
C. Couche LLM (Ollama)
Modèle local (Llama3, Mistral, Phi3…)
Analyse sémantique du texte anonymisé
Génération d’un rapport gouvernance :
classification (faible/moyen/élevé),
risques,
recommandations DPO/RSSI,
résumé exécutif.
D. Couche d’orchestration (PowerShell)
Pipeline reproductible
Logs horodatés
Hash SHA256 avant/après
Export des rapports
E. Couche de sortie
Texte anonymisé
Audit JSON
Rapport gouvernance (Markdown/texte)
Tableau de bord (Excel/Power BI)
3) Architecture logique orientée gouvernance
A. Séparation des responsabilités
Presidio = détection/anonymisation déterministe, traçable, RGPD.
LLM = interprétation, classification, priorisation.
PowerShell = orchestration, auditabilité, reproductibilité.
B. Gouvernance renforcée
Le LLM ne voit jamais les données brutes → uniquement le texte anonymisé.
Les entités détectées sont journalisées dans un audit JSON.
Les décisions du LLM sont contextualisées par les métadonnées Presidio.
C. Souveraineté
Tout tourne en local : Docker + Ollama.
Aucun envoi vers un cloud externe.
Compatible avec exigences DSI/DPO/RSSI.
4) Architecture opérationnelle (déploiement)
5) Architecture des données (flux + audit)
Entrées
Document brut
Métadonnées (source, auteur, date)
Traitements
Détection PII → JSON
Anonymisation → texte nettoyé
Analyse LLM → synthèse gouvernance
Sorties
document.anonymized.txtdocument.audit.jsondocument.governance.md
Traçabilité
Hash SHA256 avant/après
Version des modèles Presidio
Version du modèle Ollama
Horodatage complet
6) Architecture de sécurité
Isolation Docker (réseau dédié
presidio-net)Aucun appel externe
LLM local uniquement
Journalisation complète
Contrôle d’accès aux dossiers d’entrée/sortie
Possibilité d’ajouter :
chiffrement des rapports,
signature numérique,
coffre-fort documentaire.
Une matrice de gouvernance associée à votre architecture Presidio + LLM (Ollama) + PowerShell doit permettre de classer, prioriser et décider du traitement documentaire selon trois dimensions :
- sensibilité,
- risques,
- actions de gouvernance.
Elle sert de référentiel opérationnel pour DSI/DPO/RSSI, et elle s’intègre naturellement dans ton pipeline :
- Presidio → détecte et quantifie les données sensibles
- Ollama → interprète le contexte et propose une classification
- PowerShell → applique la matrice et génère les rapports.
Matrice de gouvernance (structure complète)
1) Classification de sensibilité (basée sur Presidio + LLM)
Cette classification combine :
- volume d’entités détectées (Presidio),
- nature des entités (PII/PHI/PCI),
- contexte sémantique (LLM),
- usage prévu (DSI/DPO/RSSI).
| Niveau | Critères Presidio | Critères LLM | Exemples |
|---|---|---|---|
| Faible | Peu d’entités, non critiques | Contexte non sensible | Emails génériques, notes internes |
| Moyen | Plusieurs PII modérées | Contexte RH, client, interne | CV, échanges RH, factures |
| Élevé | PII/PHI/PCI critiques | Contexte juridique, financier, médical | IBAN, NIR, santé, contrats |
| Très élevé | Données massives ou très sensibles | Risques juridiques majeurs | Dossiers médicaux, données financières complètes |
2) Typologie des risques (croisée Presidio + LLM)
La matrice doit couvrir les risques juridiques, opérationnels, réputationnels, sécurité, conformité.
| Risque | Déclencheur Presidio | Déclencheur LLM | Impact |
|---|---|---|---|
| Atteinte à la vie privée | PII détectées | Contexte personnel | RGPD, plainte |
| Fraude / usurpation | IBAN, carte, identité | Contexte financier | Perte financière |
| Non‑conformité RGPD | Données non minimisées | Contexte non justifié | Sanctions CNIL |
| Fuite d’information | Données sensibles | Contexte stratégique | Réputation |
| Erreur humaine | Volume élevé | Ambiguïté sémantique | Mauvaise décision |
3) Actions de gouvernance (automatisables dans PowerShell)
Chaque niveau de sensibilité déclenche des actions précises.
| Niveau | Actions obligatoires | Actions recommandées |
|---|---|---|
| Faible | Archivage simple | Revue annuelle |
| Moyen | Anonymisation Presidio | Revue DPO |
| Élevé | Pseudonymisation + restrictions d’accès | Chiffrement + conservation limitée |
| Très élevé | Revue humaine obligatoire | Double validation DPO/RSSI + coffre-fort documentaire |
4) Matrice de décision (Presidio → LLM → Gouvernance)
Cette matrice est le cœur du pipeline.
| Entrée | Traitement Presidio | Analyse LLM | Décision |
|---|---|---|---|
| Texte brut | Détection PII | Contexte | Sensibilité |
| Entités détectées | Anonymisation | Risques | Actions |
| Volume + criticité | Pseudonymisation | Recommandations | Conservation |
| Contexte métier | Aucun | Synthèse | Accès / diffusion |
5) Matrice de criticité des entités (pondération Presidio)
Chaque type d’entité reçoit un score de criticité.
| Entité | Criticité | Justification |
|---|---|---|
| 1 | Faible risque | |
| Téléphone | 2 | Usurpation possible |
| Adresse | 2 | Profilage |
| Nom complet | 3 | Identité |
| IBAN | 4 | Fraude financière |
| Carte bancaire | 5 | PCI-DSS |
| Données santé | 5 | RGPD art. 9 |
Ces scores alimentent la classification automatique.
6) Matrice de conservation (DSI/DPO)
Basée sur la sensibilité + contexte.
| Sensibilité | Conservation | Conditions |
|---|---|---|
| Faible | 3 ans | Archivage simple |
| Moyen | 2 ans | Accès restreint |
| Élevé | 1 an | Chiffrement obligatoire |
| Très élevé | 6 mois | Revue DPO + justification |
7) Matrice d’accès (RSSI)
Détermine qui peut consulter le document.
| Sensibilité | Accès | Contrôles |
|---|---|---|
| Faible | Tous internes | Aucun |
| Moyen | Managers + RH | Journalisation |
| Élevé | DPO + RSSI | Double authentification |
| Très élevé | DPO uniquement | Coffre-fort documentaire |
8) Matrice d’audit (PowerShell)
Chaque traitement génère un audit structuré :
- hash SHA256 avant/anonymisé
- version Presidio
- version LLM
- entités détectées
- classification LLM
- décision de gouvernance
- horodatage complet
9) Intégration dans ton pipeline Presidio + Ollama
La matrice est appliquée automatiquement :
- Presidio → détecte et quantifie
- PowerShell → calcule la criticité
- Ollama → interprète le contexte
- PowerShell → applique la matrice
- Génération :
- fichier anonymisé
- audit JSON
- rapport gouvernance
Cette matrice peut être enrichie avec des règles spécifiques à votre organisation.
La suite https://learn.microsoft.com/fr-fr/azure/healthcare-apis/
Services de données de santé Azure est une PaaS (Platform as a Service) gérée basée sur des normes et infrastructures OpenAPI qui prennent en charge des solutions de gestion des données de santé évolutives et plus sécurisées. Services de données de santé Azure optimise Microsoft for Healthcare et d’autres charges de travail de santé en prenant en charge des chemins d’accès conformes et plus sécurisés pour ingérer, conserver et connecter les données de santé dans le cloud.
Dans ce parcours d’apprentissage, vous allez acquérir une compréhension de base de Services de données de santé Azure et de ses composants de base. Vous allez être guidé à travers des cas d’utilisation tout en explorant les défis d’interopérabilité des données sur la santé et les sciences de la vie, en examinant les outils et les connecteurs de Services de données de santé Azure et leurs avantages, en examinant l’architecture de données de FHIR® et les détails de l’implémentation de l’API FHIR, en explorant les normes DICOM® et Service DICOM® à l’aide du cas d’utilisation des données radiologiques dans le traitement du cancer et comment prendre en charge des scénarios de données IoT pour le suivi des patients à distance.
Prérequis Aucun


Aucun commentaire:
Enregistrer un commentaire