AWS Cloud

Fonctionnalités du Client AWS S3 (AWS CLI)

Fonctionnalités du Client AWS S3 (AWS CLI)

 

📄 Résumé introductif

⚙️ Prérequis techniques

✨ Fonctionnalités et Procédures Détaillées

Gestion des Buckets

Lister les Buckets (ls)

Créer un Bucket (mb)

Supprimer un Bucket (rb)

Gestion des Objets

Lister le contenu d’un Bucket (ls)

⬆️ Copier des fichiers vers S3 (cp)

⬇️ Copier des fichiers depuis S3 (cp)

🔄 Synchroniser des dossiers (sync)

🗑️ Supprimer des Objets (rm)

➡️ Déplacer des Objets (mv)

🔗 Générer une URL pré-signée (presign)

📖 Glossaire

👍 Bonnes Pratiques

📄 Résumé introductif

 

Voici une documentation technique sur les fonctionnalités principales du client AWS S3 via l’AWS CLI, destinée à notre équipe infrastructure.

 

Contexte : Amazon Simple Storage Service (S3) est un service de stockage d’objets offrant une scalabilité, une disponibilité des données, une sécurité et des performances de pointe. L’AWS Command Line Interface (CLI) est un outil unifié permettant de gérer les services AWS depuis la ligne de commande.

 

But : Ce document présente les commandes AWS CLI essentielles pour interagir avec AWS S3. Il est destiné à l’équipe infrastructure pour faciliter la gestion courante des buckets et des objets S3.

⚙️ Prérequis techniques

 

  • Credentials AWS configurées : Les informations d’identification AWS (Access Key ID, Secret Access Key, et éventuellement Default Region & Session Token) doivent être configurées via aws configure ou via des variables d’environnement/rôles IAM.

✨ Fonctionnalités et Procédures Détaillées

 

L’AWS CLI utilise la structure aws s3 <commande> ou aws s3api <commande> pour interagir avec S3. Les commandes s3 sont plus simples pour les opérations courantes sur les fichiers, tandis que s3api expose directement l’API S3 sous-jacente pour des opérations plus avancées. Nous nous concentrerons ici sur les commandes s3.

 

1. Gestion des Buckets

Lister les Buckets (ls)

Pour afficher tous les buckets S3 dans le compte et la région configurée :

 

aws s3 ls

 

Exemple de sortie :

 

2024-10-26 15:00:00 mon-premier-bucket-unique

2024-11-15 09:30:00 mon-autre-bucket-log

Créer un Bucket (mb)

Pour créer un nouveau bucket (le nom doit être unique globalement) :

 

aws s3 mb s3://nom-de-bucket-unique-globalement –region ma-region-aws

 

Note : Remplacez nom-de-bucket-unique-globalement par le nom souhaité et ma-region-aws (ex: eu-west-3) par la région AWS cible.

Supprimer un Bucket (rb)

Pour supprimer un bucket (il doit être vide) :

 

aws s3 rb s3://nom-du-bucket-a-supprimer –force

 

Attention : L’option –force supprime le bucket et tous ses objets. À utiliser avec précaution. Sans –force, le bucket doit être vidé manuellement au préalable.

2. Gestion des Objets

Lister le contenu d’un Bucket (ls)

Pour lister les objets et préfixes (dossiers) à la racine d’un bucket :

 

aws s3 ls s3://nom-du-bucket/

 

Pour lister le contenu d’un « dossier » (préfixe) spécifique :

 

aws s3 ls s3://nom-du-bucket/mon/prefixe/

 

Pour lister récursivement tous les objets :

 

aws s3 ls s3://nom-du-bucket/ –recursive

⬆️ Copier des fichiers vers S3 (cp)

Pour copier un fichier local vers S3 :

 

aws s3 cp mon-fichier-local.txt s3://nom-du-bucket/destination/mon-fichier-s3.txt

 

Pour copier un dossier local entier vers S3 (récursivement) :

 

