Blog

AWS CLI-Tutorial

Bild von Iva Todorova
Iva Todorova
DevOps- und Cloud-Ingenieur
14.01.2022
Lesezeit: 9 Minuten.
Zuletzt aktualisiert am: 04.03.2025

Inhaltsübersicht

So installieren, konfigurieren und verwenden Sie die AWS-Befehlszeilenschnittstelle

Es gibt keine Möglichkeit, in einem DevOps-Branche und nicht über AWS-CLI und die Notwendigkeit, es zu verwenden. Wir stellen Ihnen eine kurze Anleitung zur Installation und Konfiguration vor und erläutern, in welchen Fällen AWL CLI sehr nützlich und bequemer ist als die AWS-Konsole.

Die AWS-Befehlszeilenschnittstelle (CLI) ist ein vereinheitlichtes Open-Source-Tool, mit dem Sie mehrere AWS-Services verwalten oder mit Skripten automatisieren können. AWS CLI Version 2 ist die neueste Hauptversion. Für den Zugriff auf AWS-Services sind ein AWS-Konto, IAM-Anmeldeinformationen und ein IAM-Zugangsschlüsselpaar erforderlich.

Wenn Sie bereits AWS Version 1 installiert haben, haben Sie zwei Möglichkeiten:

  • Empfohlen - AWSv1 deinstallieren und nur AWSv2 verwenden
  • Verwenden Sie Alias/Symlink, um die Versionen zu unterscheiden, da sie beide den aws-Befehlsnamen verwenden.

 1. Einbau

Unterstützte Betriebssysteme sind Linux, MacOS und Windows

AWS CLI wird von 64-Bit-Versionen der aktuellen Linux-Distributionen ARM, CentOS, Fedora, Ubuntu, Amazon Linux 1 und Amazon Linux 2 unterstützt.

$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"unzip awscliv2.zipsudo ./aws/install
  1. Laden Sie die Installationsdatei auf eine der folgenden Arten herunter:
    • Verwenden Sie den Befehl curl - Die Option -o gibt den Dateinamen an, in den das Paket geschrieben wird. Der folgende Beispielbefehl schreibt die heruntergeladene Datei in das aktuelle Verzeichnis mit dem Namen awscliv2.zip.
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
  1. Entpacken Sie das Installationsprogramm. Der folgende Beispielbefehl entpackt das Paket und erstellt ein Verzeichnis namens aws unter dem aktuellen Verzeichnis.
$ unzip awscliv2.zip
  1.  Führen Sie das Installationsprogramm aus. Standardmäßig werden alle Dateien in /usr/local/aws-cli installiert und ein symbolischer Link wird in /usr/local/bin erstellt. Der Befehl enthält sudo, um Schreibrechte für diese Verzeichnisse zu gewähren. 
$ sudo ./aws/install

Sie können ohne sudo installieren, wenn Sie Verzeichnisse angeben, für die Sie bereits Schreibrechte haben, oder wenn Sie der Benutzer root sind. 

Verwenden Sie die folgenden Anweisungen für den Installationsbefehl, um den Installationsort anzugeben:

  • Stellen Sie sicher, dass die Pfade, die Sie für die Parameter -i und -b angeben, keine Volume- oder Verzeichnisnamen enthalten, die Leerzeichen oder andere Leerzeichen enthalten. Wenn ein Leerzeichen vorhanden ist, schlägt die Installation fehl.
  • -install-dir oder -i - Diese Option gibt das Verzeichnis an, in das alle Dateien kopiert werden.
    Der Standardwert ist /usr/local/aws-cli.
  • -bin-dir oder -b - Diese Option legt fest, dass das Hauptprogramm aws symbolisch mit der Datei aws im angegebenen Pfad verknüpft wird. Sie müssen Schreibrechte für das angegebene Verzeichnis haben. Wenn Sie einen Symlink zu einem Verzeichnis erstellen, das sich bereits in Ihrem Pfad befindet, müssen Sie das Installationsverzeichnis nicht zur Variable $PATH hinzufügen.
    Der Standardwert ist /usr/local/bin.
