AWS : CLI et Toolkit VS Code
L'AWS CLI (Command Line Interface) fournit un accès en ligne de commande aux services AWS. L'extension AWS Toolkit pour Visual Studio Code propose une intégration complémentaire permettant de naviguer les ressources, tester et déployer des fonctions depuis l'éditeur.
Installation
Les distributions officielles de l'AWS CLI v2 sont disponibles pour Linux, macOS et Windows. Choisir l'onglet correspondant au système d'exploitation pour l'instruction d'installation.
- Linux
- macOS
- Windows
Sur Linux (exemple Debian/Ubuntu) :
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
aws --version
Pour d'autres distributions, suivre le guide officiel adapté au package manager (yum, apt, pacman).
Sur macOS, utiliser Homebrew ou le package officiel :
# Homebrew
brew install awscli
# Vérifier
aws --version
Ou télécharger le package macOS depuis la page officielle et installer via l'installateur.
Sur Windows, télécharger l'installateur MSI depuis la page officielle et exécuter l'assistant d'installation. Après installation, ouvrir PowerShell ou CMD et vérifier :
aws --version
Pour Windows Subsystem for Linux (WSL), suivre les instructions Linux depuis l'environnement WSL.
Configuration initiale
La commande aws configure permet d'initialiser un profil par défaut : clé d'accès, clé secrète, région et format de sortie.
aws configure
Pour gérer plusieurs comptes ou rôles, utiliser des profils nommés :
aws configure --profile dev
aws --profile dev s3 ls
Les fichiers principaux sont ~/.aws/credentials et ~/.aws/config.
Méthodes d'authentification
- Clés d'accès (access key/secret) : pratiques pour scripts, mais sensibles — les stocker dans
~/.aws/credentialsou un gestionnaire sécurisé. - AWS SSO / Cognito : pour comptes d'entreprise, utiliser
aws sso login(CLI v2) et profils SSO. - Assume role (STS) : pour exécuter des actions avec un rôle différent :
aws sts assume-roleou configurersource_profile+role_arndans~/.aws/config. - Outils tiers :
aws-vault,saml2awsfacilitent la gestion des sessions et la sécurité des credentials.
Commandes courantes (exemples)
- S3 : transférer un fichier
aws s3 cp ./index.html s3://mon-bucket/index.html --acl private --profile dev
- EC2 : lister les instances
aws ec2 describe-instances --query 'Reservations[].Instances[].{ID:InstanceId,State:State.Name,IP:PublicIpAddress}' --output table
- Lambda : invoquer une fonction
aws lambda invoke --function-name my-func --payload '{}' response.json
cat response.json
- STS : assumer un rôle
aws sts assume-role --role-arn arn:aws:iam::123456789012:role/RoleName --role-session-name session1
Requêtes complexes et JMESPath
La CLI prend en charge JMESPath pour filtrer et transformer la sortie JSON via --query.
aws ec2 describe-instances --query 'Reservations[].Instances[?State.Name==`running`].InstanceId' --output text
Bonnes pratiques
- Préférer les profils nommés plutôt que d'exporter
AWS_ACCESS_KEY_IDen clair. - Minimiser les permissions (IAM least privilege) pour les rôles et utilisateurs utilisés par la CLI.
- Pour les workflows locaux, préférer
aws-vaultou sessions SSO plutôt que laisser des clés longues dans des fichiers. - Utiliser
--regionet--profileexplicitement dans les scripts pour rendre les commandes reproductibles. - Activer les logs et métriques CloudWatch côté services pour tracer l'impact des automatisations.
Astuces utiles
- Pagination : la CLI gère la pagination automatiquement, ou utiliser
--page-size/--max-itemspour contrôler. - Format de sortie :
--output json|yaml|table|text; pour les pipelines,jsonetjqsont pratiques. - Session interactive :
aws configure listetaws sts get-caller-identitypour vérifier l'identité active.
Références rapides
- Documentation AWS CLI v2 : https://docs.aws.amazon.com/cli/latest/
- Tutoriels SSO et
aws-vaultpour gestion sécurisée des credentials.
AWS dans Visual Studio Code
L'extension officielle AWS Toolkit for Visual Studio Code facilite le travail avec AWS directement depuis l'éditeur. Principales fonctionnalités :
- Connexion aux comptes : sélection et gestion des profils AWS (credentials, SSO) depuis l'interface, commande
AWS: Connect to AWS. - AWS Explorer : navigation des ressources (Lambda, S3, DynamoDB, CloudFormation, ECS), déploiement rapide et actions contextuelles.
- Développement Serverless : intégration avec AWS SAM pour build, debug et déploiement locaux des fonctions Lambda (requiert SAM CLI et Docker pour le debug local).
- Invocation et logs : exécution et test des fonctions Lambda, visualisation des logs CloudWatch depuis l'éditeur.
- Déploiement : assistance pour empaqueter et déployer des stacks CloudFormation / SAM, et exécution de commandes
sam deployvia l'interface.
Installation et configuration rapide :
- Installer l'extension
AWS Toolkitdepuis le marketplace VS Code. - Configurer un profil AWS (clé/secret ou SSO) dans
~/.aws/credentials/~/.aws/configou utiliser le flux d'authentification de l'extension. - Installer
awscli,sam-cliet Docker si des tests locaux ou du debugging sont nécessaires.
Conseils pratiques :
- Pour déboguer une Lambda localement, installer Docker et SAM CLI, puis utiliser la commande Run Local fournie par l'extension.
- Préférer les profils nommés et SSO pour éviter d'exposer des credentials dans l'éditeur. L'extension supporte SSO flows (CLI v2 requis).
- Utiliser les actions contextuelles dans AWS Explorer pour ouvrir rapidement la console AWS ou copier des ARNs et URL.
- En équipe, documenter le profil à utiliser et ajouter un fichier
devcontainer.jsonsi l'on standardise l'environnement de développement.
L'utilisation du Toolkit accélère les itérations de développement et la validation locale des fonctions, tout en conservant les bonnes pratiques de gestion des credentials et des rôles.