Ga naar hoofdinhoud

De AWS CLI gebruiken: installatie, setup en commando's

Leer hoe je de AWS CLI op je systeem installeert, configureert voor gebruik met je AWS-account en commando's uitvoert om met verschillende AWS-services te werken!
Bijgewerkt 2 okt 2026  · 15 min lezen

Verken met AI

ChatGPTClaudePerplexity

AWS is een cloudprovider die wereldwijd vanuit zijn datacenters een breed scala aan schaalbare en on-demand services aanbiedt, waaronder rekenkracht, opslag, databases, machine learning, netwerken, analytics en meer. Bekijk de cursussen Introduction to AWS en AWS Cloud Technology and Services om meer te leren!

Om met resources op AWS te werken en ze te configureren, kun je de AWS Management Console of de AWS CLI gebruiken.

In deze tutorial laten we je zien hoe je de AWS CLI vanaf nul installeert, configureert om met jouw AWS-account te communiceren, en hoe je met de CLI een paar basisresources aanmaakt.

Wat is de AWS CLI?

De AWS CLI is een krachtige tool waarmee je rechtstreeks vanaf de opdrachtregel op je computer met AWS-services kunt werken. AWS CLI-commando’s bieden functionaliteit die gelijkwaardig is aan het uitvoeren van taken in de AWS Management Console.

Wil je bijvoorbeeld alle security groups in een specifieke AWS-regio bekijken, dan navigeer je in de console naar het onderdeel "Security Groups" binnen de EC2-service.

Bekijk de Security Groups vanuit de AWS-console

Security Groups bekijken via de AWS-console.

Je kunt hetzelfde resultaat bereiken met het commando aws ec2 describe-security-groups in de AWS CLI.

AWS CLI-commando om informatie over security groups op te vragen

Security Groups bekijken via de AWS CLI vanuit de lokale terminal.

De AWS CLI installeren

We lopen de installatie van de AWS CLI op Windows, Mac en Linux stap voor stap door. 

Er zijn twee hoofdversies van de AWS CLI, versie 1 en 2. We bespreken alleen versie 2, omdat dit de nieuwste versie is met meer functies. Voor de meest recente informatie over installeren of updaten naar de nieuwste versie van de AWS CLI, ga je naar de AWS-documentatie.

Installeren op Windows

Download de installer van de officiële AWS-website. Open het Windows-installatiepakket “AWSCLIV2”, en je ziet een venster zoals hieronder.

AWS CLI-installatiewizard

AWS CLI-installatiewizard.

Kies “Next” en ga akkoord met de licentieovereenkomst. 

AWS CLI-licentieovereenkomst

Licentieovereenkomst voor AWS CLI.

Bevestig de installatielocatie en voer de installatie uit. De installatie zelf duurt hooguit 5 minuten.

Bevestig de installatielocatie voor AWS CLI

Bevestig de installatielocatie.

Installatie van AWS CLI bezig

Installatie bezig.

AWS CLI-installatie voltooid

Installatie voltooid.

Om te controleren of de installatie is gelukt, open je de terminal en voer je het commando aws --version uit. De uitvoer zou eruit moeten zien zoals hieronder.

Controleer AWS CLI-installatie op Windows

Controleer AWS CLI-installatie op Windows.

Installeren op macOS

We kunnen de AWS CLI op macOS installeren via Homebrew of de installatiepackage. Ik behandel beide methoden.

Package-installatie

Download de .pkg-installer van de officiële AWS-website. Open het bestand AWSCLIV2.pkg, en je ziet het onderstaande venster.

AWS CLI package-installatie op macOS

AWS CLI-installatie.

Accepteer de licentie, bevestig de installatielocatie en ga verder met de installatie.

Bericht dat installatie van AWS CLI is geslaagd

Melding geslaagde installatie.

Om te controleren of de installatie is gelukt, open je de terminal en voer je het commando aws --version uit. De uitvoer zou eruit moeten zien zoals hieronder.

Controleer AWS CLI-installatie op macOS

Controleer AWS CLI-installatie op macOS.

Homebrew

Zorg dat Homebrew lokaal is geïnstalleerd. Controleer dit met brew --version. Zo niet, raadpleeg dan de officiële Homebrew-pagina voor installatie-instructies.

Voer vervolgens de volgende commando's uit om de CLI te installeren:

# With brew installed, update Homebrew's formulae and cask definitions
brew update

