Aller au contenu principal

Presidio (presidio)

Détection (analyzer) et masquage (anonymizer) des données personnelles dans les invites, les réponses et les documents, avec les modèles spaCy anglais et français.

Généré depuis catalog/services/presidio.yaml : ne pas modifier à la main.

Résumé​

Version2.2.366
Usageinstaller et configurer, configurer et connecter
Couchefonctionnelle (catalogue IA)
CatégorieSécurité et politiques
Méthodes d'installationpython, podman
Connexion externenon
Réservé au bac à sablenon

Licence​

Identifiant SPDXMIT
Politique de licencelicence socle (MIT ou Apache-2.0)
Exception de licence-
Composant de la plateformepresidio

Paquets et artefacts​

Un paquet que publie le projet du service (son image, son archive binaire, son paquet Python ou système) porte la licence du service ; un paquet tiers porte la licence écrite sur sa ligne, lue dans les métadonnées officielles du projet amont.

TypePaquetVersionLicenceDétails
image de conteneurmcr.microsoft.com/presidio-analyzer2.2.362MITclé d'image analyzer, utilisée par analyzer, condensé sha256:286e3fa7f3a7426e775e8564fe1870f1ba8f999d3ab8bbb8cc46a44355d9d6e9
image de conteneurmcr.microsoft.com/presidio-anonymizer2.2.362MITclé d'image anonymizer, utilisée par anonymizer, condensé sha256:a10a12a2a613d13cf29d3ad3641e3258444dd8c90403dd644a0a114c472c2483
paquet Pythonpresidio-analyzer2.2.366MITinterpréteurs, par ordre de préférence python3.11, python3.12
paquet Pythonpresidio-anonymizer2.2.366MITinterpréteurs, par ordre de préférence python3.11, python3.12
paquet Pythonspacy>=3.7,<4 (plage)MITinterpréteurs, par ordre de préférence python3.11, python3.12
paquet Pythonen_core_web_lg3.8.0MITinterpréteurs, par ordre de préférence python3.11, python3.12
paquet Pythonfr_core_news_lg3.8.0LGPLLRinterpréteurs, par ordre de préférence python3.11, python3.12
paquet Pythonflask>=3.0 (plage)BSD-3-Clauseinterpréteurs, par ordre de préférence python3.11, python3.12
paquet Pythongunicorn>=22.0 (plage)MITinterpréteurs, par ordre de préférence python3.11, python3.12

Les images sont épinglées par étiquette dans le descripteur, et par condensé (digest) quand le descripteur en déclare un (le bundle hors ligne refuse alors une image téléchargée qui ne le porte pas) ; le condensé est enregistré dans le miroir du Manager à l'import du bundle hors ligne, et chaque téléchargement ou chargement est vérifié par rapport à lui.

Systèmes et architectures pris en charge​

MéthodeSystèmes d'exploitationArchitectures
pythonfamille RHEL (dnf), famille Debian (apt), Arch Linux (pacman)x86_64, aarch64 (non restreintes par le descripteur)
podmanfamille RHEL (dnf), famille Debian (apt), Arch Linux (pacman)x86_64, aarch64 (non restreintes par le descripteur)

