Cours > Module > Chapitre

Lab : Explorer S3 Object Lock pour la Protection des Données

Objectif

L’objectif de ce lab est de comprendre et tester S3 Object Lock, une fonctionnalité qui permet d’empêcher la suppression ou la modification des objets S3 pendant une période définie.

Nous allons :
✅ Créer un bucket avec Object Lock activé.
✅ Activer la protection en mode Governance et Compliance.
✅ Tester la protection en tentant de modifier ou supprimer un objet.

Architecture du Lab

📌 Amazon S3 Object Lock permet deux niveaux de protection :

  • Governance Mode : Protège les objets mais permet aux utilisateurs ayant les permissions nécessaires (s3:BypassGovernanceRetention) de les modifier ou supprimer.
  • Compliance Mode : Empêche toute modification ou suppression, même pour l’administrateur AWS, jusqu’à expiration de la période de rétention.

Nous allons tester ces deux modes sur un bucket S3 privé.

Étape 1 : Créer un Bucket S3 avec Object Lock

📌 Via la Console AWS :

  1. Aller dans S3 > Créer un bucket.
  2. Donner un nom unique (ex: mon-bucket-object-lock).
  3. Cocher Permanently enable Object Lock.
  4. Choisir une région AWS (ex: us-east-1).
  5. Garder l’accès public bloqué.
  6. Cliquer sur Créer un bucket.

📌 Via AWS CLI :

aws s3api create-bucket \

    --bucket mon-bucket-object-lock \

    --region us-east-1 \

    --object-lock-enabled-for-bucket

Vérifier la configuration :

aws s3api get-bucket-object-lock-configuration --bucket mon-bucket-object-lock
				
					aws s3api create-bucket --bucket mon-lab-s3-lifecycle --region us-east-1 --create-bucket-configuration LocationConstraint=us-east-1
				
			

Étape 2 : Activer Object Lock sur un Objet

📌 Uploader un fichier dans le bucket :

echo "Données sensibles" > fichier-important.txt
aws s3 cp fichier-important.txt s3://mon-bucket-object-lock/

📌 Activer Object Lock en mode Governance avec une rétention de 1 minute :

aws s3api put-object-retention \

    --bucket mon-bucket-object-lock \

    --key fichier-important.txt \

    --retention '{"Mode": "GOVERNANCE", "RetainUntilDate": "'$(date -d "+1 minute" --utc +%Y-%m-%dT%H:%M:%SZ)'"}'

Vérifier la rétention :

aws s3api get-object-retention --bucket mon-bucket-object-lock --key fichier-important.txt

Étape 3 : Tester la Protection en Governance Mode

📌 Essayer de supprimer l’objet (cela doit échouer) :

aws s3 rm s3://mon-bucket-object-lock/fichier-important.txt

🔹 Message d’erreur attendu : “Access Denied”

📌 Contourner la restriction avec l’option bypass-governance-retention (si on a la permission) :

aws s3api delete-object \

    --bucket mon-bucket-object-lock \

    --key fichier-important.txt \

    --bypass-governance-retention

✅ L’objet est supprimé car nous avons contourné la rétention en mode Governance.

Étape 4 : Tester la Protection en Compliance Mode

📌 Re-upload et activer Object Lock en mode Compliance pour 2 minutes :

aws s3 cp fichier-important.txt s3://mon-bucket-object-lock/
aws s3api put-object-retention \

    --bucket mon-bucket-object-lock \

    --key fichier-important.txt \

    --retention '{"Mode": "COMPLIANCE", "RetainUntilDate": "'$(date -d "+2 minutes" --utc +%Y-%m-%dT%H:%M:%SZ)'"}'

📌 Essayer de supprimer l’objet (cela doit échouer même en admin) :

aws s3 rm s3://mon-bucket-object-lock/fichier-important.txt

🔹 Message d’erreur attendu : “Access Denied”

✅ Même un utilisateur avec tous les droits ne peut pas modifier ou supprimer l’objet avant l’expiration.

Étape 5 : Nettoyer les ressources

🚨 Attendre l’expiration de la rétention avant d’essayer de supprimer l’objet et le bucket.

📌 Vérifier la rétention restante :

aws s3api get-object-retention --bucket mon-bucket-object-lock --key fichier-important.txt

📌 Supprimer l’objet (après expiration) :

aws s3 rm s3://mon-bucket-object-lock/fichier-important.txt

📌 Supprimer le bucket :

aws s3 rb s3://mon-bucket-object-lock --force

Conclusion

✔️ Nous avons appris à activer et tester S3 Object Lock.
✔️ Nous avons utilisé les modes Governance et Compliance pour protéger nos données.
✔️ Nous avons vu que Compliance Mode empêche même un administrateur de modifier ou supprimer un objet avant expiration.

💡 Cas d’usage : Protection contre la suppression accidentelle ou malveillante, archivage réglementaire (ex : secteur bancaire, santé). 🚀

×

Panier