# Install AWS CLI
brew install awscli

# Verify the installation
aws --version

Terminalschermafbeelding van brew-commando's

brew update en install

Controleer AWS CLI-installatie via brew

Controleer brew-installatie.

Installeren op Linux

Om installatie op Linux te demonstreren, heb ik een Amazon Linux EC2 opgestart met de AMI ami-0bd55ebedabddc3c0. Hoewel AWS CLI versie 2 standaard is geïnstalleerd, is dit niet de nieuwste minor-versie. De stappen om te updaten en te installeren zijn vergelijkbaar.

# 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

Download en pak de installer uit op Linux

Download en pak de installer uit.

Voer de installer uit en controleer de installatie op Linux

Voer de installer uit en controleer de installatie.

De AWS CLI configureren

Na het installeren van de AWS CLI moeten we deze configureren voordat we ermee onze AWS-resources kunnen beheren. Configureren houdt in dat je AWS-referenties instelt en enkele optionele standaardinstellingen.

Wanneer we inloggen op de AWS-console, doen we dat als gebruiker of nemen we een rol aan. Op dezelfde manier moeten we bij het gebruik van de AWS CLI om met onze resources te werken, inloggen als gebruiker of een rol aannemen.

AWS-referenties instellen

Er zijn twee manieren om in te loggen op de AWS-console. De eerste is met een gebruiker die is aangemaakt via de Identity and Access Management (IAM)-service.

Gebruikersinterface voor IAM-gebruikerslogin

IAM-gebruikersloginpagina.

De tweede is met een gebruiker die is aangemaakt via de IAM Identity Center-service.

Gebruikersinterface voor IAM Identity Center-gebruikerslogin

AWS Access Portal-loginpagina.

Voor het instellen van de AWS CLI moeten lokaal de aws_access_key_id en aws_secret_access_key worden geconfigureerd. Dit sleutelpaar identificeert je account en geeft toegang tot AWS. Afhankelijk van de manier van inloggen verschilt de manier waarop je deze verkrijgt iets. 

IAM-gebruiker

Om de AWS CLI te gebruiken als een gebruiker uit IAM, ga je in de AWS-console naar de IAM-service en selecteer je een bestaande gebruiker of maak je een nieuwe aan. Ik gebruik een bestaande gebruiker.

Gebruikers in de IAM-service

IAM-gebruiker.

Selecteer de gebruiker en ga naar het tabblad “Security Credentials”. Scroll omlaag naar “Access keys”. Voor deze tutorial maak ik een extra access key. Kies “Create access key”.

Tabblad Security credentials van een IAM-gebruiker

Tabblad Security credentials van een IAM-gebruiker.

Selecteer “Command Line Interface (CLI)”. 

Een access key aanmaken voor een IAM-gebruiker

Maak een access key aan.

Bevestig en maak aan.

Aangemaakte access key

Access key aangemaakt.

Download het .csv-bestand voor bewaring. Voer vervolgens lokaal het commando aws configure uit en voer de waarden in voor de access en secret access key. We schrijven deze set referenties naar het “default”-profiel, omdat we geen profiel hebben opgegeven met de vlag --profile. We bespreken profielen in een later onderdeel.

CLI-commando "aws configure"

AWS configure-commando.

Er wordt een verborgen map “.aws” aangemaakt in je home- (~) map. 

Map ".aws" in de home-map

De .aws-map.

Deze bevat twee bestanden, config en credentials. 

Inhoud van de .aws-map

Inhoud van de .aws-map.

Het config-bestand slaat de standaardregio en uitvoeroptie op die je hierboven hebt ingevoerd. Het credentials-bestand bewaart de aws_access_key_id en aws_secret_access_key. Om de inhoud te bekijken, kun je de commando's cat config en cat credentials uitvoeren.

Voer het commando aws sts get-caller-identity uit om te valideren dat de referenties werken en de juiste IAM-identiteit wordt geretourneerd.

AWS CLI-commando om referentie te valideren

Valideer referenties.

IAM Identity Center-gebruiker

Na het inloggen kom je in de AWS Access Portal om het AWS-account en de rol te kiezen die je wilt aannemen voor de console. Selecteer “Access keys” voor het account en de rol die je met de AWS CLI wilt gebruiken.

AWS Access Portal

AWS Access Portal.

Er verschijnt een venster zoals in de onderstaande screenshot. Kies optie 2, kopieer en plak de aangeboden tekst in je AWS-credentialsbestand.

