Verwalten von Operationen auf einem S3 Bucket mit aws-cli von der EC2-Instanz

Wir können den S3-Buckets über die AWS-Konsole erstellen und verwalten. Manchmal kann es erforderlich sein, dass wir Operationen auf dem S3-Bucket von der Befehlszeile aus erstellen und ausführen möchten. Wenn Ihnen der S3-Bucket nicht bekannt ist und Sie mehr darüber erfahren möchten, klicken Sie hier, wo Sie einen von mir verfassten Artikel über den S3-Bucket finden können.

Bevor wir mit diesem Artikel fortfahren, gehe ich davon aus, dass Sie mit dem S3-Bucket vertraut sind.

In diesem Artikel sehen wir die Schritte und Befehle, um einen S3-Bucket von der Kommandozeile aus zu erstellen und grundlegende Operationen wie das Kopieren von Dateien, Synchronisieren von Dateien usw. durchzuführen.

Vorraussetzungen

  1. AWS-Konto (Erstellen Sie ein Konto, fallsSie noch keines haben).
  2. Grundlegendes Verständnis von S3 Bucket(Klicken Sie hier, um mehr über S3 Buckets zu erfahren).
  3. Ubuntu 20.04 EC2-Instanz(Klicken Sie hier, um mehr über die EC2-Instanz und die Schritte zur Erstellung über die AWS-Konsole zu erfahren. Sie können eine AMI von Ubuntu 20.04 statt 18.04 wählen).
  4. IAM-Rolle mit angehängter S3FullAccess Policy (Klicken Sie hier, um mehr über dieErstellung einer IAM-Rolle zu erfahren).

Was werden wir tun?

  1. Anmeldung zum AWS-Konto.
  2. Installieren Sie aws-cli.
  3. Hängen Sie eine IAM-Rolle an die EC2-Instanz an.
  4. Erstellen Sie einen Bucket mit aws-cli.
  5. Führen Sie die Grundoperation auf S3 Bucket mit aws-cli aus.

Anmeldung zum AWS-Konto

Bevor wir mit der Installation des Befehls aws-cli auf einer EC2-Instanz fortfahren, sollten wir uns zunächst in unser Konto einloggen.

Klicken Sie hier, um zur AWS Login-Seite zu gelangen.

Wenn Sie auf den obigen Link klicken, sehen Sie die Anmeldeseite wie folgt.

Login-Seite

Sobald Sie sich erfolgreich in Ihre gefundene Seite eingeloggt haben, sehen Sie das Haupt-Dashboard der AWS wie unten dargestellt.

AWS-Dashboard

aws-cli installieren

Verbinden Sie sich mit Ihrer AWS EC2 Instanz.

Lassen Sie uns zuerst das Repository aktualisieren.

sudo apt-get update

Installieren Sie den Befehl aws-cli mit dem folgenden Befehl auf dem Ubuntu-Server.

sudo apt install awscli

Nehmen Sie die Version des Befehls aws-cli.

aws --version

Bis zu diesem Punkt haben wir nur eine EC2-Instanz ohne eine erforderliche IAM-Rolle.

Wenn wir nun versuchen, die Identität mit dem folgenden Befehl zu überprüfen, werden wir gebeten, die Anmeldedaten zu konfigurieren, die für die Durchführung jeder Operation verwendet werden sollen.

aws sts get-caller-identity

aws-Befehl und Zugriff auf das AWS-Konto prüfen

Hängen Sie eine IAM-Rolle an die EC2-Instanz an.

Gehen Sie zur AM-Konsole in Ihrem AWS-Konto und überprüfen Sie, ob die Regel mit der erforderlichen Richtlinie verknüpft ist.

Hier können Sie sehen, ob die Rolle mit der AmazonS3FullAccess-Richtlinie verknüpft ist.

IAM-Rolle mit mindestens vollem Zugang zum S3-Behälter

Gehen Sie nun zur EC2-Konsole und wählen Sie die Instanz aus, die Sie zur Durchführung von Operationen auf dem S3-Bucket verwenden.

Klicken Sie hier auf Aktionen –> Sicherheit –> IAM-Rolle modifizieren, um eine Regel an die Instanz anzuhängen.

Eine IAM-Rolle an die EC2-Instanz anhängen

Sie sehen Ihren Bildschirm, auf dem Sie aus der Dropdown-Liste eine Regel auswählen können, die Sie an die Instanz anhängen möchten. Klicken Sie auf Speichern, um fortzufahren.

Wählen Sie eine IAM-Rolle aus und hängen Sie diese an die EC2-Instanz an

Führen Sie die Grundoperation auf S3 Bucket mit aws-cli aus

Gehen wir zurück zum EC2-Terminal und führen den folgenden Befehl aus.

aws sts get-caller-identity

Überprüfen Sie Ihre Identität

Da wir die erforderliche Regel an die Instanz angehängt haben, können wir bei der Ausführung des obigen Befehls zur Überprüfung der Identität der Rolle, die zur Durchführung von Operationen vom Terminal aus verwendet wird, als Antwort die Benutzer-ID, das Konto und seine ARN sehen. Dies bedeutet, dass wir unsere EC2-Instanz erfolgreich authentifiziert haben. Jetzt sind wir bereit, Operationen vom Terminal aus mit der an die EC2-Instanz angehängten Rolle durchzuführen.

