Confrontés aux défis croissants de la conformité réglementaire et de la protection des données chez nos clients, nous avons développé une solution d'anonymisation robuste utilisant les services AWS. Dans cet article, je partage l'approche qui combine la puissance des AWS Step Functions avec d'autres services AWS pour créer un pipeline d'anonymisation de données entièrement automatisé pour les environnements RDS.
La problématique de l’anonymisation des données
L’anonymisation des données est devenue incontournable dans un contexte où la protection des informations personnelles est encadrée par des réglementations strictes comme le RGPD. Les entreprises doivent pouvoir créer des environnements de test ou d’analyse qui reflètent fidèlement les données de production, mais sans exposer d’informations sensibles.
Les défis principaux incluent :
- Identifier automatiquement les données sensibles (PII)
- Anonymiser ces données tout en préservant leur utilité pour les tests et analyses
- Automatiser le processus pour le rendre reproductible et fiable
- Minimiser l’impact sur les performances des systèmes de production
Architecture de la solution
La solution que nous avons conçue utilise AWS Step Functions comme orchestrateur central, coordonnant plusieurs services AWS pour créer un workflow d’anonymisation complet et automatisé.
Vue d’ensemble du processus
Diagramme Mermaid.ink, pour plus de lisibilité, n’hésitez pas à cliquer sur l’image.
Les composants clés de cette solution incluent :
- Capture des données sources : création d’un snapshot de la base de données source ou utilisation d’un snapshot existant
- Restauration dans un environnement temporaire : restauration du snapshot dans une instance RDS temporaire
- Analyse des données : identification automatique des données sensibles (PII)
- Anonymisation : transformation des données sensibles tout en préservant les relations et la structure
- Distribution : copie des données anonymisées vers les environnements cibles
- Nettoyage : suppression des ressources temporaires
Les composants techniques clés
1. Capture de données source
Cette étape initiale offre la flexibilité d’utiliser un snapshot existant ou d’en créer un nouveau, ce qui est particulièrement utile pour les bases de données volumineuses où la création d’un snapshot peut prendre du temps.
Autre avantage de taille : on ne perturbe en aucun cas la base de donnée source, qui est souvent une base de production. Après cette étape, nous avons un “jumeau” de la base, sur laquelle nous pouvons travailler.
2. Environnement temporaire isolé
L’utilisation d’un identifiant unique (UUID) pour l’instance temporaire permet d’exécuter plusieurs workflows d’anonymisation en parallèle sans conflits. De plus, l’instance est configurée avec des groupes de sécurité spécifiques pour l’isoler du reste de l’environnement.
Ce système permet une garantie de sécurité supplémentaire, car la donnée est anonymisée “sur place”, avant de quitter l’environnement de production.
3. Infrastructure de réplication AWS DMS
L’approche innovante utilise AWS Database Migration Service (DMS) pour effectuer les transformations d’anonymisation. AWS DMS offre non seulement des capacités de réplication robustes, mais aussi la possibilité d’appliquer des transformations pendant la réplication, ce qui est exploité pour l’anonymisation.
4. Analyse et détection automatique des PII
Une fonction Lambda analyse automatiquement la structure et le contenu de la base de données pour identifier les informations personnelles (RIB, adresses email, numéro de téléphone, etc). Les résultats de cette analyse sont stockés dans DynamoDB pour être utilisés lors de la phase d’anonymisation.
Le coeur du problème réside dans cette routine : les systèmes actuels sont trop légers pour identifier précisément toutes les données personnelles. En effet, notre approche permet d’identifier des colones dans lequelles une donnée personnelle est “cachée” au milieu d’un texte par exemple (ce que nous appelons within-text
, par opposition à une colonne dédiée à une donnée personnelle).
5. Génération dynamique de mappages de transformations
Cette étape cruciale utilise les résultats de la phase d’analyse pour générer automatiquement les règles de transformation DMS. Ces règles spécifient comment chaque type de donnée sensible doit être anonymisé.
6. Distribution multi-cibles
Une fois les données anonymisées, elles peuvent être distribuées à plusieurs environnements cibles en parallèle, ce qui optimise le temps global du processus.
Le système développé permet une réplication sur de multiples environnements AWS, en multi-compte.
7. Nettoyage des ressources
Cette phase finale supprime toutes les ressources temporaires créées pendant le processus, garantissant ainsi une gestion efficace des coûts.
Avantages techniques de l’approche
1. Isolation complète
Le processus s’exécute dans un environnement temporaire et isolé, éliminant tout risque d’impact sur les systèmes de production. Toutes les ressources créées sont automatiquement nettoyées à la fin du processus.
2. Résilience et reprise automatique
Le workflow intègre plusieurs mécanismes de reprise avec des stratégies de retry avec backoff exponentiel et jitter. Ces stratégies permettent au workflow de gérer les erreurs transitoires et de reprendre automatiquement, augmentant ainsi la fiabilité globale du processus.
3. Parallélisation intelligente
La solution utilise la parallélisation pour optimiser les performances, avec des limites de concurrence configurables pour éviter de surcharger les ressources.
4. Extensibilité via des scripts personnalisés
Le workflow permet l’exécution de scripts SQL personnalisés avant et après l’anonymisation, offrant ainsi une grande flexibilité pour gérer des cas spécifiques.
5. Surveillance et rapports
Des notifications SNS détaillées sont envoyées à chaque étape clé du processus, permettant une surveillance en temps réel et facilitant le diagnostic en cas d’erreur.
Considérations pour l’implémentation
Sécurité et chiffrement
La solution utilise AWS Systems Manager Parameter Store pour gérer les informations d’identification de manière sécurisée. L’utilisation de WithDecryption: true
garantit que les informations sensibles sont déchiffrées uniquement au moment de leur utilisation.
Gestion des métadonnées de configuration
La solution utilise DynamoDB pour stocker et récupérer les configurations d’anonymisation. Cette approche offre une grande flexibilité pour ajuster les configurations sans modifier le workflow lui-même.
Sauvegarde et restauration de tables spécifiques
Pour certaines tables qui ne doivent pas être anonymisées (comme les tables de référence), la solution offre un mécanisme de sauvegarde et restauration. Cette approche garantit que certaines tables critiques conservent leurs données originales intactes.
Conclusion
Cette solution d’anonymisation automatisée basée sur AWS Step Functions offre une approche robuste, évolutive et sécurisée pour gérer les défis modernes de l’anonymisation des données dans les environnements RDS.
Les principaux avantages incluent :
- Une automatisation complète du processus d’anonymisation
- Une isolation totale des systèmes de production
- Une haute résilience avec des mécanismes de reprise automatique
- Une flexibilité pour s’adapter à différents besoins d’anonymisation
- Une traçabilité complète via des notifications détaillées
En exploitant la puissance des services managés AWS comme Step Functions, DMS, Lambda et DynamoDB, cette solution permet aux organisations de respecter leurs obligations réglementaires tout en fournissant des données de qualité pour les environnements de test et d’analyse.
Le système actuel permet aujourd’hui d’anonymiser des milions (environ 60M) de lignes toutes les nuits pour une cinquantaines de bases de données, sur deux à quatre environnements chez l’un de nos clients.