Mise en place d’une API de permissions centralisée pour sécuriser la gestion des accès aux ressources sensibles dans le secteur de la santé
Groupe pharmaceutique spécialisé dans les médicaments, les vaccins et les solutions de santé. Il mène des activités de recherche, de production et de distribution à l’échelle internationale.
Développeur fullstack Senior
Le contexte de la mission autour de la mise en place d’un système de gestion des permissions dans un environnement santé
Le consultant intervient au sein d’une équipe plateforme structurée en plusieurs sous-équipes. L’une est dédiée à la mise à disposition d’API pour les autres équipes, l’autre à la mise en place des environnements AWS et des outils nécessaires au déploiement.
Dans cet environnement, de nombreux projets manipulent des ressources sensibles, notamment des documents et données liés à des essais cliniques. L’accès à ces ressources doit être strictement contrôlé, avec des règles précises sur qui peut consulter, modifier ou déléguer des droits.
Jusqu’ici, la gestion des permissions reposait principalement sur un outil central, complété par des implémentations spécifiques développées dans chaque projet lorsque les besoins sortaient de son cadre. Cela entraînait une forte complexité opérationnelle, des délais importants liés à la gestion des accès et une hétérogénéité des pratiques.
Le projet consistait donc à concevoir une API de permissions centralisée, capable de servir de couche commune pour tous les projets afin de simplifier et fiabiliser la gestion des accès.
Les enjeux et défis liés à la mise en place d’une API de sécurité
Le premier enjeu était de construire une solution générique capable de couvrir des cas d’usage très variés. Chaque projet, notamment autour des essais cliniques, possède ses propres règles de gestion des accès, avec des niveaux de granularité et de délégation différents. Il fallait donc définir un modèle suffisamment flexible tout en restant cohérent.
Un autre point clé concernait la simplicité d’usage. Une première version de la solution, bien que fonctionnellement riche, s’est révélée trop complexe à comprendre pour les équipes. Il a fallu simplifier le modèle, retirer certaines fonctionnalités et recentrer la solution sur un socle plus lisible et plus facilement adoptable.
Les contraintes de fiabilité étaient particulièrement élevées. L’API étant au cœur de la gestion des accès à des ressources sensibles, une erreur pouvait entraîner l’ouverture d’un accès non autorisé. Le système devait donc garantir une disponibilité proche de 100%, avec des mécanismes de redondance, de déploiement multi-zones et multi-régions AWS pour assurer la continuité de service.
L’auditabilité était également un enjeu structurant. Il devait être possible de tracer précisément chaque décision, d’expliquer pourquoi un utilisateur a eu accès à une ressource donnée et de reconstituer l’historique des actions.
Enfin, le projet devait s’intégrer dans un environnement AWS complexe, avec une quinzaine de comptes et des niveaux de sécurité différents selon les contextes, certains environnements étant accessibles uniquement via des réseaux privés.
“Le but, c’est vraiment d’avoir quelque chose de central, quelque chose de simple à utiliser pour tout le monde et que chaque nouveau projet n’ait pas besoin de redévelopper sa propre solution. »
Les missions réalisées pour structurer la gestion des accès et des permissions
La mission se déroule depuis bientôt 1 an et couvre plusieurs périmètres :
Conception du modèle de données et des algorithmes
Définition du modèle de données et des algorithmes avec un focus fort sur la performance en lecture, les vérifications de permissions représentant environ 97% du trafic.
Développement d’une API de permissions centralisée
Mise en place d’une API capable de répondre à des requêtes de type “un utilisateur peut-il accéder à telle ressource”, sans connaissance du contenu de la ressource, uniquement via des identifiants.
Construction d’un modèle générique adaptable
Travail de fond pour définir un socle commun couvrant la majorité des besoins, tout en permettant des adaptations pour des cas spécifiques.
Travail avec les équipes clientes
Échanges réguliers avec les équipes pour comprendre leurs besoins, valider l’adéquation de la solution et adapter les fonctionnalités lorsque nécessaire.
Uniformisation des pratiques et des outils
Travail sur une trentaine de projets pour homogénéiser les bonnes pratiques et améliorer l’outillage des équipes.
Automatisation des processus techniques
Mise en place d’outils pour éviter les tâches manuelles répétitives, notamment autour de la gestion des tokens GitHub et de leur déploiement.