Stage première année Michelin

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.

Contexte de mon stage

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

Tableau des Compétences - épreuve BTS SIO
Compétences
Projets
Gérer le patrimoine informatique

Répondre aux incidents et aux demandes d’assistance et d’évolution

Développer la présence en ligne de l’organisation

Travailler en mode projet

Mettre à disposition des utilisateurs un service informatique

Organiser son développement professionnel

Les langages et outils utilisés

DOCKER
LDAP
GITLAB
ANSIBLE-VAULT
PYTHON
STREAMLIT
Descriptions du projet

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.

Bilan de mon stage

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.