Die 10 wichtigsten AWS CLI-Befehle für die tägliche Ressourcenverwaltung

Halten Sie diesen AWS CLI-Spickzettel für tägliche S3-, EC2- und IAM-Überprüfungen, Übertragungen, Instanzaktionen und Berechtigungsüberprüfungen bereit.

Die Top 10 unverzichtbaren AWS CLI-Befehle für das tägliche Ressourcenmanagement

Die AWS CLI ist oft der schnellste Weg, um tägliche Betriebsfragen zu beantworten: Welche EC2-Instanzen laufen, was hat sich in einem S3-Präfix geändert oder welche Richtlinien sind einem Benutzer zugeordnet. Die Konsole ist nützlich, aber die CLI bietet wiederholbare Befehle, die Sie in ein Runbook oder Skript einfügen können.

Dieser AWS CLI-Spickzettel konzentriert sich auf praktische S3-, EC2- und IAM-Befehle, die Sie wahrscheinlich bei routinemäßigen Überprüfungen und Fehlerbehebungen verwenden werden.

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass die AWS CLI auf Ihrem System installiert und konfiguriert ist. Falls nicht, folgen Sie der offiziellen AWS-Dokumentation, um sie zu installieren und Ihre Anmeldeinformationen (Zugriffsschlüssel-ID, geheimer Zugriffsschlüssel und Standardregion) zu konfigurieren.

# Überprüfen der AWS CLI-Version
aws --version

# Konfigurieren der AWS CLI, falls noch nicht geschehen
aws configure

Unverzichtbare AWS CLI-Befehle für Amazon S3

Verwenden Sie diese Befehle, um Buckets zu überprüfen, Objekte zu verschieben und Änderungen vor einer Übertragung in der Vorschau anzuzeigen.

1. aws s3 ls - S3-Buckets und -Objekte auflisten

Dieser Befehl ermöglicht es Ihnen, Ihre S3-Buckets oder die Objekte innerhalb eines bestimmten Buckets aufzulisten. Er ist oft der erste Schritt, um Ihre Speicherlandschaft zu verstehen.

Zweck: S3-Buckets oder Inhalte eines Buckets anzeigen.

Beispiel:

# Alle S3-Buckets in Ihrem Konto auflisten
aws s3 ls

# Objekte in einem bestimmten Bucket auflisten
aws s3 ls s3://your-bucket-name/

# Objekte rekursiv mit menschenlesbaren Größen und Daten auflisten
aws s3 ls s3://your-bucket-name/ --recursive --human-readable --summarize

Tipps:

  • Verwenden Sie --recursive, um alle Objekte unter einem Präfix aufzulisten. S3 hat Präfixe, keine echten Ordner, obwohl die CLI sie ordnerähnlich darstellt. --summarize liefert eine Gesamtzahl und -größe.
  • Sie können auch einen Pfad innerhalb eines Buckets angeben: aws s3 ls s3://your-bucket-name/prefix/.

2. aws s3 cp - Dateien zu und von S3 kopieren

Der Befehl cp ist grundlegend für die Übertragung von Dateien zwischen Ihrem lokalen Dateisystem und S3 oder sogar zwischen S3-Buckets.

Zweck: Lokale Dateien nach S3, S3-Objekte lokal oder S3-Objekte zwischen Buckets kopieren.

Beispiel:

# Eine lokale Datei in einen S3-Bucket kopieren
aws s3 cp local-file.txt s3://your-bucket-name/folder/remote-file.txt

# Ein Objekt von S3 auf Ihren lokalen Rechner kopieren
aws s3 cp s3://your-bucket-name/folder/remote-file.txt local-copy.txt

# Ein Objekt von einem S3-Bucket in einen anderen kopieren
aws s3 cp s3://source-bucket/file.txt s3://destination-bucket/new-file.txt

# Ein lokales Verzeichnis rekursiv nach S3 kopieren
aws s3 cp --recursive local-folder/ s3://your-bucket-name/remote-folder/

Tipps:

  • --recursive ist entscheidend für das Kopieren ganzer Verzeichnisse.
  • Verwenden Sie --exclude und --include, um Dateien bei rekursiven Kopiervorgängen zu filtern.

3. aws s3 sync - Lokale Verzeichnisse mit S3 synchronisieren

sync ist ein leistungsstarker Befehl, der den Inhalt eines Verzeichnisses mit einem S3-Präfix oder umgekehrt synchronisiert. Er kopiert nur neue oder geänderte Dateien, was ihn für Backups und Bereitstellungen sehr effizient macht.

Zweck: Ein lokales Verzeichnis effizient mit einem S3-Bucket/-Präfix synchronisieren.

Beispiel:

