Verbinde die Website mit privaten S3-Bildern

AWSBeginner
Jetzt üben

Einführung

Ordne EC2 eine vorbereitete Rolle zu, prüfe den echten privaten Bildabruf und entferne die Zuordnung.

Schließe die vorherigen Portfolio-Labs ab. Dieses Lab liefert eigene Ressourcen und benötigte frühere Fähigkeiten. Übernimm Wissen, keine alten Instanzen, Dateien oder Zugangsdaten.

Zertifizierungsbezug

Zertifizierung Aufgaben Übung
AWS Certified Cloud Practitioner (CLF-C02) Task 2.3 Der Website mit einer Instanzrolle Lesezugriff auf vier festgelegte Objekte geben.

Überblick

Ordne EC2 eine vorbereitete Rolle zu, prüfe den echten privaten Bildabruf und entferne die Zuordnung.

Die fehlende Berechtigung verstehen

In diesem Schritt prüfst du Bild und Richtlinie vor der Zuordnung. Öffne die Seite: Text sichtbar, Bild fehlt. Eine IAM-Rolle liefert Identität und Rechte; ein Instance Profile verbindet sie mit EC2. Beide heißen portfolio-reader.

Wechsle zum Projekt.

cd /home/labex/project

Lade und zeige den Bucket dieses Labs.

source website.env
echo "$PORTFOLIO_BUCKET"

Bestätige images/aura-brand.webp in Contents. Terminal hat eine eigene Identität; die Anwendung erbt deren Rechte nicht.

aws s3api list-objects-v2 --bucket "$PORTFOLIO_BUCKET"

Die Richtlinie erlaubt s3:GetObject. Resource enthält die genauen ARN der drei Bilder und projects.json, ohne Schreiben oder andere Objekte. ARN ist eine vollständige Ressourcenkennung; diese vier Objekte begrenzen die Rechte nach dem Prinzip minimaler Berechtigungen.

cat read-image-policy.json

Der Bucket bleibt privat. Die Website liest berechtigt und liefert das Bild an Besucher; öffentliche Website und öffentlicher Bucket sind verschiedene Entscheidungen.

Leserolle zuordnen

In diesem Schritt gibst du der Anwendung ihr Profil. Die SDK entdeckt temporäre Zugangsdaten; kopiere keine dauerhaften Schlüssel.

Zeige und prüfe INSTANCE_ID.

echo "$INSTANCE_ID"

Ordne Name=portfolio-reader zu. $(...) erfasst die Ausgabe, query wählt AssociationId und output text liefert den mit echo sichtbaren Wert.

ASSOCIATION_ID=$(aws ec2 associate-iam-instance-profile   --instance-id "$INSTANCE_ID"   --iam-instance-profile Name=portfolio-reader   --query 'IamInstanceProfileAssociation.AssociationId'   --output text)
echo "$ASSOCIATION_ID"

Lade neu, bis AURA, FORMA und ECHO erscheinen. Klicke auf ein Bild: Titel und Beschreibung kommen aus projects.json in S3. Lass den Bucket privat und prüfe nötigenfalls Instanz und Profil. Die SDK nutzt über IMDSv2 erhaltene temporäre Zugangsdaten, keine kopierten Schlüssel.

Realer Prüfpunkt des Labs; deine Ressourcenkennungen können abweichen.

Realer Prüfpunkt des Labs; deine Ressourcenkennungen können abweichen.

Zuordnung und Server entfernen

In diesem Schritt entfernst du die hinzugefügte Zuordnung und beendest den Workload. Bereits zwischengespeicherte temporäre Credentials können gültig bleiben; Abtrennen bedeutet keine sofortige vollständige Sperre. Ein sofort kaputtes Bild ist kein Beweis dafür.

Entferne die genau gespeicherte Zuordnungs-ID.

aws ec2 disassociate-iam-instance-profile --association-id "$ASSOCIATION_ID"

Beende die Instanz, damit sie keine Anfragen mehr sendet.

aws ec2 terminate-instances --instance-ids "$INSTANCE_ID"

Warte auf terminated.

aws ec2 wait instance-terminated --instance-ids "$INSTANCE_ID"

Behalte vorbereitete Rolle, Bucket und Referenzen. Die Website läuft nicht mehr.

Zusammenfassung

Du hast Identitäten unterschieden, das Profil zugeordnet, das private Bild gesehen und anschließend bereinigt.

Offizielle Quellen: EC2 application roles, instance profiles.