Skip to main content

AWS : CLI et Toolkit VS Code

· 5 min read

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.

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).

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/credentials ou 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-role ou configurer source_profile + role_arn dans ~/.aws/config.
  • Outils tiers : aws-vault, saml2aws facilitent 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_ID en 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-vault ou sessions SSO plutôt que laisser des clés longues dans des fichiers.
  • Utiliser --region et --profile explicitement 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-items pour contrôler.
  • Format de sortie : --output json|yaml|table|text ; pour les pipelines, json et jq sont pratiques.
  • Session interactive : aws configure list et aws sts get-caller-identity pour vérifier l'identité active.

Références rapides


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 deploy via l'interface.

Installation et configuration rapide :

  1. Installer l'extension AWS Toolkit depuis le marketplace VS Code.
  2. Configurer un profil AWS (clé/secret ou SSO) dans ~/.aws/credentials / ~/.aws/config ou utiliser le flux d'authentification de l'extension.
  3. Installer awscli, sam-cli et 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.json si 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.