$ ./aws/install -i /usr/local/aws-cli -b /usr/local/bin

Bestätigen Sie die Installation mit dem folgenden Befehl.

$ aws --version

aws-cli/2.4.6 Python/3.8.8 Linux/4.18.0-348.2.1.el8_5.x86_64 exe/x86_64.centos.8 prompt/off

Wenn der AWS-Befehl immer noch nicht gefunden wird, müssen Sie nur Ihr Terminal neu starten.

 2. Konfigurieren der AWS-CLI

Es gibt mehrere Methoden zur Konfiguration von AWS CLI, von denen die gängigsten sind:

Schnelle Konfiguration mit aws configure 

Sie können eine Zugriffsschlüssel-ID und einen geheimen Zugriffsschlüssel über die AWS-Konsole -> IAM-Service generieren. Der Zweck der Schlüssel besteht darin, Ihr AWS-Konto zu authentifizieren und zu autorisieren, was Sie entsprechend Ihrer Berechtigungsstufe tun können.

Die Konfiguration wird in ~/.aws/credentials in einem Profil namens [default] gespeichert. Außerdem können Sie diesen Befehl verwenden, um bestehende Werte zu ändern/zu aktualisieren.

$ aws configure
AWS Access Key ID [None]: EXAMple/AcceSSKEY/IDAWS 
Secret Access Key [None]: EXAMpleseCRET/AcceSSKEY
Default region name [None]: us-west-1
Default output format [None]: json

Das Standardausgabeformat ist JSON. Es gibt jedoch mehrere andere Formate, die Sie verwenden können - YAML, Text oder Tabelle. 

Sie können das Schlüsselpaar auch aus der heruntergeladenen .csv-Datei importieren, nachdem Sie es erzeugt haben.

$ aws configure import --csv file://credentials.csv

AWS CLI speichert die sensiblen Anmeldeinformationen in der lokalen Datei credentials. Die Datei config speichert weniger sensible Konfigurationsoptionen. Der Standardspeicherort für beide Dateien ist das Home-Verzeichnis ~/.aws.  

~/.aws/credentials

[default]
aws_access_key_id=EXAMple/AcceSSKEY/ID
aws_secret_access_key=EXAMpleseCRET/AcceSSKEY

~/.aws/config

[named_profile]
region=us-west-1
output=json

Normalerweise werden die Einstellungen und Berechtigungsnachweise in benannte Profile sortiert. Wenn Sie ein Profil für die Ausführung eines CLI-Befehls angeben, werden die Profileinstellungen und Anmeldeinformationen für die Ausführung dieses Befehls verwendet, wie unten dargestellt:

$ aws ec2 describe-instances --profile named_profile

Eine weitere Möglichkeit, ein Profil anzugeben, ist eine Umgebungsvariable (AWS_PROFILE), die das Standardprofil für Befehle, die in der aktuellen Sitzung ausgeführt werden, grundsätzlich außer Kraft setzt. Die AWS-Befehlszeilenschnittstelle unterstützt die Verwendung mehrerer benannter Profile, die in den Dateien config und credentials gespeichert werden. Dies ist eine sehr nützliche Funktion, wenn Sie die AWS-Organisation ausführen und verschiedene Profile für verschiedene Umgebungen wie Dev, Stage usw. haben. 

Zusätzliche Profile können mit der Option AWS configure -profile oder durch Hinzufügen von Einträgen zu den Dateien config und credentials hinzugefügt werden.

Da AWS CLI Anmeldeinformationen aus der Konfigurationsdatei lesen kann, können Profileinstellungen in einer einzigen Datei gespeichert werden. Wenn in beiden Dateien ein Profil mit demselben Namen vorhanden ist, haben die Schlüssel in der Anmeldeinformationsdatei Vorrang. 

AWS Single Sign-On

Erstellen Sie automatisch ein Profil, das SSO verwendet, indem Sie den Befehl 

$ aws configure sso

oder manuell durch Aktualisierung der ~/.aws/config 

Das Ergebnis sollte dem folgenden Beispiel ähnlich sein:

[profile my-named-profile] 
sso_start_url = https://my-sso-portal.awsapps.com/start 
sso_region = us-east-1
sso_account_id = 12345678910
sso_role_name = readOnly
region = us-west-2
output = json

Nachdem Sie das SSO-Profil erstellt haben, können Sie es aufrufen, um temporäre Anmeldeinformationen von AWS anzufordern. Bevor Sie einen AWS CLI-Service-Befehl ausführen können, müssen Sie temporäre Anmeldeinformationen abrufen. Um die temporären Anmeldeinformationen abzurufen, führen Sie den folgenden Befehl im Terminal aus: 

$ aws sso login --profile  my-named_profile

Die AWS CLI öffnet Ihren Standardbrowser und verifiziert Ihre AWS SSO-Anmeldung. Sie sehen die folgende Ausgabe:

Es wird versucht, die SSO-Autorisierungsseite automatisch in Ihrem Standardbrowser zu öffnen. Wenn sich der Browser nicht öffnet oder Sie ein anderes Gerät zur Autorisierung dieser Anfrage verwenden möchten, öffnen Sie die folgende URL: https://device.sso.eu-central-1.amazonaws.com/

Geben Sie dann den Code ein:

GJMX-DJRHSerfolgreich eingeloggt Start URL: https://example.awsapps.com/start#/

Umgebungsvariablen

Meistens wird diese Methode als weitere Möglichkeit zur Angabe von Konfigurationsoptionen und Anmeldeinformationen verwendet und kann für die Erstellung von Skripten oder die vorübergehende Festlegung eines benannten Profils als Standard nützlich sein.

Vorrangregel: Wird eine Option über eine Umgebungsvariable angegeben, so hat sie Vorrang vor allen Werten in der Konfigurationsdatei. Wird eine Option über einen Parameter in der AWS-CLI angegeben, hat sie Vorrang vor einem Wert aus der entsprechenden Umgebungsvariablen oder einem Profil in der Konfigurationsdatei.

Einrichten von Umgebungsvariablen

Linux oder macOS

$ export AWS_ACCESS_KEY_ID=EXAMple/AcceSSKEY/ID 
$ export AWS_SECRET_ACCESS_KEY=EXAMpleseCRET/AcceSSKEY
$ export AWS_DEFAULT_REGION=us-west-2

Weitere Informationen zum Setzen von Variablen und eine Liste der unterstützten Umgebungsvariablen finden Sie in der offiziellen AWS CLI-Dokumentation hier.

  • Nützliche Befehle: 

$ aws configure

$ aws configure set -profile

$ aws configure list-profiles

$ aws configure list

$ aws configure import

$ aws configure get

$ aws sso login -profile

$ aws sso logout 

Viele weitere Optionen finden Sie im offiziellen AWS-Befehlsleitfaden hier.

 3. Verwendung der AWS CLI

Es gibt eine Reihe von Tipps und Tricks, die bei der Arbeit mit AWS CLI sehr nützlich sein können. 

Im Folgenden finden Sie einige Grundlagen, die Ihnen den Arbeitsalltag erleichtern können:

Befehlsstruktur  

$ aws [options] <command> <subcommand> [parameters]

Hilfe holen

Sie können für jeden Befehl Hilfe erhalten, indem Sie den Befehl 

$ aws help

Die Hilfe enthält Befehlsbeschreibungen, verfügbare Filter, verfügbare Befehle und eine Ausgabeübersicht. Außerdem gibt es einige nützliche Beispiele für die allgemeine Verwendung der Befehle.

Befehlsvervollständigung einschalten 

Mit den folgenden Befehlen können Sie die Befehlsvervollständigung einfach so konfigurieren, dass sie jedes Mal ausgeführt wird, wenn Sie eine neue Shell öffnen

[root@localhost ~]# which aws_completer 
/usr/local/bin/aws_completer
[root@localhost ~]# echo “export PATH=/usr/local/bin/:$PATH” >> .bash_profile 
[root@localhost ~]# source ~/.bash_profile 
[root@localhost ~]# echo "complete -C '/usr/local/bin/aws_completer' aws" >> ~/.bashrc