Krijg referenties voor een gebruiker via de AWS Access Portal

Referenties uit de AWS Access Portal.

Merk op dat naast de aws_access_key_id en aws_secret_access_key er ook een aws_session_token aanwezig is, in vergelijking met de referenties voor een IAM-gebruiker in het vorige onderdeel. Dit voegt een extra beveiligingslaag toe aan de referenties van gebruikers die via het IAM Identity Center zijn gemaakt, omdat de sessietoken verloopt en de gebruiker opnieuw moet authenticeren om de token te vernieuwen.

Nadat je de tekst uit optie 2 in je AWS-credentialsbestand hebt geplakt:

# 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

Geldige referenties vanuit AWS Access Portal

Valideer referenties.

De sessietoken verloopt uiteindelijk, en we moeten een nieuwe genereren. 

Foutmelding door verlopen token

Token verlopen.

In plaats van deze opnieuw te kopiëren uit de Access Portal zoals hierboven, kunnen we lokaal aws sso login uitvoeren. Volg de onderstaande commando's om de Single Sign-On (SSO)-instellingen lokaal te configureren.

# Configure SSO to refresh your session token. The ~/.aws/sso folder will be created.
aws configure sso

Uitvoer van commando "aws configure sso"

AWS configure sso-commando.

Je wordt gevraagd om in te loggen.

Toegang toestaan door AWS CLI

Geef AWS CLI-toegang.

Toestemming verleend aan AWS CLI

Aanvraag van AWS CLI goedgekeurd.

Wanneer je sessietoken weer verloopt, voer je simpelweg aws sso login uit.

Uitvoer van commando "aws sso login"

Uitvoer van AWS SSO-login.

Configuratieopties

We kunnen verschillende standaardconfiguraties instellen naar onze voorkeur. Als ze niet expliciet worden opgegeven, zijn deze standaardinstellingen van toepassing op het AWS CLI-commando.

Om configuratiewaarden in het config-bestand bij te werken of toe te voegen, kun je onderstaand commando uitvoeren of het handmatig aanpassen via vim of nano.

aws configure set <setting> <value>

region

AWS-resources die zich in een regio bevinden, vereisen dat de region wordt opgegeven bij het uitvoeren van AWS CLI-commando's. 

Als de vlag “--region <region name>” niet in het commando is opgegeven, wordt de standaardregio uit het config-bestand gebruikt. Als er geen standaardregio is gedefinieerd, krijg je de volgende foutmelding.

Foutmelding wanneer geen standaardregio is opgegeven

Fout wanneer geen regio is opgegeven.

output

De instelling output bepaalt het uitvoerformaat dat door het AWS CLI-commando wordt teruggegeven. 

Het standaarduitvoerformaat dat we hierboven hebben ingesteld is “JSON”, en het commando aws sts get-caller-identity gaf de uitvoer terug in JSON-formaat. Andere geldige opties zijn “table” en “text”. 

Zo ziet de tabeluitvoer eruit. Ik heb de vlag --output table toegevoegd om de standaardwaarde “JSON” te overschrijven.

Tabeluitvoerformaat

aws sts get-caller-identity --output table.

role_arn & source_profile

Als je je IAM-gebruiker niet direct wilt gebruiken en in plaats daarvan een rol wilt aannemen, specificeer dan de configuratie role_arn en 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>

Controleer na het instellen dat de IAM-rol inderdaad is aangenomen.

Valideer referenties voor IAM-gebruiker die een rol aanneemt

Valideer referenties.

cli_pager

Standaard pipet de AWS CLI zijn uitvoer door een pager zoals less, waarvoor je q moet indrukken om af te sluiten. We kunnen dit gedrag wijzigen door de pager uit te schakelen zodat de uitvoer direct in de terminal wordt weergegeven met:

aws configure set cli_pager ""

Uitvoer met cli_pager uitgeschakeld

Uitvoer met cli_pager uitgeschakeld.

cli_history

Om een logboek bij te houden van de uitgevoerde AWS CLI-commando's, schakel je cli_history in met:

aws configure set cli_history enabled

De geschiedenis wordt bewaard in een SQLite-database in ~/.aws/cli/history. 

# View your AWS CLI history
aws history list

# Show details of a specific command
aws history show <command-id>

Samenvatting configuratie

Samenvatting van de standaardconfiguratie-opties:

