Développement d’une application web interne en Python avec Streamlit et Ansible-Vault pour sécuriser le chiffrement des données via une clé de chiffrement.
L'objectif principal de mon stage chez Michelin était de développer une application web en utilisant Python, Streamlit, et Ansible-Vault. Cette application vise à gérer le chiffrement des données de manière sécurisée en interne. Plus spécifiquement, l'application permettra de chiffrer des données en utilisant une clé de chiffrement stockée dans un fichier secret.toml. En utilisant l'algorithme SHA-256
Répondre aux incidents et aux demandes d’assistance et d’évolution
Développer la présence en ligne de l’organisation
Mettre à disposition des utilisateurs un service informatique
Les langages et outils utilisés
Objectif de l’application
L’application web de chiffrement a été développée dans le
cadre de mon stage chez Michelin. Elle permet aux
utilisateurs d’assurer la protection des données sensibles
en appliquant un algorithme de chiffrement avant leur
stockage ou leur transmission.
Fonctionnalités principales
✅ Authentification sécurisée via LDAP
- L’accès à l’application est restreint aux employés
Michelin via une connexion LDAP.
- Chaque tentative de connexion est enregistrée dans les
logs (réussite, échec, erreurs de saisie).
✅ Sélection du projet et gestion des clés de
chiffrement
- Une fois connecté, l’utilisateur choisit un projet via
une liste déroulante.
- Chaque projet est associé à une clé de chiffrement
unique, garantissant un chiffrement distinct selon le
contexte.
- La sélection du projet est enregistrée dans les logs
pour assurer la traçabilité.
✅ Chiffrement des données saisies
- L’utilisateur peut entrer du texte dans un champ dédié
et lancer le chiffrement.
- Une fois chiffré, le texte est affiché dans une zone
spécifique pour être copié ou utilisé.
✅ Chiffrement à partir d’un fichier .txt
- L’application permet de charger un fichier .txt pour
chiffrer son contenu.
- Après sélection du fichier, son contenu est
automatiquement chiffré et affiché à l’écran.
✅ Journalisation des activités (logging)
- Toutes les actions effectuées (connexion, sélection du
projet, chiffrement) sont enregistrées dans les logs.
- Cela permet d’assurer un suivi des opérations et
d’améliorer la sécurité.
Intérêt et impact
- Sécurisation des données sensibles : empêche la lecture
des informations en clair.
- Traçabilité : grâce aux logs, les opérations sont
suivies pour garantir un usage conforme.
- Facilité d’utilisation : interface intuitive avec
saisie directe ou import de fichier .txt.
- Cette application renforce ainsi la politique de sécurité des données chez Michelin en offrant une solution simple et efficace pour le chiffrement des informations.
Ce stage m’a permis de renforcer mes compétences techniques
tout en découvrant des outils professionnels utilisés en
entreprise, dans un environnement orienté sécurité et
automatisation. J’ai également eu l’opportunité d’évoluer dans
une équipe agile, avec des échanges réguliers et une gestion
rigoureuse des projets.
🧠 Compétences techniques acquises
- Découverte du framework Streamlit (Python) : création d’une
application web interactive en Python.
- Implémentation du hachage SHA-256 : mise en place d’un
système de hachage pour sécuriser les entrées utilisateur.
- Apprentissage d’Ansible Vault pour la gestion des secrets : sécurisation des
clés de chiffrement via des fichiers secret.toml.
- Authentification LDAP : intégration de l’identification via
le réseau interne Michelin.
- Journalisation des actions (logs) : suivi complet des
opérations pour assurer la traçabilité.
- Tests et déploiement : validation du fonctionnement de
l’application dans un environnement d’entreprise sécurisé.
🧩 Compétences en gestion de projet
Suivi agile avec l’équipe DOTI/BS/RD
- J’ai participé à des réunions régulières avec mon tuteur et
l’équipe projet. J’ai appris à rendre compte de mon
avancement, à ajuster mes priorités selon les retours, et à
documenter clairement mes travaux.
Documentation du code et des procédures
- J’ai produit une documentation technique claire pour
faciliter la reprise du projet : architecture du code,
utilisation des modules, étapes de déploiement et fichiers de
configuration.
Tests utilisateurs
- J’ai réalisé des tests d’intégration pour valider le bon
fonctionnement de l’application dans l’environnement Michelin,
notamment en m’assurant de la compatibilité avec le réseau,
les droits d’accès et les fichiers de configuration.
🌍 Découverte de nouveaux outils et langages
- Streamlit : Framework Python pour créer rapidement des
interfaces web.
- Ansible / Ansible Vault : Outil d’automatisation et de
gestion des secrets.
- SHA-256 & cryptographie : Implémentation d’algorithmes de
hachage.
- LDAP : Authentification sécurisée sur un annuaire
d’entreprise.
- Python avancé : Gestion de fichiers, de logs, d’erreurs,
interface graphique.
- Utilisation d’un environnement Linux professionnel :
Configuration, exécution de scripts et manipulation de
fichiers sensibles en ligne de commande.