Vorlagen verwenden 

Durch Hinzufügen des folgenden Parameters -generate-cli-skeleton können Sie eine Vorlage generieren und anzeigen, die aktualisiert und an zukünftige Bedürfnisse angepasst werden kann und später als Eingabe für einen Befehl verwendet werden kann.

Die generierte Vorlagenausgabe enthält alle Parameter, die der Befehl unterstützt. 

Der Parameter -generate-cli-skeleton kann einen der folgenden Werte annehmen:

  • input - Die Vorlage enthält alle Eingabeparameter, die als JSON formatiert sind (Standardwert).
  • yaml-input - Die Vorlage enthält alle Eingabeparameter, die als YAML formatiert sind.
  • output - enthält alle Ausgabeparameter, die als JSON formatiert sind. Sie können die Ausgabeparameter derzeit nicht als YAML anfordern.

Sie können die Skelettparameter in einer Datei speichern, dann alle unnötigen Parameter entfernen und die Werte aktualisieren.

Zum Beispiel:

JSON-Format YAML-Format

{ “DryRun”: true, “ImageId”: “”, “KeyName”: “”, “SecurityGroups”: [ “” ], “InstanceType”: “”, “Monitoring”: { “Enabled”: true }}DryRun: falseImageId: 'ami-abc19ef'KeyName: 'examplekey'SecurityGroups:- 'example-sg'InstanceType: 't3.small'Monitoring: Aktiviert: true

Danach können Sie den folgenden Befehl ausführen:

$ aws ec2 run-instances --cli-input-json file://ec2runinst.json --output json 

оr

$ aws ec2 run-instances --cli-input-yaml file://ec2runinst.yaml --output yaml 

Verwendung von Amazon ECS Exec 

Sie können eine neu hinzugefügte Funktion zu den Fähigkeiten von AWS CLI sehen - Zugriff auf Container auf AWS Fargate und Amazon EC2. Dies bedeutet, dass Benutzer von nun an in der Lage sind, eine interaktive Shell zu starten oder einen einzelnen Befehl gegen den Container auszuführen.

Voraussetzungen für ECS Exec - Stellen Sie sicher, dass Sie über einen IAM-Benutzer, eine Rolle und eine Richtlinie verfügen, die den richtigen Zugriff erlauben. ECS Exec nutzt SSM Session Manager, um einen sicheren Kanal zwischen dem Benutzergerät und dem Zielcontainer herzustellen.

Beispiel für einen Benutzer mit IAM-Rolle und angehängter Richtlinie:

{    “Version”: “2012-10-17”,    “Statement”: [        {            “Effect”: “Allow”,            “Action”: [                “ssmmessages:CreateControlChannel”,                “ssmmessages:CreateDataChannel”,                “ssmmessages:OpenControlChannel”,                “ssmmessages:OpenDataChannel”            ],            “Resource”: “*”        }    ]}

Mit den folgenden Befehlen können Sie eine interaktive Shell oder einen einzelnen Befehl aufrufen:

 aws ecs execute-command  
    --region $AWS_REGION 
    --cluster ecs-exec-example-cluster 
    --task abcdef123499876gtr1234 
    --container <name> 
    --command "/bin/bash" 
    --interactive

–container <name>  is optional in case the task has only one container.

aws ecs execute-command  
    --region $AWS_REGION 
    --cluster ecs-exec-example-cluster 
    --task abcdef123499876gtr1234 
    --container <name> 
    --command "ls" 
    --interactive

Sie können die Protokolle von CloudTrail und Cloudwatch überwachen. 

 4. Sicherheit in der AWS CLI

Es ist sehr wichtig, dass die Konfiguration von AWS CLI die erforderlichen Sicherheits- und Compliance-Ziele erfüllt. Außerdem kann AWS CLI bei der Überwachung und Sicherung von AWS-Ressourcen helfen.

Datenschutz 

Die beste Praxis im Zusammenhang mit dem Datenschutz ist das Least-Privilege-Konzept. Daher erhalten die Benutzer nur so viel Zugang, wie sie für die Erfüllung ihrer Aufgaben benötigen.