Configuration Key

Description

region

Standaard AWS-regio (bijv. us-east-1, ap-southeast-1).

output

Uitvoerformaat: json, text of table.

role_arn

ARN van de aan te nemen IAM-rol.

source_profile

Profiel dat als bron wordt gebruikt bij het aannemen van een rol.

cli_pager

Pager voor commando-uitvoer (bijv. less, of stel in op "" om uit te schakelen).

cli_history

CLI-geschiedenisbestand in- of uitschakelen (enabled of disabled).

cli_timestamp_format

Tijdstempelformaat aanpassen (none, iso8601, iso8601_ms).

Als je de voorbeelden hierboven hebt gevolgd, ziet je ~/.aws/config-bestand er ongeveer zo uit.

Inhoud van ~/.aws/config-bestand

Inhoud van config-bestand.

Inzicht in AWS CLI-commando's

Alle AWS CLI-commando's hebben een standaardformaat:

Visuele uiteenzetting van een AWS CLI-commando

Formaat van AWS CLI-commando's—afbeelding door auteur.

De operatie die specifiek is voor elke service heeft optionele of verplichte opties/vlaggen die je toevoegt.

Basiscommando's

Onze AWS CLI heeft nu programmatische toegang tot ons AWS-account om met de services te interacteren. Laten we enkele basiscommando's uitproberen voor veelgebruikte AWS-services!

EC2

Description

Command

Beschrijft de opgegeven instances of alle instances.

aws ec2 describe-instances [--instance-ids <value>]

Beschrijf de opgegeven security groups of al je security groups

aws ec2 describe-security-groups [--group-ids <value>]

Maakt een snapshot van een EBS-volume en slaat deze op in Amazon S3

aws ec2 create-snapshot --volume-id <value>

Maak een VPC

aws ec2 create-vpc [--cidr-block <value>]

Uitvoer van AWS CLI-commando dat alle instances beschrijft

Uitvoer van het beschrijven van alle instances.

Raadpleeg de officiële documentatie voor EC2 voor meer informatie.

S3

Description

Command

Toon alle S3-buckets

aws s3 ls 

Toon objecten in een S3-bucket

aws s3 ls s3://<bucket-name> --recursive

Verplaatst een lokaal bestand of S3-object naar een andere locatie lokaal of in S3

aws s3 mv <LocalPath> <S3Uri> of <S3Uri> <LocalPath> of <S3Uri> <S3Uri>

Verwijdert een object in een S3-bucket

aws s3 rm <S3Uri>

Voorbeelden van "aws s3"-commando's

S3-commando's.

Raadpleeg de officiële documentatie voor S3 voor meer informatie.

Let op: voor de AWS S3-service bestaat er naast het hierboven besproken aws s3-commando ook het aws s3api-commando. De aws s3-commando's zijn vrij generiek, terwijl de aws s3api-commando's fijner en lager niveau zijn.

Raadpleeg de officiële documentatie voor s3api voor meer informatie.

Lambda

Description

Command

Alle Lambda-functies weergeven

aws lambda list-functions

Informatie opvragen over een Lambda-functie

aws lambda get-function --function-name <function name>

Een Lambda-functie aanroepen

aws lambda invoke --function-name <function name>

Uitvoer van AWS CLI-commando dat informatie over een Lambda-functie ophaalt

Geeft informatie over de functie terug.

Raadpleeg de officiële documentatie voor Lambda voor meer informatie.

Voorbeeld: de AWS CLI gebruiken voor EC2-beheer

Bekijk ook de blog AWS EC2 Tutorial For Beginners om de basis van EC2 nog eens op te frissen! Dat helpt bij het begrijpen van de volgende commando's.

# To create an EC2 instance
aws ec2 run-instances \
    --image-id ami-0bd55ebedabddc3c0 \
    --count 1 \
    --instance-type t2.micro

AWS CLI-uitvoer van het aanmaken van een instance

Uitvoer van het aanmaken van een instance.

Voer aws ec2 describe-instances uit om de details van alle EC2-instances te bekijken, zoals behandeld bij de basiscommando's.

Wil je het commando uitvoeren voor een specifieke instance of meerdere, voeg dan de vlag --instance-ids toe met het instance-ID. Bijv. aws ec2 describe-instances --instance-ids i-00836ea7575852f10.

AWS CLI-uitvoer van het beschrijven van een instance

