Installation d'AWS CLI v2
Qu'est-ce qu'AWS CLI ?
AWS CLI (Command Line Interface) est l'outil en ligne de commande officiel d'Amazon pour interagir avec les services AWS. Il permet d'exécuter des commandes pour gérer vos ressources AWS depuis un terminal.
┌─────────────────────────────────────────────────────────────┐
│ AWS CLI │
├─────────────────────────────────────────────────────────────┤
│ │
│ Terminal ──► aws <service> <action> <options> │
│ │ │ │ │
│ │ │ └── Paramètres │
│ │ └── Commande (create, list...) │
│ └── Service AWS (ec2, s3, lambda...) │
│ │
│ Exemples : │
│ $ aws s3 ls # Lister les buckets S3 │
│ $ aws ec2 describe-instances # Lister les instances EC2 │
│ $ aws lambda list-functions # Lister les fonctions │
│ │
└─────────────────────────────────────────────────────────────┘
Prérequis
Avant d'installer AWS CLI, assurez-vous d'avoir :
- Droits administrateur sur votre machine
- Connexion Internet
- Terminal/PowerShell fonctionnel
Installation sur Windows
Méthode 1 : Installateur MSI (Recommandée)
Étape 1 : Télécharger l'installateur
Téléchargez AWS CLI v2 depuis le site officiel :
Étape 2 : Exécuter l'installateur
- Double-cliquez sur le fichier
AWSCLIV2.msi - Suivez l'assistant d'installation
- Acceptez les conditions d'utilisation
- Cliquez sur "Install"
- Attendez la fin de l'installation
Étape 3 : Vérifier l'installation
Ouvrez un nouveau PowerShell et exécutez :
aws --version
Résultat attendu :
aws-cli/2.x.x Python/3.x.x Windows/10 exe/AMD64 prompt/off
Méthode 2 : Via PowerShell (Alternative)
# Télécharger et installer
msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi /quiet
# Vérifier (nouveau terminal)
aws --version
Installation sur macOS
Méthode 1 : Package officiel (Recommandée)
# Télécharger le package
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
# Installer
sudo installer -pkg AWSCLIV2.pkg -target /
# Vérifier
aws --version
Méthode 2 : Via Homebrew
# Installer via Homebrew
brew install awscli
# Vérifier
aws --version
Installation sur Linux
Méthode universelle (toutes distributions)
# Télécharger
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
# Décompresser
unzip awscliv2.zip
# Installer
sudo ./aws/install
# Vérifier
aws --version
# Nettoyer
rm -rf aws awscliv2.zip
Ubuntu/Debian
# Installer les dépendances
sudo apt update
sudo apt install -y unzip curl
# Puis suivre la méthode universelle ci-dessus
Configuration d'AWS CLI
Configuration pour LocalStack
Puisque nous utilisons LocalStack (émulateur AWS local), nous allons configurer AWS CLI pour pointer vers LocalStack au lieu d'AWS réel.
Étape 1 : Créer un profil LocalStack
aws configure --profile localstack
Entrez les valeurs suivantes :
AWS Access Key ID [None]: test
AWS Secret Access Key [None]: test
Default region name [None]: us-east-1
Default output format [None]: json
LocalStack n'a pas besoin de vraies credentials. Les valeurs "test" fonctionnent parfaitement.
Étape 2 : Créer un alias (optionnel mais recommandé)
Pour éviter de taper --endpoint-url à chaque fois :
Windows PowerShell :
# Ajouter au profil PowerShell
notepad $PROFILE
# Ajouter cette ligne :
function awslocal { aws --endpoint-url=http://localhost:4566 --profile localstack $args }
macOS/Linux :
# Ajouter au ~/.bashrc ou ~/.zshrc
echo 'alias awslocal="aws --endpoint-url=http://localhost:4566 --profile localstack"' >> ~/.bashrc
source ~/.bashrc
Vérification de la Configuration
# Voir la configuration
aws configure list --profile localstack
Résultat attendu :
Name Value Type Location
---- ----- ---- --------
profile localstack manual --profile
access_key ****************test shared-credentials-file
secret_key ****************test shared-credentials-file
region us-east-1 config-file ~/.aws/config
Structure des Fichiers de Configuration
AWS CLI stocke sa configuration dans deux fichiers :
~/.aws/
├── config # Paramètres généraux (région, output)
└── credentials # Clés d'accès (access key, secret key)
Fichier ~/.aws/config
[default]
region = us-east-1
output = json
[profile localstack]
region = us-east-1
output = json
Fichier ~/.aws/credentials
[default]
aws_access_key_id = YOUR_ACCESS_KEY
aws_secret_access_key = YOUR_SECRET_KEY
[localstack]
aws_access_key_id = test
aws_secret_access_key = test
Commandes AWS CLI de Base
Structure d'une commande
aws <service> <action> [--options]
Commandes utiles
| Commande | Description |
|---|---|
aws --version | Version d'AWS CLI |
aws help | Aide générale |
aws <service> help | Aide pour un service |
aws configure list | Afficher la configuration |
aws sts get-caller-identity | Vérifier l'identité |
Exemples par service
S3 (Stockage) :
aws s3 ls # Lister les buckets
aws s3 mb s3://mon-bucket # Créer un bucket
aws s3 cp fichier.txt s3://bucket/ # Copier un fichier
EC2 (Compute) :
aws ec2 describe-instances # Lister les instances
aws ec2 describe-vpcs # Lister les VPCs
aws ec2 describe-security-groups # Lister les Security Groups
Lambda (Serverless) :
aws lambda list-functions # Lister les fonctions
aws lambda invoke --function-name X out.txt # Invoquer
Options Globales Importantes
| Option | Description |
|---|---|
--profile <name> | Utiliser un profil spécifique |
--region <region> | Spécifier la région |
--output <format> | Format de sortie (json, text, table) |
--endpoint-url <url> | URL personnalisée (pour LocalStack) |
--query <jmespath> | Filtrer la sortie JSON |
Exemples avec options
# Utiliser le profil localstack
aws s3 ls --profile localstack
# Changer la région
aws ec2 describe-instances --region eu-west-1
# Sortie en tableau
aws ec2 describe-instances --output table
# Filtrer avec JMESPath
aws ec2 describe-instances --query 'Reservations[].Instances[].InstanceId'
Test de l'Installation
Sans LocalStack (vérification basique)
# Vérifier la version
aws --version
# Vérifier la configuration
aws configure list --profile localstack
Avec LocalStack (après installation de LocalStack)
# Démarrer LocalStack d'abord (voir section suivante)
# Tester S3
aws --endpoint-url=http://localhost:4566 s3 ls --profile localstack
# Ou avec l'alias
awslocal s3 ls
Dépannage
Problème : "aws command not found"
Windows :
- Fermer et rouvrir PowerShell
- Vérifier le PATH :
$env:PATH - Réinstaller AWS CLI
macOS/Linux :
# Vérifier l'emplacement
which aws
# Si vide, ajouter au PATH
export PATH="/usr/local/bin:$PATH"
Problème : "Unable to locate credentials"
# Vérifier la configuration
aws configure list
# Si vide, reconfigurer
aws configure --profile localstack
Problème : "Connection refused"
LocalStack n'est probablement pas démarré. Voir la section suivante.
Capture d'Écran Attendue
Après une installation réussie, vous devriez voir :
PS C:\Users\VotreNom> aws --version
aws-cli/2.15.0 Python/3.11.6 Windows/10 exe/AMD64 prompt/off
PS C:\Users\VotreNom> aws configure list --profile localstack
Name Value Type Location
---- ----- ---- --------
profile localstack manual --profile
access_key ****************test shared-credentials-file
secret_key ****************test shared-credentials-file
region us-east-1 config-file ~/.aws/config
Checklist de Validation
- AWS CLI v2 installé (
aws --versionfonctionne) - Profil "localstack" configuré
- Fichiers ~/.aws/config et ~/.aws/credentials créés
- Alias
awslocalcréé (optionnel)
Reference Rapide des Commandes AWS CLI
Syntaxe Generale
aws [service] [operation] [parametres] [options]
Exemple :
aws iam get-policy --policy-arn arn:aws:iam::123456789:policy/MyPolicy
Commandes EC2
| Action | Commande |
|---|---|
| Modifier une instance | aws ec2 modify-instance-attribute --instance-id i-123 --instance-type m5.xlarge |
| Creer une AMI | aws ec2 create-image --instance-id i-123abc --name "Base_Image" |
| Copier AMI vers autre region | aws ec2 copy-image --source-image-id ami-123 --source-region us-east-1 --region eu-west-1 --name "prod-server" |
| Enregistrer une AMI | aws ec2 register-image --root-device-name /dev/sda1 --name "linux_ami" |
Commandes EBS
| Action | Commande |
|---|---|
| Creer un volume | aws ec2 create-volume --size 80 --availability-zone us-east-1a --volume-type gp3 |
| Attacher un volume | aws ec2 attach-volume --volume-id vol-123 --instance-id i-abc --device /dev/sdf |
Commandes S3
| Action | Commande |
|---|---|
| Creer un bucket (API) | aws s3api create-bucket --bucket mon-bucket |
| Creer un bucket (simple) | aws s3 mb s3://mon-bucket |
| Lister les buckets | aws s3 ls |
| Copier un fichier | aws s3 cp fichier.txt s3://mon-bucket/ |
| Synchroniser | aws s3 sync ./local s3://mon-bucket/ |
Commandes IAM
| Action | Commande |
|---|---|
| Lister les utilisateurs | aws iam list-users |
| Obtenir une policy | aws iam get-policy --policy-arn arn:aws:iam::123:policy/X |
| Lister les roles | aws iam list-roles |
Metadata et UserData (depuis une instance EC2)
# Recuperer les metadonnees de l'instance
curl http://169.254.169.254/latest/meta-data/
# Exemples de metadonnees
curl http://169.254.169.254/latest/meta-data/instance-id
curl http://169.254.169.254/latest/meta-data/public-ipv4
curl http://169.254.169.254/latest/meta-data/ami-id
# Recuperer le user-data (script de demarrage)
curl http://169.254.169.254/latest/user-data
Options Globales Utiles
| Option | Description | Exemple |
|---|---|---|
--profile | Utiliser un profil | aws s3 ls --profile prod |
--region | Specifier la region | aws ec2 describe-instances --region eu-west-1 |
--output | Format de sortie | aws ec2 describe-instances --output table |
--query | Filtrer JSON | aws ec2 describe-instances --query 'Reservations[].Instances[].InstanceId' |
--dry-run | Tester sans executer | aws ec2 run-instances --dry-run |
Formats de Sortie
# JSON (defaut)
aws ec2 describe-instances --output json
# Tableau lisible
aws ec2 describe-instances --output table
# Texte brut
aws ec2 describe-instances --output text
Gardez cette reference a portee de main ! Ces commandes sont utilisees quotidiennement par les administrateurs AWS.
Quiz de Validation
- Quelle commande verifie la version d'AWS CLI ?
- Ou sont stockees les credentials AWS ?
- Quel est le format d'une commande AWS CLI ?
- Pourquoi utilise-t-on
--endpoint-urlavec LocalStack ? - Quelle commande liste les buckets S3 ?
Prochaine section : Cheatsheet AWS CLI Complet