Weitere sehr wichtige Möglichkeiten zur Sicherung Ihrer Daten sind folgende:

  • Verwenden Sie MFA (Multi-Faktor-Authentifizierung) mit jedem Konto.
  • Verwenden Sie TLS 1.2 oder höher für die Kommunikation mit AWS-Ressourcen.
  • CloudTrail-Aktivitätsprotokollierung einrichten 
  • Verwenden Sie, wann immer möglich, Verschlüsselung
  • Rollen mit temporären Anmeldeinformationen verwenden 

Standardmäßig werden alle zwischen der AWS-CLI und den AWS-Diensten übertragenen Daten verschlüsselt.

 5. Fehlersuche 

Wenn AWS CLI einen Fehler meldet, sollten Sie zunächst so viele Informationen wie möglich sammeln. Eine der nützlichsten Maßnahmen ist die erneute Ausführung des fehlerhaften Befehls mit dem Befehl -debug am Ende der Befehlszeile. Auf diese Weise gibt die AWS CLI Details zu jedem Schritt aus, den sie bei der Ausführung des Befehls durchführt.

Es gibt weitere häufig auftretende Fehler, deren mögliche Ursache bereits dokumentiert ist. Für weitere Informationen zu diesem Thema können Sie hier nachsehen.

 6. Zusammenfassung

Wir haben uns mit den Grundlagen von AWS CLI beschäftigt. Wir haben gelernt, wie man es installiert und welche wichtigen Überlegungen man bei der Verwendung dieses Tools anstellen muss. Es ist sehr nützlich, schnell und in vielen Fällen bei der DevOps-Arbeit sehr praktisch. AWS fügt ständig neue Funktionen hinzu, daher ist es eine gute Idee, es bei Ihrer täglichen Arbeit zu verwenden. 

Es gibt noch viel mehr zu sagen und zu diskutieren über die Möglichkeiten von AWS CLI. Weitere Informationen und technische Details finden Sie unter den folgenden Links:

Klicken Sie hier, hier und hier.

Wenn Sie mehr über die DevOps-Welt von Fachleuten erfahren möchten, zögern Sie nicht, unseren Blog-Bereich im ITGix Blog zu besuchen. Dort finden Sie viele verschiedene Themen und interessante Praxisbeispiele, die von unseren erfahrenen DevOps-Ingenieuren von ITGix dokumentiert werden.

Eine Antwort hinterlassen

Newsletter für Tech-Experten

Signal, kein Rauschen –

direkt in Ihren Posteingang.

Schließen Sie sich mehr als 12.000 Ingenieuren und Führungskräften aus der Wirtschaft an, die Praxisberichte zu SRE, DevOps und Cloud-nativer Zuverlässigkeit erhalten.

Tech-Blogs mit tiefgehenden Einblicken und Fallstudien
Neue Technologien, sorgfältig ausgewählt

Ihre geschäftliche E-Mail-Adresse

Wir gehen respektvoll mit Ihrem Posteingang um. Lesen Sie unsere Datenschutzerklärung.

Mehr Beiträge

Jeder Anbieter von Observability-Lösungen hat mittlerweile etwas im Angebot, das als „AI SRE“ bezeichnet wird. Cloud-Anbieter haben eines. Plattformen für das Incident-Management haben eines. Ihr Monitoring-Tool hat wahrscheinlich im letzten Quartal eines hinzugefügt. Die Frage für die meisten...
Lesen
AI SRE Agent: Die ersten 20 Minuten eines Vorfalls automatisieren Es ist 3 Uhr morgens. Ein Alarm wird ausgelöst. Sie klappen Ihren Laptop auf, und die nächsten zwanzig Minuten verlaufen wie immer...
Lesen
Kontakt aufnehmen
ITGix bietet Ihnen fachkundige Beratung und maßgeschneiderte DevOps-Services, um Ihr Unternehmenswachstum zu beschleunigen.
Newsletter für
Technik-Experten
Schließen Sie sich 12.000+ Geschäftsführern und Ingenieuren an, die Blogs, e-Books und Fallstudien Fallstudien über neue Technologie erhalten.