Uitvoer van het beschrijven van een instance.

# To stop the instance
aws ec2 stop-instances --instance-ids i-00836ea7575852f10

AWS CLI-uitvoer van het stoppen van een instance

Uitvoer van het stoppen van een instance.

# To start the instance
aws ec2 start-instances --instance-ids i-00836ea7575852f10

AWS CLI-uitvoer van het starten van een instance

Uitvoer van het starten van een instance.

# To terminate the instance
aws ec2 terminate-instances --instance-ids i-00836ea7575852f10

AWS CLI-uitvoer van het beëindigen van een instance

Uitvoer van het beëindigen van een instance.

Voorbeeld: werken met S3-buckets

Hier zijn enkele handige commando's om veelvoorkomende bewerkingen met S3-buckets uit te voeren, een basis in 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

Voorbeeld van "aws s3"-commando's

Uitvoer van AWS S3-commando's.

Geavanceerde functies van de AWS CLI

Nu we wat basis-CLI-commando's hebben geoefend, kunnen we enkele geavanceerdere interfacefuncties en use-cases bekijken.

Taken automatiseren met de AWS CLI

De AWS CLI-voorbeelden die we tot nu toe hebben behandeld, gebruiken één commando om informatie op te halen of een actie op de service uit te voeren. Laten we voorbeelden bekijken van het combineren van meerdere CLI-commando's in een script om taken te automatiseren.

Voorbeeld: Geautomatiseerd script om een EC2-instance te starten

Maak een launch_ec2.sh-bestand met de volgende inhoud. 

#!/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."

Je kunt het script aanpassen met meer parameters, zoals de sleutelnaam (--key-name), ID van de security group (--security-group-ids), subnet-ID (--subnet-id), enz.

# Grant the user permission to execute the shell script
chmod u+x ./launch_ec2.sh

# Run the script
./launch_ec2.sh

Voer het script launch_ec2.sh uit

Script om een EC2-instance te starten.

Voorbeeld: Geautomatiseerd stoppen van alle draaiende EC2-instances

Maak een stop_ec2.sh bestand met de volgende inhoud:

#!/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

Voer het script stop_all_ec2.sh uit

Script om EC2 te stoppen.

De AWS CLI gebruiken met JSON en JQ

De uitvoer van AWS CLI-commando's bevat behoorlijk wat informatie. In sommige gevallen hebben we niet alles nodig en willen we alleen een subset van de output. 

In de sectie “EC2” onder “Basiscommando's” hierboven zagen we bijvoorbeeld dat het commando aws ec2 describe-instances een lange JSON-uitvoer retourneerde. Om deze uitvoer te parseren en alleen te krijgen wat we nodig hebben, kunnen we de --query-vlag of het jq-commando gebruiken.

Bekijk de automatiseringsscripts in de sectie “Taken automatiseren met AWS CLI” hierboven voor voorbeelden van de --query-vlag. 

Let op: het jq-commando werkt alleen op een JSON-uitvoer. Stel daarom de standaarduitvoer in op “JSON” of voeg bij elk commando de vlag --output json toe.

Controleer of jq is geïnstalleerd:

Haal de geïnstalleerde jq-versie op

Controleer de versie van 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}'

Voorbeeld van AWS CLI-commando's met jq

AWS CLI-commando's met jq.

De AWS CLI gebruiken in een CI/CD-pipeline

We kunnen de AWS CLI gebruiken in onze pipelineconfig om interacties met AWS-services te automatiseren, zoals het deployen en updaten van AWS-resources zodra onze CI/CD-pipeline draait. 

In het onderstaande voorbeeld gebruik ik de GitLab-pipeline om het deployen van een Lambda-functie te demonstreren.

# .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::<AWS Account ID>: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

GitLab-pipelinejoblogs met een AWS CLI-commando

GitLab-pipelinejoblogs.

Je kunt de pipelineconfig aanpassen om de parameters als variabelen in de pipelinejob mee te geven met het AWS CLI-commando, in plaats van ze hard te coderen, zoals ik in de bovenstaande screenshot heb gedaan.

Op die manier kun je, wanneer je een Lambda-functie wilt maken, de variabelen samen met je pipelineconfig invoeren en committen naar de Git-repository.

Best practices voor het gebruik van de AWS CLI

Zoals bij alle best practices geldt: geef minimale permissies om de taak uit te voeren, ongeacht of je een user of role gebruikt. 