Systèmes hôtes certifiés : RHEL 8/9/10, Rocky Linux 8/9/10, AlmaLinux 8/9/10, Oracle Linux 8/9, CentOS Stream 9/10, Ubuntu 22.04/24.04, Debian 12, Arch Linux (rolling). Le contrôle préalable des hôtes accepte ces systèmes (une autre version d'une famille connue donne un avertissement, une version en fin de vie est refusée) et les architectures x86_64 et aarch64.

Prérequis​

Hôte​

  • au moins 4096 Mo de mémoire (avertissement, memory).

Réseau et ports​

ComposantNom du portPortOuvert dans le pare-feu de l'hôte
analyzerapi5002/tcpoui
anonymizerapi5003/tcpoui

Services et connexions nécessaires​

Ce service n'a aucune dépendance.

Méthodes et modes d'installation​

MéthodeDéfautCe que la méthode utilise
pythonouiun environnement virtuel Python qui contient les paquets Python du descripteur
podman-les images de conteneur du descripteur, exécutées par Podman sous systemd

Composants​

ComposantTypeMéthodes d'installationPorts
Analyseur (analyzer)maîtrepython, podman5002/tcp
Anonymiseur (anonymizer)maîtrepython, podman5003/tcp

Serveur unique (standalone) (par défaut)​

Un analyseur et un anonymiseur.

Ce que le mode déploie :

ComposantPlacement
analyzermin 1, max 1
anonymizermin 1, max 1

Répliqué (replicated)​

Plusieurs instances sans état de chaque API derrière le répartiteur de charge.

Ce que le mode déploie :

ComposantPlacement
analyzermin 2, recommandé 2
anonymizermin 2, recommandé 2

Installer ce service​

L'assistant d'installation du Navin Manager planifie, valide et exécute l'installation ; il faut la permission services:install sur le cluster.

  1. Ouvrez l'assistant. Dans Clusters, choisissez l'action de ligne Installer des services du cluster cible. L'assistant s'ouvre sur sa première étape, Service.

  2. Choisissez le service. À l'étape Service, sélectionnez Presidio. La carte affiche la licence MIT. Choisissez la Méthode parmi python, podman (par défaut python).

  3. Choisissez les hôtes et le mode. À l'étape Hôtes, cochez les hôtes, puis choisissez le Mode : standalone (par défaut), replicated. Chaque mode déploie les composants listés dans Méthodes et modes d'installation. Avec plusieurs composants, placez chacun sur ses hôtes dans Répartition des composants (Proposer un placement propose un placement qui respecte les cardinalités).

  4. Liaisons. Ce service n'a aucune dépendance : l'étape Liaisons n'a rien à lier.

  5. Configurez. À l'étape Configuration, relisez les paramètres (voir Paramètres de configuration). Les mots de passe laissés vides avec une valeur générée par défaut sont générés et scellés par le Manager.

  6. Relisez et installez. À l'étape Installation, le Manager valide le plan et affiche l'ordre d'installation ; quand il indique « Le plan est valide. Prêt pour l'installation. », choisissez Installer. Un mode hautement disponible n'est installé que si ses contrôles HA réussissent.

  7. Vérifiez. L'opération se termine quand les contrôles de santé de chaque instance réussissent (voir Contrôles de santé) ; le service apparaît alors en marche dans Services.

Connecter un service existant​

Schémashttps, http
Port par défaut5002
Authentificationaucune
Contrôle de santé/health
Méthode d'authentificationChampsDescription
none-Les API REST de l'analyseur et de l'anonymiseur Presidio n'ont pas d'authentification : exposez-les sur le réseau interne seulement.

Documentation officielle : https://microsoft.github.io/presidio/

ChampTypeDéfautDescriptionRemarques
URL de l'anonymiseur (anonymizer_url)url-URL de l'anonymiseur du service existant.obligatoire

Haute disponibilité​

Clusterréplicas (replication)
Haute disponibilitéexterne (external)
Basculerépartiteur (load-balancer)
Réplicationaucun (none)
Quorumaucun (none)
Découverteaucun (none)
Point d'entréerépartiteur (load-balancer)
Documentation officiellehttps://microsoft.github.io/presidio/installation/

Topologie par mode​

ModesNiveau le plus haut du catalogueRépartitionComposant du quorumDomaines de panneDescription
standaloneautonome (standalone)unique (single)-1Un analyseur et un anonymiseur.
replicatedha (ha)actif-actif (active-active)-2Plusieurs analyseurs et anonymiseurs sans état derrière le répartiteur.

Remarques​

  • Chaque instance charge ses modèles spaCy en mémoire : prévoir la mémoire de chaque hôte.

Paramètres de configuration​

Réseau​

ParamètreTypeDéfautValeurs permisesObligatoireSecretRedémarrageDescription
Port de l'analyseur (analyzer_port)port5002-nonnonouiPort de l'API de l'analyseur (/analyze).
Port de l'anonymiseur (anonymizer_port)port5003-nonnonouiPort de l'API de l'anonymiseur (/anonymize).
TLS (tls_enabled)boolfalse-nonnonouiServir les deux API en HTTPS avec un certificat de l'autorité du Manager : le serveur gunicorn de chaque API le charge (réglages certfile et keyfile passés dans GUNICORN_CMD_ARGS, pour la méthode python comme pour les images officielles) ; les contrôles de santé et les adresses des clients passent alors en https.

Modèles de langue​

ParamètreTypeDéfautValeurs permisesObligatoireSecretRedémarrageDescription
Langues (languages)list["en", "fr"]-nonnonouiLangues des modèles spaCy chargés par l'analyseur.
Processus de travail (workers)int2min 1, max 16nonnonouiProcessus de travail de chaque API (chacun charge les modèles). (recommandé clamp(floor(host.cpu_count / 4), 1, 8))

Points d'accès​

Point d'accèsSchémaComposantPortCheminParamètre TLSParamètres de liaisonSecrets de liaisonCommande de provisionnement
analyzerhttpanalyzer5002 (analyzer_port)-tls_enabled---
anonymizerhttpanonymizer5003 (anonymizer_port)-tls_enabled---

Fichiers de configuration client​

Fichiers rendus pour le téléchargement de la configuration client :

  • presidio.env (client.env.j2)

Commandes​

CommandeComposantCibleDescription
Journaux de l'analyseur (logs)analyzerhôte choisiDernières lignes du journal de l'analyseur.

Contrôles de santé​

Vivacité (par instance)​

ComposantContrôleDétails
analyzerHTTP {{ 'https' if config.tls_enabled else 'http' }}://{{ host.ip or '127.0.0.1' }}:{{ config.analyzer_port }}/healthAttendu 200 ; 60 tentatives ; intervalle 2 s ; délai 5 s
anonymizerHTTP {{ 'https' if config.tls_enabled else 'http' }}://{{ host.ip or '127.0.0.1' }}:{{ config.anonymizer_port }}/healthAttendu 200 ; 30 tentatives ; intervalle 2 s ; délai 5 s

Contrôles préalables​

ContrôleTypeSignificationSévéritéComposants
memorymemory_mb {"min": 4096}au moins 4096 Mo de mémoireavertissementanalyzer
analyzer_port_freeport_free {"param": "analyzer_port"}port 5002 libre sur l'hôtebloquantanalyzer
anonymizer_port_freeport_free {"param": "anonymizer_port"}port 5003 libre sur l'hôtebloquantanonymizer

Désinstallation​

Chemins supprimés quand les données sont purgées : {{ paths.log }}.

Documentation amont​