# Ein lokales Verzeichnis mit einem S3-Bucket synchronisieren
aws s3 sync local-directory/ s3://your-bucket-name/remote-path/

# Einen S3-Bucket mit einem lokalen Verzeichnis synchronisieren
aws s3 sync s3://your-bucket-name/remote-path/ local-directory/

# Trockenlauf, um zu sehen, welche Änderungen vorgenommen würden, ohne sie tatsächlich durchzuführen
aws s3 sync local-directory/ s3://your-bucket-name/remote-path/ --dryrun

Bewährte Methode: Verwenden Sie immer zuerst --dryrun, um die Änderungen vor der Ausführung eines sync-Vorgangs in der Vorschau anzuzeigen, insbesondere bei kritischen Daten.

4. aws s3 rm - S3-Objekte und -Buckets entfernen

Dieser Befehl wird verwendet, um Objekte aus einem S3-Bucket zu löschen oder einen leeren Bucket zu entfernen.

Zweck: Objekte oder leere Buckets aus S3 löschen.

Beispiel:

# Ein einzelnes Objekt aus einem Bucket löschen
aws s3 rm s3://your-bucket-name/path/to/object.txt

# Alle Objekte in einem Ordner (Präfix) rekursiv löschen
aws s3 rm s3://your-bucket-name/folder/ --recursive

# Einen leeren Bucket löschen
aws s3 rb s3://your-bucket-name/

# Einen Bucket und seinen gesamten Inhalt gewaltsam entfernen (MIT ÄUSSERSTER VORSICHT VERWENDEN!)
aws s3 rb s3://your-bucket-name/ --force

Warnung: aws s3 rb --force ist destruktiv. Es entfernt Objekte, bevor der Bucket gelöscht wird, aber versionierte Buckets erfordern möglicherweise vor dem Löschen noch eine Bereinigung der Versionen mit Befehlen der untergeordneten S3-API.

Unverzichtbare AWS CLI-Befehle für Amazon EC2 (Elastic Compute Cloud)

EC2 bietet skalierbare Rechenkapazität in der AWS-Cloud. Diese Befehle helfen Ihnen bei der Verwaltung Ihrer virtuellen Server.

5. aws ec2 describe-instances - EC2-Instanzdetails abrufen

Dies ist Ihr Befehl der Wahl, um Informationen über Ihre EC2-Instanzen zu sammeln, einschließlich ihres Status, öffentlicher/privater IPs, Tags und mehr.

Zweck: Detaillierte Informationen zu einer oder mehreren EC2-Instanzen abrufen.

Beispiel:

# Alle EC2-Instanzen in der aktuellen Region beschreiben
aws ec2 describe-instances

# Instanzen mit einem bestimmten Tag beschreiben (z. B. Environment=Production)
aws ec2 describe-instances \
    --filters "Name=tag:Environment,Values=Production"

# Instanzen nach Instanz-ID beschreiben
aws ec2 describe-instances --instance-ids i-0abcdef1234567890

# Instanzen beschreiben und mit JMESPath nach bestimmten Informationen filtern (z. B. PublicIpAddress)
aws ec2 describe-instances \
    --query "Reservations[*].Instances[*].{InstanceId:InstanceId,PublicIp:PublicIpAddress,State:State.Name}" \
    --output table

Tipps:

  • --filters ist leistungsstark, um Ergebnisse basierend auf dem Instanzstatus, Tags, Instanztypen und mehr einzugrenzen.
  • --query ermöglicht es Ihnen, bestimmte Datenfelder zu extrahieren und die Ausgabe neu zu formatieren (z. B. mit JMESPath-Ausdrücken).

6. aws ec2 start-instances - Gestoppte EC2-Instanzen starten

Verwenden Sie diesen Befehl, um eine oder mehrere gestoppte EC2-Instanzen zu starten. Instanzen behalten normalerweise ihre privaten IPv4-Adressen, aber öffentliche IPv4-Adressen können sich ändern, es sei denn, Sie verwenden eine Elastic-IP-Adresse.

Zweck: Den Startvorgang für gestoppte EC2-Instanzen einleiten.

Beispiel:

# Eine einzelne EC2-Instanz starten
aws ec2 start-instances --instance-ids i-0abcdef1234567890

# Mehrere EC2-Instanzen starten
aws ec2 start-instances --instance-ids i-0abcdef1234567890 i-0fedcba9876543210

7. aws ec2 stop-instances - Laufende EC2-Instanzen stoppen

Dieser Befehl stoppt laufende EC2-Instanzen. Bei den meisten EBS-gestützten Instanzen wird die Abrechnung nach Instanzstunden gestoppt, während die Instanz gestoppt ist, aber angehängte EBS-Volumes, Elastic-IP-Adressen, Snapshots und einige zugehörige Ressourcen können weiterhin Kosten verursachen.