aws s3 cp mon-dossier-local/ s3://nom-du-bucket/destination/ –recursive

⬇️ Copier des fichiers depuis S3 (cp)

Pour copier un objet S3 vers le local :

 

aws s3 cp s3://nom-du-bucket/chemin/vers/mon-objet.log fichier-local.log

 

Pour copier un « dossier » S3 entier vers le local (récursivement) :

 

aws s3 cp s3://nom-du-bucket/chemin/vers/dossier/ ./destination-locale/ –recursive

🔄 Synchroniser des dossiers (sync)

Synchronise le contenu entre un dossier local et un préfixe S3. Copie uniquement les fichiers nouveaux ou modifiés. Pour synchroniser un dossier local vers S3 :

 

aws s3 sync mon-dossier-local/ s3://nom-du-bucket/destination/

 

Pour synchroniser un préfixe S3 vers un dossier local :

 

aws s3 sync s3://nom-du-bucket/source/ ./mon-dossier-local/

 

Option utile : –delete supprime les fichiers dans la destination qui n’existent pas dans la source. À utiliser avec prudence.

🗑️ Supprimer des Objets (rm)

Pour supprimer un objet spécifique :

 

aws s3 rm s3://nom-du-bucket/chemin/vers/objet-a-supprimer.txt

 

Pour supprimer tous les objets sous un préfixe (récursivement) :

 

aws s3 rm s3://nom-du-bucket/chemin/vers/dossier/ –recursive

➡️ Déplacer des Objets (mv)

Déplace un fichier. Équivalent à une copie suivie d’une suppression. Pour déplacer un objet S3 vers un autre emplacement S3 :

 

aws s3 mv s3://nom-du-bucket/source/objet.txt s3://nom-du-bucket/destination/objet.txt

 

Pour déplacer un fichier local vers S3 :

 

aws s3 mv fichier-local.txt s3://nom-du-bucket/destination/

🔗 Générer une URL pré-signée (presign)

Crée une URL temporaire pour partager un objet privé sans nécessiter de credentials AWS.

 

aws s3 presign s3://nom-du-bucket/chemin/vers/objet-prive.zip –expires-in 3600

 

Note : –expires-in définit la durée de validité en secondes (ici, 1 heure).

📖 Glossaire

  • S3 (Simple Storage Service) : Service de stockage d’objets d’AWS.
  • Bucket : Conteneur pour les objets stockés dans S3. Les noms de buckets sont uniques globalement.
  • Objet : Un fichier stocké dans S3 (ex: document, image, vidéo). Comprend les données elles-mêmes et les métadonnées.
  • Préfixe : Similaire à un nom de dossier, utilisé pour organiser les objets dans un bucket. S3 n’a pas de concept de dossier natif, mais utilise les préfixes et délimiteurs (souvent /) pour simuler une hiérarchie.
  • AWS CLI : Interface en ligne de commande pour interagir avec les services AWS.
  • Région : Centre de données géographique où les ressources AWS sont hébergées (ex: eu-west-3 pour Paris).
  • URL pré-signée : Une URL générée qui donne un accès temporaire à un objet S3 spécifique.

👍 Bonnes Pratiques

  • Noms de Buckets : Choisissez des noms descriptifs, conformes aux règles DNS, et uniques globalement.
  • Permissions : Gérez l’accès aux buckets et objets via les politiques de bucket IAM et les ACLs. Privilégiez le principe de moindre privilège.
  • Coûts : Soyez conscient des coûts liés au stockage (par Go/mois), aux requêtes (GET, PUT, etc.) et au transfert de données (surtout sortant d’AWS).
  • Versioning : Activez la gestion des versions sur les buckets critiques pour pouvoir récupérer des objets supprimés ou modifiés accidentellement.
  • Commandes sync et rm –recursive : Utilisez ces commandes avec prudence, surtout avec l’option –delete pour sync. Testez avec –dryrun pour voir ce qui serait fait sans l’exécuter réellement.

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.