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

Security Groups bekijken via de AWS-console.
Je kunt hetzelfde resultaat bereiken met het commando aws ec2 describe-security-groups in de AWS CLI.

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.
Kies “Next” en ga akkoord met de licentieovereenkomst.

Licentieovereenkomst voor AWS CLI.
Bevestig de installatielocatie en voer de installatie uit. De installatie zelf duurt hooguit 5 minuten.

Bevestig de installatielocatie.

Installatie bezig.

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.
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-installatie.
Accepteer de licentie, bevestig de installatielocatie en ga verder met de installatie.

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

brew update en install

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.

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.

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

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.

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.
Selecteer “Command Line Interface (CLI)”.

Maak een access key aan.
Bevestig en maak aan.

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.

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

De .aws-map.
Deze bevat twee bestanden, config en credentials.

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.

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.
Er verschijnt een venster zoals in de onderstaande screenshot. Kies optie 2, kopieer en plak de aangeboden tekst in je AWS-credentialsbestand.

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

Valideer referenties.
De sessietoken verloopt uiteindelijk, en we moeten een nieuwe genereren.
![]()
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

AWS configure sso-commando.
Je wordt gevraagd om in te loggen.

Geef AWS CLI-toegang.

Aanvraag van AWS CLI goedgekeurd.
Wanneer je sessietoken weer verloopt, voer je simpelweg aws sso login uit.

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.

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.

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.
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.
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 config-bestand.
Inzicht in AWS CLI-commando's
Alle AWS CLI-commando's hebben een standaardformaat:

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

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

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

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.

Uitvoer van het beschrijven van een instance.
# To stop the instance
aws ec2 stop-instances --instance-ids i-00836ea7575852f10

Uitvoer van het stoppen van een instance.
# To start the instance
aws ec2 start-instances --instance-ids i-00836ea7575852f10

Uitvoer van het starten van een instance.
# To terminate the instance
aws ec2 terminate-instances --instance-ids i-00836ea7575852f10

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

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

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

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:

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}'

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

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.
Voor elke permission set maakt AWS een IAM-role aan.

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

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.

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