Zweck: Laufende EC2-Instanzen stoppen.

Beispiel:

# Eine einzelne EC2-Instanz stoppen
aws ec2 stop-instances --instance-ids i-0abcdef1234567890

# Mehrere EC2-Instanzen stoppen
aws ec2 stop-instances --instance-ids i-0abcdef1234567890 i-0fedcba9876543210

# Instanz zwangsweise stoppen (bei Produktionssystemen mit Vorsicht verwenden)
aws ec2 stop-instances --instance-ids i-0abcdef1234567890 --force

Warnung: Das Erzwingen des Stoppens einer Instanz kann zu Datenverlust oder Dateisystembeschädigung führen, wenn Anwendungen nicht ordnungsgemäß heruntergefahren werden.

8. aws ec2 terminate-instances - EC2-Instanzen beenden

Das Beenden einer Instanz löscht die Instanz dauerhaft. Angehängte EBS-Volumes werden nur gelöscht, wenn ihre DeleteOnTermination-Einstellung aktiviert ist.

Zweck: EC2-Instanzen dauerhaft löschen.

Beispiel:

# Eine einzelne EC2-Instanz beenden
aws ec2 terminate-instances --instance-ids i-0abcdef1234567890

# Mehrere EC2-Instanzen beenden
aws ec2 terminate-instances --instance-ids i-0abcdef1234567890 i-0fedcba9876543210

Warnung: Die Beendigung ist eine dauerhafte und irreversible Aktion. Stellen Sie sicher, dass Sie Backups oder Snapshots kritischer Daten haben, bevor Sie Instanzen beenden.

Unverzichtbare AWS CLI-Befehle für IAM (Identity and Access Management)

IAM ermöglicht es Ihnen, den Zugriff auf AWS-Dienste und -Ressourcen sicher zu kontrollieren. Diese Befehle helfen bei der Verwaltung von Benutzern und deren Berechtigungen.

9. aws iam list-users - IAM-Benutzer auflisten

Dieser Befehl liefert eine Liste aller IAM-Benutzer in Ihrem AWS-Konto, zusammen mit ihren ARNs, Erstellungsdaten und Benutzer-IDs.

Zweck: Alle in Ihrem AWS-Konto konfigurierten IAM-Benutzer anzeigen.

Beispiel:

# Alle IAM-Benutzer auflisten
aws iam list-users

# Benutzer auflisten und mit JMESPath bestimmte Felder extrahieren
aws iam list-users --query "Users[*].{UserName:UserName,CreateDate:CreateDate,Arn:Arn}" --output table

Bewährte Methode: Überprüfen Sie regelmäßig Ihre IAM-Benutzerliste, um sicherzustellen, dass nur notwendige Benutzer vorhanden sind und alte, ungenutzte Konten entfernt werden.

10. aws iam list-attached-user-policies - An einen IAM-Benutzer angehängte Richtlinien auflisten

Das Verständnis der Berechtigungen eines IAM-Benutzers ist entscheidend für die Sicherheit und die Fehlerbehebung bei Zugriffsproblemen. Dieser Befehl listet die verwalteten Richtlinien auf, die direkt an einen bestimmten Benutzer angehängt sind.

Zweck: Verwaltete Richtlinien anzeigen, die an einen IAM-Benutzer angehängt sind.

Beispiel:

# Alle verwalteten Richtlinien auflisten, die an einen bestimmten IAM-Benutzer angehängt sind
aws iam list-attached-user-policies --user-name YourIAMUserName

# Inline-Richtlinien auflisten, die an einen bestimmten IAM-Benutzer angehängt sind
aws iam list-user-policies --user-name YourIAMUserName

Tipps:

  • Denken Sie daran, dass IAM-Benutzer Berechtigungen von angehängten verwalteten Richtlinien, Inline-Richtlinien und Gruppenmitgliedschaften erhalten können. Rollen sind separate IAM-Identitäten; Benutzer erben keine Rollenberechtigungen, es sei denn, sie dürfen eine Rolle übernehmen.
  • Um die Details einer bestimmten Richtlinie zu erhalten, verwenden Sie aws iam get-policy --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess und dann aws iam get-policy-version.

Fazit

Beginnen Sie mit schreibgeschützten Befehlen wie aws s3 ls, aws ec2 describe-instances und aws iam list-users. Fügen Sie Schreibaktionen wie sync, stop-instances und terminate-instances erst hinzu, nachdem Sie das Konto, die Region, das Profil und die Zielressourcen-IDs bestätigt haben.