Cours > Module > Chapitre

Lab : Génération et Utilisation des URL Pré-signées S3

[Video] Génération et Utilisation des URL Pré-signées S3

Objectif

L’objectif de ce lab est d’apprendre à générer et utiliser des URL pré-signées S3 pour accéder temporairement à un objet privé stocké dans un bucket S3, sans modifier les permissions du bucket.

Nous allons :
✅ Créer un bucket S3 privé.
✅ Envoyer un fichier dans le bucket.
✅ Générer une URL pré-signée avec AWS CLI et Python (Boto3).
✅ Tester l’accès au fichier via l’URL générée.

Architecture du Lab

Nous allons créer un bucket S3 privé et y stocker un fichier. Ensuite, nous allons générer une URL pré-signée qui permettra à un utilisateur d’accéder temporairement à ce fichier sans avoir besoin d’un accès IAM direct.

📌 Exemple d’URL pré-signée générée :

https://mon-bucket-s3.s3.amazonaws.com/monfichier.txt

⏳ L’URL ne sera valide que pour une durée limitée (ex: 10 minutes).

Étape 1 : Créer un Bucket S3 Privé

📌 Via la Console AWS :

  1. Aller dans S3 > Créer un bucket.
  2. Donner un nom unique (ex: mon-bucket-presigned-url-XYZ). Choisissez un nombre aléatoire pour XYZ.
  3. Choisir une région AWS (ex: eu-west-1).
  4. Garder les permissions par défautBloquer l’accès public.
  5. Cliquer sur Créer un bucket.

📌 Via AWS CLI :

aws s3api create-bucket --bucket mon-bucket-presigned-url-362 --region eu-west-1 --create-bucket-configuration LocationConstraint=eu-west-1

Vérifier que le bucket est bien créé :

aws s3 ls

Étape 2 : Ajouter un Fichier dans le Bucket

Ajoutons un fichier de test :

 

echo “LeCloudFacile.com est une EdTech Cloud & DevOps” > fichier-prive.txt

echo “LeCloudFacile.com est une EdTech” > fichier-prive.txt

aws s3 cp fichier-prive.txt s3://mon-bucket-presigned-url-XYZ/

Vérifier l’upload :

aws s3 ls s3://mon-bucket-presigned-url-XYZ/

Étape 3 : Générer une URL Pré-signée avec AWS CLI

📌 Générons une URL pré-signée valable 2 minutes (120 secondes) :

aws s3 presign s3://mon-bucket-presigned-url-XYZ/fichier-prive.txt --expires-in 120

🔹 Copie et teste l’URL dans ton navigateur.
🔹 Tu devrais voir le contenu du fichier.

Étape 4 : Générer une URL Pré-signée avec Python (Boto3)

📌 Installe Boto3 si ce n’est pas fait :

pip install boto3

📌 Script Python pour générer une URL pré-signée :

				
					import boto3

# Configurer le client S3
s3_client = boto3.client("s3")

# Paramètres
bucket_name = "mon-bucket-presigned-url"
object_name = "fichier-prive.txt"
expiration = 600  # 10 minutes

# Génération de l'URL pré-signée
url_presignee = s3_client.generate_presigned_url(
    "get_object",
    Params={"Bucket": bucket_name, "Key": object_name},
    ExpiresIn=expiration,
)

print("URL Pré-signée :", url_presignee)

				
			

📌 Exécute le script et copie l’URL générée dans ton navigateur.

Étape 5 : Tester et Expirer l’URL

  1. Tester l’URL dans un navigateur pour voir si elle fonctionne.

Attendre 10 minutes et essayer à nouveau → l’URL doit être expirée.

Étape 6 : Nettoyage des Ressources

Supprime le fichier et le bucket :

aws s3 rm s3://mon-bucket-presigned-url/fichier-prive.txt
aws s3 rb s3://mon-bucket-presigned-url --force

Conclusion

✔️ Nous avons appris à générer et utiliser des URL pré-signées pour un accès temporaire sécurisé aux objets S3.
✔️ Nous avons utilisé AWS CLI et Boto3 (Python) pour automatiser ce processus.
✔️ Nous avons testé l’expiration automatique de l’URL.

💡 Bonus : Essaie de générer une URL pour uploader un fichier avec put_object ! 🚀

×

Panier