Um die vorhandenen S3-Behälter im AWS-Konto zu überprüfen, führen Sie den folgenden Befehl aus

aws s3 ls

Lassen Sie uns einen neuen Eimer mit dem Namen „rahul-new-bucket-dec-2020“ schaffen. Stellen Sie sicher, dass der Name des Eimers global eindeutig sein muss.

aws s3 mb s3://rahul-new-bucket-dec-2020

Wenn wir jetzt wieder die Eimer auflisten, können wir sehen, dass ein neuer Eimer erfolgreich erstellt wurde und unter der Liste der vorhandenen Eimer verfügbar ist.

aws s3 ls

Lassen Sie uns eine neue Datei auf unserem lokalen Rechner erstellen

touch file-for-s3

Wir können Dateien von unserem lokalen Rechner in den S3-Behälter kopieren

aws s3 cp file-for-s3  s3://rahul-new-bucket-dec-2020

Wir können sogar den Inhalt des S3-Eimers auflisten

aws s3 ls s3://rahul-new-bucket-dec-2020

So wie wir Dateien von der lokalen Maschine in den S3-Bucket kopieren, können wir auch ein lokales Verzeichnis mit dem Bucket synchronisieren.

Sync kopiert nicht die vorhandenen Dateien und Ordner von der lokalen Maschine in den Bucket. Es kopiert nur die Dateien, die neu erstellt oder geändert wurden.

Lassen Sie uns eine neue Datei erstellen und unseren lokalen Rechner aufrufen

touch new-file

Zeit, die wir für Sync verwenden werden.

aws s3 sync . s3://rahul-new-bucket-dec-2020

Nun lassen Sie uns wieder eine neue Datei erstellen

touch file-after-sync

Jetzt können Sie sehen, dass bei einer erneuten Synchronisierung nur neu erstellte Dateien kopiert werden. Die Dateien, die bereits in den Bereich kopiert wurden, werden nicht kopiert.

aws s3 sync . s3://rahul-new-bucket-dec-2020

Dies ist jedoch bei der Kopieroption nicht der Fall. Sie kopiert alle Dateien, unabhängig von den Dateien, die auf S3 verfügbar sind.

aws s3 cp . s3://rahul-new-bucket-dec-2020 --recursive

Sehen Sie sich den folgenden Screenshot an, um die Befehle zu verstehen, die wir gerade ausprobiert haben.

Erstellen eines Bereichs und Ausführen von Kopier- und Synchronisierungsvorgängen

Sehen wir uns an, welche Dateien in unserem S3-Bucket verfügbar sind.

aws s3 ls s3://rahul-new-bucket-dec-2020

Mit dem Unterbefehl „rm“ können wir eine bestimmte Datei aus dem S3-Bucket löschen.

aws s3 rm s3://rahul-new-bucket-dec-2020/new-file

Prüfen Sie, ob die Datei aus dem Bucket gelöscht wurde oder nicht

aws s3 ls s3://rahul-new-bucket-dec-2020

Wir können sogar alle Objekte aus dem Bereich löschen, indem wir die Option –recursive verwenden.

aws s3 rm s3://rahul-new-bucket-dec-2020 --recursive

Prüfen Sie, ob die Objekte aus dem Bereich gelöscht wurden oder nicht

aws s3 ls s3://rahul-new-bucket-dec-2020

Sehen Sie sich den folgenden Screenshot an, um die Operationen zu verstehen, die wir gerade durchgeführt haben.

Objekte aus dem S3-Eimer entfernen

So wie wir Objekte aus dem Bereich löschen konnten, können wir auch den Bereich selbst löschen

Führen Sie zunächst alle im Konto verfügbaren Bereiche auf.

 aws s3 ls

Löschen Sie den gewünschten Bucket mit dem Unterbefehl „rb“.

 aws s3 rb s3://rahul-new-bucket-dec-2020

Wir können sehen, dass der angegebene Bucket jetzt aus der Zählung gelöscht wurde

aws s3 ls

S3-Eimer entfernen

Wir können die Regel entfernen, die wir an die Instanz geknüpft hatten, so dass sich die Instanz nicht mehr selbst autorisieren kann.

Um die angehängte Rolle zu entfernen, gehen Sie zur EC2-Instanz, klicken Sie auf Aktionen –> Sicherheit –> IAM-Rolle modifizieren und entfernen Sie die Regel, die angehängt war, und speichern Sie die Konfiguration.

Lösen Sie die Rolle des IAM

Bestätigen Sie Ihren Vorgang.

Bestätigen Sie die Aktion

Wenn wir diesmal den Befehl „aws s3 ls“ ausführen, können wir keine Buckets aus dem Konto auflisten. Wir können keine der Operationen aus der EC2-Instanz ausführen.

Überprüfen Sie den Zugang

Schlussfolgerung

So wie wir den AWS S3-Behälter über die AWS-Konsole verwalten, können wir ihn auch über die CLI verwalten. Wir haben die Schritte zur Installation des Befehlszeilen-Dienstprogramms aws-cli gesehen. Wir haben auch die Schritte zum Anbringen und Entfernen der I am Role von der EC2-Instanz gesehen. Wir führten mit dem Befehlszeilenprogramm aws-cli einige grundlegende Operationen am S3-Behälter durch.

Das könnte dich auch interessieren …