🛡️ Cours 4 – Chiffrement et journalisation dans Amazon S3
🎯 Objectifs du cours
- Comprendre les mécanismes de chiffrement des données au repos et en transit dans S3.
- Savoir activer la journalisation pour assurer la traçabilité et la conformité.
- Maîtriser les options de SSE, KMS, CSE, TLS, CloudTrail et CloudWatch.
🔒 1. Le chiffrement : protéger les données à chaque instant
Le chiffrement, ou encryption, est un pilier essentiel de la sécurité des données.
AWS propose plusieurs approches selon le niveau de contrôle souhaité :
Server Side Encryption (SSE), Client Side Encryption (CSE) et Transport Layer Security (TLS).
🧱 Server Side Encryption (SSE)
Le chiffrement côté serveur protège les données au repos.
Lorsqu’un objet est téléversé, Amazon S3 le chiffre automatiquement avant de le stocker.
Lorsqu’il est lu, S3 le déchiffre pour vous sans intervention manuelle.
Deux variantes principales existent :
- SSE-S3 : AWS gère les clés de chiffrement pour vous.
- SSE-KMS : les clés sont gérées par le service AWS Key Management Service, offrant un contrôle plus fin et une traçabilité complète via CloudTrail.
➡️ L’activation se fait dans l’onglet Properties du bucket, section Default encryption.
🔑 Client Side Encryption (CSE)
Le chiffrement côté client se fait avant le transfert des données vers S3.
Le client chiffre et déchiffre localement les fichiers, en conservant le contrôle des clés.
Deux méthodes possibles :
- Utilisation de clés locales gérées par le client.
- Utilisation de clés AWS KMS pour chiffrer côté application avant upload.
C’est la méthode la plus sécurisée, souvent utilisée dans les environnements à forte contrainte réglementaire.
🌐 Chiffrement en transit (TLS / HTTPS)
Pour protéger les données pendant leur transfert, S3 utilise le protocole TLS (Transport Layer Security).
Toutes les communications entre le client et S3 sont automatiquement sécurisées via HTTPS.
Cela empêche toute interception des données en transit.
✅ Bonnes pratiques :
- Toujours utiliser HTTPS.
- Interdire les connexions HTTP non sécurisées.
📜 2. Journalisation : suivre et auditer les activités
La journalisation des accès est une composante essentielle de la gouvernance et de la conformité.
Elle permet de savoir qui accède à vos données, quand et comment.
🪣 Server Access Logging
La journalisation des accès S3 (Server Access Logging) enregistre chaque requête effectuée sur un bucket :
- L’identité du demandeur et son IP.
- Le type d’opération (GET, PUT, DELETE, etc.).
- L’horodatage exact.
- Le code de statut de la réponse.
Pour l’activer, rendez-vous dans les propriétés du bucket et configurez :
- Le bucket cible où seront stockés les logs.
- Un préfixe optionnel pour organiser les fichiers (par date ou source).
⚠️ Attention : un grand volume d’activité génère beaucoup de logs et peut augmenter les coûts de stockage.
🔍 Exploitation des logs avec CloudTrail et CloudWatch
Les logs S3 ne sont qu’une partie de la visibilité AWS.
- AWS CloudTrail enregistre les appels d’API : il répond à la question “Qui a fait quoi sur mes ressources ?”.
- AWS CloudWatch permet d’analyser les métriques et de détecter les anomalies d’accès en temps réel.
💡 Exemple : en combinant CloudTrail + S3 Access Logs + CloudWatch, vous pouvez :
- Détecter une suppression non autorisée.
- Surveiller l’utilisation d’une clé KMS.
- Créer une alerte lorsqu’un bucket devient public.
🧩 3. Bonnes pratiques de sécurité S3
- Activer le chiffrement par défaut (SSE-KMS de préférence).
- Forcer HTTPS sur tous les transferts.
- Limiter les accès publics avec Block Public Access.
- Activer la journalisation sur les buckets critiques.
- Archiver et analyser les logs régulièrement via CloudWatch Logs ou AWS Athena.
- Mettre en place des politiques IAM minimales selon le principe du moindre privilège.
📈 4. Résumé visuel (pour affichage en cours)
| Type de sécurité | Portée | Géré par | Description rapide |
|---|---|---|---|
| SSE-S3 | Données au repos | AWS | Chiffrement automatique par S3 |
| SSE-KMS | Données au repos | Client + KMS | Gestion fine et traçabilité |
| CSE | Données locales | Client | Chiffrement avant transfert |
| TLS/HTTPS | Données en transit | Automatique | Communication sécurisée |
| S3 Access Logs | Journalisation | Client | Suivi des requêtes S3 |
| CloudTrail | Journalisation | AWS | Traçabilité des API calls |
💬 Conclusion
Le chiffrement protège la confidentialité des données, la journalisation garantit leur traçabilité.
En les combinant, vous obtenez une sécurité complète, de la création d’un objet jusqu’à son accès.
🧠 Règle d’or : Chiffrez, tracez, auditez.
C’est la base de toute architecture sécurisée sur AWS.