cours
Comment utiliser AWS CLI : Un guide pour les débutants
AWS est un fournisseur de services cloud qui propose une large gamme de services évolutifs et à la demande, notamment de la puissance de calcul, du stockage, des bases de données, de l'apprentissage automatique, des réseaux, de l'analytique, et bien plus encore, à partir de ses centres de données dans le monde entier. Consultez les cours Introduction à AWS et Technologie et services de cloud AWS pour en savoir plus !
Pour interagir avec les ressources sur AWS et les configurer, nous pouvons utiliser la console de gestion AWS ou la CLI AWS.
Dans ce tutoriel, nous allons vous aider à installer le CLI AWS à partir de zéro, à le configurer pour qu'il communique avec votre compte AWS et à créer quelques ressources de base à l'aide du CLI.
Qu'est-ce que l'interface de programmation AWS ?
Le CLI AWS est un outil puissant qui permet aux utilisateurs d'interagir avec les services AWS directement à partir de la ligne de commande de leur ordinateur. Les commandes CLI AWS offrent des fonctionnalités équivalentes à celles de la console de gestion AWS.
Par exemple, pour répertorier tous les groupes de sécurité dans une région AWS spécifique, vous devez vous rendre dans la section "Security Groups" du service EC2 via la console.
Affichez les groupes de sécurité dans la console AWS.
Vous pouvez également obtenir le même résultat en utilisant la commande aws ec2 describe-security-groups
dans la CLI AWS.
Affichez les groupes de sécurité via AWS CLI à partir du terminal local.
Installation de l'interface de programmation AWS
Nous allons voir comment installer AWS CLI sur Windows, Mac et Linux.
Il existe deux versions principales d'AWS CLI, la version 1 et la version 2. Nous ne parlerons que de la version 2, car il s'agit de la version la plus récente, qui offre davantage de fonctionnalités. Pour obtenir les dernières informations sur l'installation ou la mise à jour de la dernière version de l'AWS CLI, consultez la documentation AWS.
Installation sous Windows
Téléchargez le programme d'installation depuis le site officiel d'AWS. Ouvrez lepaquet d'installation Windows "AWSCLIV2" et vous serez accueilli par la fenêtre ci-dessous.
Assistant de configuration AWS CLI.
Sélectionnez "Suivant" et continuez à accepter le contrat de licence.
Accord de licence AWS CLI.
Confirmez l'emplacement de l'installation et procédez à l'installation. L'installation proprement dite ne devrait pas prendre plus de 5 minutes.
Confirmez l'emplacement de l'installation.
Installation en cours.
L'installation est terminée.
Pour vérifier que l'installation a réussi, ouvrez le terminal et exécutez la commande aws --version
. Il devrait ressembler à la sortie ci-dessous.
Vérifiez l'installation d'AWS CLI sur Windows.
Installation sur macOS
Nous pouvons installer l'AWS CLI sur MacOS via Homebrew ou l'installateur de paquets. Je couvrirai les deux méthodes d'installation.
Installation du paquet
Téléchargez le programme d'installation .pkg depuis le site officiel d'AWS. Ouvrez le fichier AWSCLIV2.pkg
, et vous serez accueilli par la fenêtre ci-dessous.
Installation de la CLI AWS.
Acceptez la licence, confirmez l'emplacement d'installation et procédez à l'installation.
Message d'installation réussie.
Pour vérifier que l'installation a réussi, ouvrez le terminal et exécutez la commande aws --version
. Il devrait ressembler à la sortie ci-dessous.
Vérifiez l'installation d'AWS CLI sur MacOS.
Homebrew
Assurez-vous que Homebrew est installé localement. Pour vérifier, exécutez brew --version
. Sinon, vous pouvez vous référer à la page officielle de Homebrew pour les instructions d'installation.
Ensuite, exécutez les commandes suivantes pour installer le CLI :
# With brew installed, update Homebrew's formulae and cask definitions
brew update
# Install AWS CLI
brew install awscli
# Verify the installation
aws --version
brew update and install
Vérifiez l'installation du brassage.
Installation sous Linux
Pour démontrer l'installation sur Linux, j'ai démarré un Amazon Linux EC2 avec l'AMI ami-0bd55ebedabddc3c0. Bien que la version 2 de l'AWS CLI soit installée par défaut, il ne s'agit pas de la dernière version mineure. Les étapes de la mise à jour et de l'installation sont similaires.
# Switch to superuser
sudo su -
# If you’re on Amazon Linux, to install the latest version of the AWS CLI, you must first uninstall the pre-installed yum version
yum remove awscli
# Download the AWS CLI zip file
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
# Unzip the file
unzip awscliv2.zip
# Run the installer
./aws/install
# Verify AWS CLI
aws --version
Téléchargez et décompressez le programme d'installation.
Exécutez le programme d'installation et vérifiez l'installation.
Configuration de la CLI AWS
Après avoir installé AWS CLI, nous devons le configurer avant de l'utiliser pour interagir avec nos ressources AWS. La configuration comprend la mise en place des informations d'identification AWS et de certains paramètres par défaut facultatifs.
Lorsque nous nous connectons à la console AWS, nous nous connectons soit en tant qu'utilisateur, soit en tant que rôle. De même, lorsque nous utilisons AWS CLI pour interagir avec nos ressources, nous devons le faire en tant qu'utilisateur ou assumer un rôle.
Configuration des identifiants AWS
Il existe deux façons de se connecter à la console AWS. La première consiste à utiliser un utilisateur créé via le service de gestion des identités et des accès (IAM).
Page de connexion de l'utilisateur IAM.
La seconde consiste à utiliser un utilisateur créé via le service IAM Identity Center.
Page de connexion au portail d'accès AWS.
Pour configurer AWS CLI, vous devez définir les adresses aws_access_key_id
et aws_secret_access_key
sur votre ordinateur local. Cette paire de clés identifie votre compte et vous donne accès à AWS. Selon la façon dont vous vous connectez, l'obtention de ces informations diffère légèrement.
Utilisateur IAM
Pour utiliser la CLI AWS en tant qu'utilisateur d'IAM, accédez au service IAM via la console AWS, sélectionnez un utilisateur existant ou créez-en un nouveau. J'utiliserai un utilisateur existant.
Utilisateur IAM.
Sélectionnez l'utilisateur et accédez à l'onglet "Security Credentials". Faites défiler vers le bas pour voir les "clés d'accès". Pour ce tutoriel, je vais créer une autre clé d'accès. Sélectionnez "Créer une clé d'accès".
Onglet "Security credentials" d'un utilisateur IAM.
Sélectionnez "Command Line Interface (CLI)".
Créez une clé d'accès.
Confirmez et créez.
Clé d'accès créée.
Téléchargez le fichier .csv pour le conserver. Ensuite, exécutez la commande aws configure
localement et saisissez la valeur de la clé d'accès et de la clé d'accès secrète. Nous écrivons cet ensemble d'informations d'identification dans le profil "par défaut", car nous n'avons pas spécifié de profil avec l'option --profile
. Nous aborderons la question des profils dans une section ultérieure.
Commande AWS configure.
Un dossier caché appelé ".aws" sera créé dans votre répertoire personnel (~
).
Le dossier .aws.
Il contient deux fichiers, config
et credentials
.
Contenu du dossier .aws.
Le fichier config
stocke la région et l'option de sortie par défaut que vous avez saisies ci-dessus. Le fichier credentials
contient quant à lui les fichiers aws_access_key_id
et aws_secret_access_key
. Pour visualiser leur contenu, vous pouvez exécuter les commandes cat config
et cat credentials
.
Exécutez la commande aws sts get-caller-identity
pour vérifier que les informations d'identification fonctionnent et que l'identité IAM correcte est renvoyée.
Validez les informations d'identification.
Utilisateur du centre d'identité IAM
Après vous être connecté, vous serez dirigé vers le portail d'accès AWS pour sélectionner le compte AWS et le rôle à assumer lors de la connexion à la console. Sélectionnez "Access keys" (clés d'accès) pour le compte et le rôle que vous souhaitez utiliser pour la CLI AWS.
Portail d'accès AWS.
Une fenêtre identique à la capture d'écran ci-dessous apparaît. Choisissez l'option 2, copiez et collez le texte fourni dans votre fichier d'informations d'identification AWS.
Les informations d'identification du portail d'accès AWS.
Remarquez qu'en plus des aws_access_key_id
et aws_secret_access_key
, il y a un aws_session_token
comparé aux informations d'identification d'un utilisateur IAM dont il a été question dans la section précédente. Cela ajoute une couche de sécurité supplémentaire aux informations d'identification de l'utilisateur créées via le centre d'identité IAM, car le jeton de session expirera et l'utilisateur devra s'authentifier à nouveau pour rafraîchir le jeton.
Après avoir collé le texte de l'option 2 dans votre fichier d'informations d'identification AWS :
# Use the AWS profile that you have just added
export AWS_PROFILE=<<Account Number>_<Role Name>>
# Valid that the credentials work
aws sts get-caller-identity
Validez les informations d'identification.
Le jeton de session finira par expirer et nous devrons en générer un nouveau.
Jeton expiré.
Au lieu de le copier à nouveau à partir du portail d'accès comme nous l'avons fait ci-dessus, nous pouvons exécuter le site aws sso login
à partir de notre ordinateur local. Suivez les commandes ci-dessous pour configurer les paramètres d'authentification unique (SSO) sur votre ordinateur local.
# Configure SSO to refresh your session token. The ~/.aws/sso folder will be created.
aws configure sso
Commande AWS configure SSO.
Vous serez invité à vous connecter.
Accordez l'accès à l'interface CLI d'AWS.
Demande de CLI AWS approuvée.
Lorsque votre jeton de session expire à nouveau, exécutez simplement aws sso login
.
Sortie de la connexion AWS SSO.
Options de configuration
Nous pouvons personnaliser plusieurs configurations comme les options par défaut pour répondre à nos préférences. Si elles ne sont pas explicitement spécifiées, ces configurations par défaut s'appliquent à la commande CLI AWS.
Pour mettre à jour ou ajouter des valeurs de configuration dans le fichier config
, vous pouvez exécuter la commande ci-dessous ou le modifier manuellement via vim ou nano.
aws configure set <setting> <value>
région
Les ressources AWS qui résident dans une région doivent être spécifiées à l'adresse region
lors de l'exécution des commandes AWS CLI.
Si l'option "--region <nom de la région>" n'est pas spécifiée dans la commande, la région par défaut indiquée dans le fichier de configuration sera utilisée. Si aucune région par défaut n'est définie, vous rencontrerez l'erreur suivante.
Erreur si aucune région n'est spécifiée.
sortie
Le paramètre output
configure le format de sortie renvoyé par la commande CLI AWS.
Par exemple, le format de sortie par défaut que nous avons configuré ci-dessus est "JSON", et la commande aws sts get-caller-identity
renvoie la sortie au format JSON. Les autres options valables sont "tableau" et "texte".
Voici à quoi ressemble le tableau. J'ai ajouté le drapeau --output table
pour écraser la valeur de sortie par défaut "JSON".
aws sts get-caller-identity --output tableau.
role_arn & source_profile
Si vous ne souhaitez pas utiliser directement votre utilisateur IAM et que vous voulez qu'il assume un rôle à la place, spécifiez les configurations role_arn
et source_profile
.
aws configure set role_arn arn:aws:iam::<Account ID>:role/<Role name>
# Put “default” as the profile name if you do not know what to put
aws configure set source_profile <profile name>
Après les avoir spécifiés, vérifiez que le rôle IAM est bien assumé.
Validez les informations d'identification.
cli_pager
Par défaut, l'interface de programmation AWS achemine sa sortie à travers un pager comme less, qui nécessite d'appuyer sur q pour sortir. Nous pouvons modifier ce comportement en désactivant le pager pour configurer la sortie afin qu'elle s'affiche directement dans le terminal en exécutant :
aws configure set cli_pager ""
Sortie avec cli_pager désactivé.
cli_history
Pour conserver un enregistrement des commandes CLI AWS qui ont été exécutées, activez le site cli_history
en exécutant :
aws configure set cli_history enabled
L'historique sera conservé dans une base de données SQLite située à l'adresse ~/.aws/cli/history
.
# View your AWS CLI history
aws history list
# Show details of a specific command
aws history show <command-id>
Résumé de la configuration
Résumé des options de configuration standard :
Clé de configuration |
Description |
région |
Région AWS par défaut (par exemple, us-east-1, ap-southeast-1). |
sortie |
Format de sortie : json, texte ou tableau. |
role_arn |
ARN du rôle IAM à assumer. |
source_profile |
Profil à utiliser comme source lors de l'endossement d'un rôle. |
cli_pager |
Sortie de commande du pager (par exemple, moins, ou "" pour désactiver). |
cli_history |
Activez ou désactivez le fichier historique de la CLI (activé ou désactivé). |
cli_timestamp_format |
Personnalisez le format de l'horodatage (none, iso8601, iso8601_ms). |
Si vous avez suivi les exemples ci-dessus, voici à quoi devrait ressembler votre fichier ~/.aws/config
.
Contenu du fichier de configuration.
Comprendre les commandes CLI d'AWS
Toutes les commandes de la CLI AWS ont un format standard :
Format des commandes CLI AWS - image de l'auteur.
L'opération propre à chaque service comportera des options/étiquettes facultatives ou obligatoires à ajouter.
Commandes de base
Notre CLI AWS peut désormais accéder de manière programmatique à notre compte AWS pour interagir avec les services. Essayons quelques commandes de base sur certains services AWS couramment utilisés !
EC2
Description |
Commandement |
Décrit les instances spécifiées ou toutes les instances. |
aws ec2 describe-instances [--instance-ids <valeur>] |
Décrire les groupes de sécurité spécifiés ou tous vos groupes de sécurité |
aws ec2 describe-security-groups [--group-ids <valeur>] |
Crée un instantané d'un volume EBS et le stocke dans Amazon S3. |
aws ec2 create-snapshot --volume-id <valeur> |
Créer un VPC |
aws ec2 create-vpc [--cidr-block <valeur>] |
Résultat de la description de toutes les instances.
Reportez-vous à la documentation officielle d'EC2 pour plus d'informations.
S3
Description |
Commandement |
Lister tous les buckets S3 |
aws s3 ls |
Lister les objets d'un panier S3 |
aws s3 ls s3://<nom-du-bucket> --recursive |
Déplace un fichier local ou un objet S3 vers un autre emplacement local ou dans S3 |
aws s3 mv <LocalPath> <S3Uri> ou <S3Uri> <LocalPath> ou <S3Uri> <S3Uri>. |
Supprime un objet dans un panier S3 |
aws s3 rm <S3Uri> |
Commandes S3.
Pour plus d'informations, reportez-vous à la documentation officielle de S3.
Notez que pour le service AWS S3, en plus de la commande CLI aws s3
mentionnée ci-dessus, il existe également la commande CLI aws s3api
. Les commandes aws s3
sont plutôt génériques, tandis que les commandes aws s3api
sont plus granulaires et de niveau inférieur.
Reportez-vous à la documentation officielle de s3api pour plus d'informations.
Lambda
Description |
Commandement |
Pour lister toutes les fonctions Lambda |
aws lambda list-functions |
Pour obtenir des informations sur une fonction Lambda |
aws lambda get-function --function-name <nom de la fonction> |
Invoque une fonction Lambda |
aws lambda invoke --function-name <nom de la fonction> |
Renvoie des informations sur la fonction.
Pour plus d'informations, consultez la documentation officielle de Lambda.
Exemple : Utilisation de la CLI AWS pour la gestion d'EC2
Consultez le blog AWS EC2 Tutorial For Beginners pour vous rafraîchir la mémoire sur les bases d'EC2 ! Il vous aidera à mieux comprendre les commandes suivantes.
# To create an EC2 instance
aws ec2 run-instances \
--image-id ami-0bd55ebedabddc3c0 \
--count 1 \
--instance-type t2.micro
Résultat de la création d'une instance.
Lancez aws ec2 describe-instances
pour afficher les détails de toutes les instances EC2, comme indiqué dans les commandes de base.
Si vous souhaitez exécuter la commande pour interroger une ou plusieurs instances spécifiques, ajoutez le drapeau --instance-ids
avec l'identifiant de l'instance. E.g., aws ec2 describe-instances --instance-ids i-00836ea7575852f10
.
Résultat de la description d'une instance.
# To stop the instance
aws ec2 stop-instances --instance-ids i-00836ea7575852f10
Résultat de l'arrêt d'une instance.
# To start the instance
aws ec2 start-instances --instance-ids i-00836ea7575852f10
Résultat du démarrage d'une instance.
# To terminate the instance
aws ec2 terminate-instances --instance-ids i-00836ea7575852f10
Résultat de l'arrêt d'une instance.
Exemple : Travailler avec des buckets S3
Voici quelques commandes utiles pour exécuter des opérations courantes avec les buckets S3, un élément de base dans AWS !
# To create an S3 bucket. “mb” is short for “make bucket”
aws s3 mb s3://<bucket name> --region <region name>
# To list out all buckets
aws s3 ls
# To copy an object from your local or S3 object to another location locally or in S3. In the screenshot below, I used aws s3 cp <LocalPath> <S3Uri>
aws s3 cp <LocalPath> <S3Uri> or <S3Uri> <LocalPath> or <S3Uri> <S3Uri>
# To delete an object from the S3 bucket
aws s3 rm <S3Uri>
# To sync the source directory to the destination. In the screenshot below, I used aws s3 sync <LocalPath> <S3Uri>
aws s3 sync <LocalPath> <S3Uri> or <S3Uri> <LocalPath> or <S3Uri> <S3Uri>
# To list the objects in the bucket
aws s3 ls <S3Uri>
# To delete an S3 bucket, it has to be empty of objects and versioned objects before it can be deleted. “rb” is short for “remove bucket”
aws s3 rb s3://my-unique-bucket-name-gfht68
# The “aws s3 rb” command comes with the --force parameter to first remove all of the objects in the bucket and then remove the bucket itself.
aws s3 rb s3://mybucket --force
Sortie des commandes AWS S3.
Fonctionnalités avancées de l'interface de programmation AWS
Maintenant que nous avons pratiqué quelques commandes CLI de base, nous pouvons passer en revue quelques fonctionnalités et cas d'utilisation plus avancés de l'interface.
Automatiser des tâches avec le CLI AWS
Les exemples de CLI AWS que nous avons couverts jusqu'à présent impliquent une commande unique pour obtenir des informations ou effectuer une action sur le service. Voyons des exemples d'assemblage de plusieurs commandes CLI dans un script afin d'automatiser des tâches.
Exemple : Script de lancement automatisé d'une instance EC2
Créez un fichier launch_ec2.sh
avec le contenu suivant.
#!/bin/bash
# Set variables
INSTANCE_NAME="My_Demo_Instance"
AMI_ID="ami-0bd55ebedabddc3c0" # Replace with your preferred AMI ID
INSTANCE_TYPE="t2.micro" # Replace with the desired instance type
REGION="ap-southeast-1"
# Launch the EC2 instance
INSTANCE_ID=$(aws ec2 run-instances \
--image-id "$AMI_ID" \
--instance-type "$INSTANCE_TYPE" \
--region "$REGION" \
--query "Instances[0].InstanceId" \
--output text)
echo "Instance launched with ID: $INSTANCE_ID"
# Add a Name tag to the instance
aws ec2 create-tags \
--resources "$INSTANCE_ID" \
--tags Key=Name,Value="$INSTANCE_NAME" \
--region "$REGION"
echo "Tag added: Name=$INSTANCE_NAME"
# Wait for the instance to reach a running state
aws ec2 wait instance-running --instance-ids "$INSTANCE_ID" --region "$REGION"
echo "Instance is now running."
Vous pouvez personnaliser le script pour y inclure d'autres paramètres tels que le nom de la clé (--key-name
), l'ID du groupe de sécurité (--security-group-ids
), l'ID du sous-réseau (--subnet-id
), etc.
# Grant the user permission to execute the shell script
chmod u+x ./launch_ec2.sh
# Run the script
./launch_ec2.sh
Lancez le script EC2.
Exemple : Arrêt automatisé de toutes les instances EC2 en cours d'exécution
Créez un fichier stop_ec2.sh
avec le contenu suivant :
#!/bin/bash
# Check if a region is provided as an argument
if [ -n "$1" ]; then
REGION="$1"
else
# Get the default region from AWS CLI configuration
REGION=$(aws configure get region)
if [ -z "$REGION" ]; then
echo "No region provided, and no default region found in AWS CLI configuration."
echo "Please provide a region as an argument: ./stop-all-ec2.sh <region>"
exit 1
fi
fi
echo "Using region: $REGION"
# Get a list of all running EC2 instance IDs
RUNNING_INSTANCES=$(aws ec2 describe-instances \
--filters Name=instance-state-name,Values=running \
--query "Reservations[*].Instances[*].InstanceId" \
--output text \
--region "$REGION")
if [ -z "$RUNNING_INSTANCES" ]; then
echo "No running EC2 instances found in region $REGION."
else
echo "Stopping the following EC2 instances in region $REGION:"
echo "$RUNNING_INSTANCES"
echo "Give it around 1 minute for the instances to be stopped."
# Stop the instances
aws ec2 stop-instances --instance-ids $RUNNING_INSTANCES --region "$REGION"
# Wait for the instances to stop
aws ec2 wait instance-stopped --instance-ids $RUNNING_INSTANCES --region "$REGION"
echo "All instances have been stopped successfully."
fi
# Grant the user permission to execute the shell script
chmod u+x ./stop_all_ec2.sh
# Run the script with the default region
./stop_all_ec2.sh
# Run the script overwriting the default region
./stop_all_ec2.sh us-west-1
Arrêtez le script EC2.
Utiliser le CLI AWS avec JSON et JQ
Les résultats des commandes de l'interface de programmation AWS contiennent un grand nombre d'informations. Dans certains cas, il se peut que nous n'ayons pas besoin de toutes les informations renvoyées et que nous ne voulions qu'un sous-ensemble des résultats.
Par exemple, dans la section "EC2" sous "Commandes de base" ci-dessus, nous avons vu que la commande aws ec2 describe-instances
renvoyait un long résultat JSON. Pour analyser cette sortie et n'obtenir que ce qui est nécessaire, nous pouvons utiliser l'indicateur --query
ou la commande jq
.
Reportez-vous aux scripts d'automatisation de la section "Automatisation des tâches avec AWS CLI" ci-dessus pour des exemples d'utilisation de l'indicateur --query
.
Notez que la commande jq
ne fonctionne que sur une sortie JSON. Ainsi, configurez la sortie par défaut en "JSON" ou passez le drapeau --output json
pour chaque commande.
Vérifiez que jq
est installé :
Vérifiez la version de jq.
# Get a list of all EC2 instances and filter only the instance ID and state
aws ec2 describe-instances | jq '.Reservations[].Instances[] | {InstanceId: .InstanceId, State: .State.Name}'
# Count the number of EC2 instances in the "running" state.
aws ec2 describe-instances --output json | jq '[.Reservations[].Instances[] | select(.State.Name == "running")] | length'
# Extract Lambda Function Names and their runtimes
aws lambda list-functions --output json | jq '.Functions[] | {FunctionName: .FunctionName, Runtime: .Runtime}'
Commandes CLI AWS avec jq.
Utiliser le CLI AWS dans un pipeline CI/CD
Nous pouvons utiliser la CLI AWS dans la configuration de notre pipeline pour automatiser les interactions avec les services AWS, comme le déploiement et la mise à jour de nos ressources AWS lors de l'exécution de notre pipeline CI/CD.
Pour l'exemple ci-dessous, j'utiliserai le pipeline GitLab pour démontrer le déploiement d'une fonction Lambda.
# .gitlab-ci.yml file configuration
stages:
- demo-cicd
datacamp_job:
image: registry.gitlab.com/gitlab-org/cloud-deploy/aws-base:latest
stage: demo-cicd
id_tokens:
GITLAB_OIDC_TOKEN:
aud: https://gitlab.com
variables:
ROLE_ARN: "arn:aws:iam::717240872783:role/<Name of IAM Role that pipeline will use>"
AWS_DEFAULT_REGION: "ap-southeast-1"
script:
- aws --version
- >
export $(printf "AWS_ACCESS_KEY_ID=%s AWS_SECRET_ACCESS_KEY=%s AWS_SESSION_TOKEN=%s"
$(aws sts assume-role-with-web-identity
--role-arn ${ROLE_ARN}
--role-session-name "GitLabRunner-${CI_PROJECT_ID}-${CI_PIPELINE_ID}"
--web-identity-token ${GITLAB_OIDC_TOKEN}
--duration-seconds 3600
--query 'Credentials.[AccessKeyId,SecretAccessKey,SessionToken]'
--output text))
- aws sts get-caller-identity
- ls -l
- aws lambda create-function --function-name <function name> --runtime python3.13 --role <ARN of IAM role that Lambda function will use> --handler index.lambda_handler --zip-file fileb://lambda.zip
- unset AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN
Journaux de travail du pipeline GitLab.
Vous pouvez modifier la configuration du pipeline pour passer les paramètres avec la commande AWS CLI en tant que variables dans le travail du pipeline au lieu de les coder en dur, comme je l'ai fait dans la capture d'écran ci-dessus.
Ainsi, chaque fois que vous souhaitez créer une fonction Lambda, vous pouvez saisir et livrer les variables avec la configuration de votre pipeline dans le dépôt Git.
Meilleures pratiques pour l'utilisation de l'interface de commande AWS
Comme pour toutes les bonnes pratiques, accordez les autorisations minimales nécessaires à l'exécution de la tâche, que vous utilisiez un utilisateur ou un rôle.
Examinons d'autres bonnes pratiques spécifiques à la CLI AWS !
Utiliser les rôles AWS IAM pour la sécurité
Les rôles AWS IAM fournissent des identifiants de sécurité temporaires permettant d'accéder aux ressources AWS. Ces informations d'identification font l'objet d'une rotation automatique et sont limitées aux autorisations d'un rôle spécifique, ce qui réduit les risques associés aux clés d'accès à long terme.
La méthode recommandée pour utiliser un rôle est d'utiliser le rôle créé à partir du centre d'identité IAM, comme indiqué dans la section "Centre d'identité IAM" sous "Configuration des informations d'identification AWS" ci-dessus. C'est également l'approche recommandée par l'AWS.
Approche recommandée par AWS. Source de l'image : AWS.
Lorsque l'administrateur du cloud crée votre utilisateur via le centre d'identité IAM, il doit lui attribuer un jeu de permissions.
Utilisateurs dans le centre d'identité IAM.
Pour chaque ensemble de permissions, AWS crée un rôle IAM.
Jeux de permissions dans le centre d'identité IAM.
Gestion de plusieurs profils
Vous serez probablement amené à gérer plus d'un compte AWS dans votre environnement de travail. Nous utilisons des profils pour configurer plusieurs jeux d'informations d'identification dans les fichiers ~/.aws/credentials
et ~/.aws/config
.
Dans la section "Configuration des informations d'identification AWS" ci-dessus, nous avons exécuté la commande aws configure
sans spécifier le profil via l'indicateur --profile
ou la variable d'environnement AWS_PROFILE
. Ainsi, les informations d'identification et de configuration sont ajoutées au profil par défaut. Pour ajouter un nouveau profil, vous pouvez exécuter la commande aws configure --profile
afin de disposer d'un ensemble distinct d'informations d'identification sous le nouveau profil.
# Create a new profile called “dev”
aws configure --profile dev
# To run AWS CLI commands using the dev profile instead of the default profile, set the AWS_PROFILE environment variable to “dev”. Alternatively, add the “--profile dev” for every AWS CLI command.
export AWS_PROFILE=dev
# Validate that the IAM identity under the new profile is returned
aws sts get-caller-identity
Nouvelles informations d'identification sous un nouveau profil.
Maintenez votre CLI AWS à jour
Il est important de mettre à jour notre AWS CLI pour garantir une interaction efficace avec nos services AWS et profiter des dernières fonctionnalités et améliorations.
Si vous avez installé AWS CLI à l'aide du programme d'installation pour Windows et Mac, vous avez dû télécharger un fichier sur votre ordinateur local et l'exécuter. La mise à jour se fera de la même manière : Téléchargez et exécutez la dernière version du programme d'installation.
Si vous avez installé AWS CLI via brew sur Mac, la mise à jour est aussi simple que d'exécuter brew upgrade awscli
. J'ai déjà installé la dernière version ici.
Sortie de la commande awscli de brew upgrade.
Pour Linux, les étapes sont les mêmes que pour l'installation. Reportez-vous à l'extrait de code dans la section "Installation sous Linux". Suivez les commandes pour télécharger le fichier zip, le décompresser et exécuter le programme d'installation.
Journalisation et dépannage
L'interface de commande AWS est un outil extraordinaire, mais nous pouvons également rencontrer des difficultés lorsque nous l'utilisons. Voyons comment les surmonter.
Journal de l'historique de la CLI
Il peut arriver que l'on oublie une commande et ses paramètres que l'on a exécutés précédemment ou que l'on veuille afficher la sortie d'une commande qui a été exécutée. L'activation du site cli_history
peut répondre à cespréoccupations . Pour plus d'informations, reportez-vous à la section "Options de configuration" ci-dessus.
Erreurs de configuration du CLI
Lorsque vous rencontrez des erreurs de configuration de la CLI AWS, l'exécution de la commande aws configure
vous aidera à déterminer si la CLI lit correctement les informations de vos informations d'identification et de votre fichier de configuration.
Erreur "Unable to parse config file".
# View configuration for the existing profile
aws configure list
# Verify credentials
aws sts get-caller-identity
# Verify configuration values
aws configure get region
aws configure get role_arn
# Review Environment Variables. Variables like AWS_PROFILE, AWS_ACCESS_KEY_ID, and AWS_REGION can override configuration
env | grep AWS
Autres erreurs
En de rares occasions, nous pouvons rencontrer une erreur inconnue lors de l'exécution de commandes AWS CLI. Pour déboguer le problème avec l'appel API ou rassembler plus d'informations pour comprendre l'erreur, il peut être utile d'ajouter l'indicateur --debug
à la commande.
# Add the “--debug” flag
aws ec2 describe-instances --debug
Commande CLI d'AWS avec l'indicateur de débogage.
Les informations supplémentaires devraient vous aider à comprendre et à résoudre le problème.
Conclusion
L'AWS CLI est un outil puissant qui vous permet d'interagir efficacement avec les services AWS, d'automatiser les tâches de routine et de gérer facilement les ressources du cloud. Dans ce tutoriel, je vous ai appris à installer, configurer et utiliser la CLI AWS pour effectuer des opérations essentielles sur plusieurs services AWS courants.
Que vous soyez un débutant en matière de cloud ou un professionnel DevOps chevronné, la maîtrise de l'AWS CLI peut considérablement améliorer votre productivité. De la création et de la gestion des ressources à l'automatisation des déploiements, les possibilités sont pratiquement infinies avec le CLI AWS dans votre boîte à outils.
Prenez le temps d'expérimenter les commandes, d'explorer les capacités de script avancées dans votre pipeline et d'intégrer le CLI AWS dans vos tâches quotidiennes. Bon "cloud computing" !
Je vous recommande de consulter le cursus AWS Cloud Practitioner sur DataCamp pour devenir un expert AWS.
FAQ
Pourquoi devrais-je utiliser AWS CLI au lieu de la console de gestion AWS ?
L'AWS CLI vous permet d'interagir avec les services AWS directement à partir de votre terminal, offrant ainsi des capacités d'automatisation et des flux de travail plus rapides, ce qui n'est pas aussi facilement réalisable avec la console AWS.
Dois-je vérifier la somme de contrôle du fichier après avoir téléchargé le programme d'installation depuis AWS ?
Bien que cela ne soit pas obligatoire, la vérification de la somme de contrôle du paquet d'installation est une bonne pratique.
Comment puis-je vérifier si AWS CLI est déjà installé sur mon ordinateur ?
Ouvrez votre terminal et exécutez "aws --version". S'il renvoie "aws-cli/x.x.x...", AWS CLI est installé. Néanmoins, la mise à jour vers la dernière version est une bonne pratique.
Que dois-je faire si je rencontre des erreurs d'authentification ou de permissions lorsque j'utilise AWS CLI ?
Ces erreurs sont dues à des informations d'identification incorrectes ou à des autorisations insuffisantes. Vérifiez à nouveau vos clés d'accès AWS, assurez-vous qu'elles sont associées à l'utilisateur ou au rôle IAM correct, et vérifiez que vos politiques IAM autorisent les actions requises. Si vous utilisez un rôle et que le jeton de session a expiré, exécutez la commande "aws sso login". Reportez-vous à la section "Utilisateur du centre d'identité IAM" pour connaître les étapes détaillées.
Comment puis-je utiliser AWS CLI pour gérer des ressources dans plusieurs régions ?
Vous pouvez spécifier la région AWS dans vos commandes à l'aide de l'indicateur "--region", ou vous pouvez définir une région par défaut à l'aide de la commande "aws configure". Reportez-vous à la section "Options de configuration" pour plus d'informations.
Ingénieur chevronné en infrastructure cloud et DevOps avec une expertise en Terraform, GitLab CI/CD pipelines, et un large éventail de services AWS, Kenny est compétent dans la conception de solutions cloud évolutives, sécurisées et optimisées en termes de coûts. Il excelle dans la construction d'infrastructures réutilisables, l'automatisation des flux de travail avec Python et Bash, et l'intégration des meilleures pratiques de sécurité dans les pipelines CI/CD. Avec une vaste expérience pratique de Kubernetes et de divers outils d'observabilité, Kenny est compétent pour gérer et orchestrer des microservices tout en garantissant une observabilité et un suivi des performances robustes. Reconnu pour son leadership, son mentorat et son engagement en faveur de l'innovation, Kenny fournit constamment des solutions fiables et évolutives pour les applications cloud-natives modernes. Il s'efforce de rester à la pointe des tendances du secteur et des technologies émergentes, en élargissant et en approfondissant continuellement ses compétences.
Apprenez-en plus sur AWS grâce à ces cours !
cours
AWS Security and Cost Management Concepts
cours
Introduction to AWS Boto in Python
blog
Les 32 meilleures questions d'entretien sur AWS et leurs réponses pour 2024
blog
Les 20 meilleures questions d'entretien pour les flocons de neige, à tous les niveaux

Nisha Arya Ahmed
20 min
blog
Célébration de Saghar Hazinyar : Une boursière de DataCamp Donates et une diplômée de Code to Inspire

Fereshteh Forough
4 min
blog
2022-2023 Rapport annuel DataCamp Classrooms
blog
Q2 2023 DataCamp Donates Digest
blog