Laten we andere best practices bekijken die specifiek zijn voor de AWS CLI!

AWS IAM-rollen gebruiken voor beveiliging

AWS IAM-rollen bieden tijdelijke security-credentials voor toegang tot AWS-resources. Deze credentials worden automatisch geroteerd en zijn beperkt tot de permissies van een specifieke role, wat de risico's van langlopende access keys vermindert.

De aanbevolen manier om een role te gebruiken is via de role die is aangemaakt vanuit het IAM Identity Center, zoals getoond in de sectie “IAM Identity Center” onder “AWS-credentials instellen” hierboven. Dit is ook de door AWS aanbevolen aanpak.

Screenshot van AWS over de aanbevolen aanpak voor programmatische toegang

Aanbevolen aanpak door AWS. Beeldbron: AWS.

Wanneer de cloudbeheerder je user via het IAM Identity Center aanmaakt, moet die een permission set toewijzen. 

Users in IAM Identity Center

Users in IAM Identity Center.

Voor elke permission set maakt AWS een IAM-role aan.

Permission sets in IAM Identity Center

Permission sets in IAM Identity Center.

Meerdere profielen beheren

Waarschijnlijk beheer je meer dan één AWS-account in je werkomgeving. We gebruiken profielen om meerdere sets credentials te configureren in het bestand ~/.aws/credentials en ~/.aws/config.

In de sectie “AWS-credentials instellen” hierboven hebben we het commando aws configure uitgevoerd zonder het profiel te specificeren via de --profile-vlag of de omgevingsvariabele AWS_PROFILE. Daardoor worden de credentials en configuratie toegevoegd aan het standaardprofiel. Om een nieuw profiel toe te voegen, kun je aws configure --profile <profiellnaam> uitvoeren om een aparte set credentials onder het nieuwe profiel te hebben.

# 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

Nieuwe credentials onder een nieuw profiel

Nieuwe credentials onder een nieuw profiel.

Houd je AWS CLI up-to-date

Het is belangrijk om onze AWS CLI te updaten om effectief met onze AWS-services te kunnen werken en te profiteren van de nieuwste functies en verbeteringen.

Als je AWS CLI hebt geïnstalleerd met het installatiepakket voor Windows en Mac, heb je een bestand naar je lokale computer gedownload en uitgevoerd. Updaten werkt op dezelfde manier: download en start het nieuwste installatiepakket. 

Als je AWS CLI via brew op Mac hebt geïnstalleerd, is updaten zo eenvoudig als brew upgrade awscli uitvoeren. Ik heb hier al de nieuwste versie geïnstalleerd.

brew upgrade awscli

Uitvoer van het commando brew upgrade awscli.

Voor Linux zijn de stappen hetzelfde als bij de installatie. Raadpleeg de code in de sectie “Installeren op Linux”. Volg de commando's om het zip-bestand te downloaden, uit te pakken en de installer uit te voeren.

Logging en troubleshooting

De AWS CLI is een geweldig hulpmiddel, maar we kunnen ook uitdagingen tegenkomen tijdens het werken ermee. Laten we bekijken hoe je die kunt oplossen. 

CLI-geschiedenislog

Soms vergeten we een commando en de parameters die we eerder hebben uitgevoerd, of willen we de uitvoer van een uitgevoerd commando terugzien. Het inschakelen van cli_history kan deze problemen oplossen. Voor meer informatie, zie de sectie “Configuratie-opties” hierboven.

CLI-configuratiefouten

Wanneer je AWS CLI-configuratiefouten tegenkomt, helpt het uitvoeren van het commando aws configure om te bepalen of de CLI de informatie uit je credentials- en config-bestand correct leest.

AWS CLI-configuratiefout

Fout “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

Andere fouten

In zeldzame gevallen kunnen we een onbekende fout tegenkomen bij het uitvoeren van AWS CLI-commando's. Om het probleem met de API-call te debuggen of meer informatie te verzamelen om de fout te begrijpen, kan het helpen om de vlag --debug toe te voegen aan het commando.

# Add the “--debug” flag
aws ec2 describe-instances --debug

AWS CLI-commando met de debug-vlag

AWS CLI-commando met de debug-vlag.

De extra informatie zou je moeten helpen om het probleem te begrijpen en op te lossen.

Conclusie

De AWS CLI is een krachtig hulpmiddel waarmee je efficiënt met AWS-services kunt werken, routinetaken automatiseert en cloudresources eenvoudig beheert. In deze tutorial heb ik je laten zien hoe je de AWS CLI installeert, configureert en gebruikt om essentiële handelingen uit te voeren op verschillende veelgebruikte AWS-services.

Of je nu een cloudbeginner bent of een doorgewinterde DevOps-professional, het beheersen van de AWS CLI kan je productiviteit aanzienlijk verhogen. Van het maken en beheren van resources tot het automatiseren van deployments: de mogelijkheden zijn met de AWS CLI in je toolkit vrijwel eindeloos.

Neem de tijd om met de commando's te experimenteren, geavanceerde scripttaken in je pipeline te verkennen en de AWS CLI in je dagelijkse werk te integreren. Veel plezier met cloudcomputing!

Ik raad je aan om de AWS Cloud Practitioner skill track op DataCamp te bekijken om een AWS-expert te worden.

FAQs

Waarom zou ik AWS CLI gebruiken in plaats van de AWS Management Console?

Met de AWS CLI kun je rechtstreeks vanuit je terminal met AWS-services werken. Daarmee krijg je automatiseringsmogelijkheden en snellere workflows, die met de AWS Console minder eenvoudig te realiseren zijn.

Moet ik de checksum van het bestand verifiëren nadat ik het installatiepakket van AWS heb gedownload?

Hoewel het niet verplicht is, is het verifiëren van de checksum van het installatiepakket een goede gewoonte.

Hoe kan ik controleren of AWS CLI al lokaal is geïnstalleerd?

Open je terminal en voer “aws --version” uit. Als je “aws-cli/x.x.x…” terugkrijgt, is AWS CLI geïnstalleerd. Het blijft echter een best practice om te upgraden naar de nieuwste versie.

Wat moet ik doen als ik authenticatie- of permissiefouten tegenkom bij het gebruik van AWS CLI?

Deze fouten ontstaan door onjuiste credentials of onvoldoende permissies. Controleer je AWS-access keys, zorg dat ze gekoppeld zijn aan de juiste IAM-user of -role, en verifieer dat je IAM-policies de vereiste acties toestaan. Als je een role gebruikt en de session token is verlopen, voer dan het commando “aws sso login” uit. Raadpleeg de sectie “IAM Identity Center User” voor gedetailleerde stappen.

Hoe kan ik met AWS CLI resources beheren over meerdere regio's?

Je kunt de AWS-regio in je commando's opgeven met de “--region”-vlag, of je stelt een standaardregio in met het commando “aws configure”. Zie de sectie “Configuratie-opties” voor meer informatie.


Kenny Ang's photo
Author
Kenny Ang
LinkedIn

Als ervaren Cloud Infrastructure- en DevOps-engineer met expertise in Terraform, GitLab CI/CD-pipelines en een breed scala aan AWS-services is Kenny bedreven in het ontwerpen van schaalbare, veilige en kostengeoptimaliseerde cloudoplossingen. Hij blinkt uit in het bouwen van herbruikbare infrastructuur, het automatiseren van workflows met Python en Bash, en het integreren van security best practices in CI/CD-pipelines. Met ruime hands-on ervaring in Kubernetes en diverse observability-tools is Kenny vaardig in het beheren en orkestreren van microservices, terwijl hij zorgt voor robuuste observability en performance monitoring. Bekend om zijn leiderschap, mentoring en toewijding aan innovatie levert Kenny consequent betrouwbare en schaalbare oplossingen voor moderne cloud-native applicaties. Hij blijft gedreven om voorop te lopen in branchetrends en opkomende technologieën en breidt zijn skillset voortdurend uit en verdiept deze.

Onderwerpen
Cloud
AWS

Leer meer over AWS met deze cursussen!

Cursus

Concepten van AWS-cloudtechnologie en -services

3 uur
22.3K
Word een expert in AWS-cloudtechnologie door zelf aan de slag te gaan en het in de praktijk te gebruiken in het AWS-ecosysteem.
Bekijk detailsRight Arrow
Start Cursus
Meer bekijkenRight Arrow
Gerelateerd

blog

AI vanaf nul leren in 2026: een complete gids van de experts

Ontdek alles wat je moet weten om in 2026 AI te leren, van tips om te beginnen tot handige resources en inzichten van industrie-experts.
Adel Nehme's photo

Adel Nehme

15 min

Meer BekijkenMeer Bekijken