Einführung
Zwei Analysten benötigen denselben Berichtszugriff. Du verwaltest eine gemeinsame Richtlinie, überträgst die Berichtsverantwortung von Alice auf Bob und prüfst, dass ein ehemaliges Mitglied diesen Zugriff verliert.
Schließe zuerst Einem Berichtsleser minimale Berechtigungen geben ab, um Identitätsrichtlinien sowie erlaubte und verweigerte Anfragen kennenzulernen. Diese neue VM stellt default für die Verwaltung sowie alice, bob und outsider für Tests bereit. Verwende /home/labex/project und AWS View, um die Mitgliedschaft mit tatsächlichen Lesezugriffen zu vergleichen.
Bezug zu Zertifizierungen
| Zertifizierung | Prüfungsaufgabe | Übung |
|---|---|---|
| Cloud Practitioner (CLF-C02) | Aufgabe 2.3 | IAM-Gruppenmitgliedschaft und geerbte Zugriffsberechtigungen. |
| Solutions Architect – Associate (SAA-C03) | Aufgabe 1.1 | IAM-Gruppenmitgliedschaft und geerbte Zugriffsberechtigungen. |
| Developer – Associate (DVA-C02) | Aufgabe 2.1 | IAM-Gruppenmitgliedschaft und geerbte Zugriffsberechtigungen. |
| CloudOps Engineer – Associate (SOA-C03) | Aufgabe 4.1 | IAM-Gruppenmitgliedschaft und geerbte Zugriffsberechtigungen. |
| Security – Specialty (SCS-C03) | Aufgabe 4.2 | Grundlagenübung: IAM-Gruppenmitgliedschaft und geerbte Zugriffsberechtigungen. |
| Data Engineer – Associate (DEA-C01) | Aufgabe 4.1 | Grundlagenübung: IAM-Gruppenmitgliedschaft und geerbte Zugriffsberechtigungen. |
| DevOps Engineer – Professional (DOP-C02) | Aufgabe 6.1 | Grundlagenübung: IAM-Gruppenmitgliedschaft und geerbte Zugriffsberechtigungen. |
| Solutions Architect – Professional (SAP-C02) | Aufgabe 2.3 | Grundlagenübung: IAM-Gruppenmitgliedschaft und geerbte Zugriffsberechtigungen. |
Lab-Überblick

Erstelle ein Team und eine gemeinsame Richtlinie
In diesem Schritt erstellst du eine leere Gruppe und fügst eine Inline-Richtlinie an. Eine Gruppe ist ein Objekt zur Berechtigungsverwaltung und keine neue Identität für Anfragen. Bestätige zuerst den Operator und Alice mit STS; die ARNs sollten mit user/iam02-operator beziehungsweise user/alice enden.
Das Team braucht die Leseberechtigung, die du für einen Benutzer geübt hast. Weise sie einmal einer Gruppe zu und ändere deren Mitglieder beim Wechsel der Zuständigkeit zwischen Analysten. Bericht und Richtlinie bleiben bei der Übergabe gleich; der Benutzer, der die Berechtigung erbt, ändert sich.
Eine IAM-Gruppe fasst Benutzer zusammen, damit sie ihre Berechtigungen erben. Sie hat keine Zugangsdaten und kann sich weder anmelden noch selbst eine Rolle übernehmen. Diese Übung behandelt eine bestehende IAM-Benutzeranordnung; menschlicher Produktionszugriff verwendet üblicherweise Föderation und temporäre Rollen.
cd /home/labex/project
aws sts get-caller-identity --query Arn --output text
aws sts get-caller-identity --profile alice --query Arn --output text
Alice hat zunächst keine Berechtigung, den vorhandenen Bericht zu lesen. Der Operator hat seine Vorbereitung vorgenommen. Teste vor der Zugriffsgewährung:
aws s3api get-object --profile alice --bucket labex-iam02-reports --key reports/today.txt before.txt || true
Erwarte AccessDenied. || true lässt einen absichtlich fehlschlagenden Befehl in einer eingefügten Folge enden; es verwandelt einen Verbindungsfehler nicht in einen Berechtigungsnachweis.
Erstelle ReportTeam. Dies erstellt noch keine Mitglieder und gewährt keine Berechtigungen.
aws iam create-group --group-name ReportTeam
Schreibe eine Richtlinie, die nur GetObject im Berichtspräfix dieses Buckets erlaubt. Eine Objekt-ARN enthält ihren Schlüssel; der Platzhalter nach reports/ erfasst keine Gehaltsdaten und keinen anderen Bucket. Ein passendes Allow erlaubt eine Anfrage, solange kein anwendbares explizites Deny es überschreibt.
cat > team-policy.json <<'JSON'
{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Action":"s3:GetObject","Resource":"arn:aws:s3:::labex-iam02-reports/reports/*"}]}
JSON
put-group-policy speichert diese Inline-Richtlinie direkt auf der Gruppe. Sie gilt für Gruppenmitglieder; das alleinige Bearbeiten der lokalen Datei hat keine Auswirkung.
aws iam put-group-policy \
--group-name ReportTeam \
--policy-name ReportRead \
--policy-document file://team-policy.json
aws iam get-group --group-name ReportTeam --query 'Users[].UserName'
aws iam get-group-policy \
--group-name ReportTeam \
--policy-name ReportRead \
--query PolicyDocument
Die Mitgliederliste ist leer. Alice wird weiterhin abgewiesen, weil keine Mitgliedschaft sie mit der Richtlinie verbindet.
aws s3api get-object --profile alice --bucket labex-iam02-reports --key reports/today.txt still-denied.txt || true
Füge Alice hinzu und teste die Berechtigungsgrenze
In diesem Schritt verbindest du Alice mit der Gruppenberechtigung und vergleichst ihre tatsächlichen Anfragen mit Bob und dem Außenseiter. add-user-to-group ändert die Mitgliedschaft; es erstellt keine Zugangsdaten und gibt sie nicht aus.

aws iam add-user-to-group --group-name ReportTeam --user-name alice
aws iam get-group --group-name ReportTeam --query 'Users[].UserName'
aws iam list-groups-for-user --user-name alice --query 'Groups[].GroupName'
Erwarte Alice in ReportTeam und ReportTeam in Alices Gruppenliste. Verwende jetzt Alices Zugangsdaten, um die Berichtsbytes anzufordern.
aws s3api get-object \
--profile alice \
--bucket labex-iam02-reports \
--key reports/today.txt alice-report.txt
cat alice-report.txt
Erwarte Daily orders: 145. Dieselbe Berichtsanfrage von Bob und dem Außenseiter muss fehlschlagen, weil sie keine Mitglieder sind.
aws s3api get-object --profile bob --bucket labex-iam02-reports --key reports/today.txt bob-denied.txt || true
aws s3api get-object --profile outsider --bucket labex-iam02-reports --key reports/today.txt outsider-denied.txt || true
Alice wird auch außerhalb des Ressourcenumfangs der Gruppe weiterhin abgewiesen. Diese vorhandenen Objekte dienen zur Diagnose der Autorisierung und nicht eines fehlenden Schlüssels.
aws s3api get-object --profile alice --bucket labex-iam02-reports --key private/payroll.txt private-denied.txt || true
aws s3api get-object --profile alice --bucket labex-iam02-reference --key reference.txt reference-denied.txt || true
Erwarte AccessDenied für alle vier negativen Anfragen. AWS View zeigt die Mitgliedschaft und stellt tatsächliche GetObject-Anfragen für jeden Benutzer; klappe den heutigen Bericht auf, um Alices Bytes zu untersuchen.
Übertrage die Mitgliedschaft und prüfe den früheren Zugriff erneut
In diesem Schritt überträgst du die Berichtsverantwortung auf Bob und bestätigst, dass Alice die geerbte Berechtigung verliert. Das Entfernen einer Gruppenmitgliedschaft entfernt die von dieser Gruppe geerbten Berechtigungen. Es widerruft keine anderen Berechtigungen, die ein Benutzer möglicherweise hat; diese vorbereiteten Benutzer haben keine.
Füge zuerst Bob hinzu und entferne dann Alice. Solange beide Mitglieder sind, nutzen die zwei Benutzer dieselbe Gruppenrichtlinie; nach der Entfernung sollte nur Bob sie erben.
aws iam add-user-to-group --group-name ReportTeam --user-name bob
aws iam remove-user-from-group --group-name ReportTeam --user-name alice
aws iam get-group --group-name ReportTeam --query 'Users[].UserName'
Erwarte nur Bob. Lies den Bericht als Bob und wiederhole dann die identische Anfrage als Alice.
aws s3api get-object \
--profile bob \
--bucket labex-iam02-reports \
--key reports/today.txt bob-report.txt
cat bob-report.txt
aws s3api get-object --profile alice --bucket labex-iam02-reports --key reports/today.txt former-member.txt || true
aws s3api get-object --profile outsider --bucket labex-iam02-reports --key reports/today.txt outsider-denied.txt || true
Bob erhält 145; Alice und der Außenseiter erhalten AccessDenied. Zugangsdaten wählen den Aufrufer aus, während aktuell wirksame Berechtigungen bestimmen, ob seine Anfrage erfolgreich ist.
Die Gruppe erlaubt Lesen und nicht Schreiben. Versuche den bereitgestellten Ersatz als Bob und bestätige, dass der ursprüngliche Bericht weiterhin existiert.
aws s3api put-object --profile bob --bucket labex-iam02-reports --key reports/today.txt --body upload.txt || true
aws s3api get-object \
--profile bob \
--bucket labex-iam02-reports \
--key reports/today.txt bob-report.txt
cat bob-report.txt
Erwarte PutObject AccessDenied, gefolgt von unverändertem Daily orders: 145. AWS View zeigt jetzt Bob als Mitglied und Alice als abgewiesen; die Gruppenrichtlinie selbst hat sich nicht geändert.

Entferne das Team und bereinige seine Daten
In diesem Schritt entziehst du Bobs geerbten Zugriff, bevor du die Gruppe und die eigenen Berichtsdaten löschst. IAM verlangt vor einer Gruppenlöschung, dass sie keine Mitglieder und keine angefügten Richtlinien hat. Lasse das unabhängige ReferenceTeam und seine outsider-Mitgliedschaft unberührt.
aws iam remove-user-from-group --group-name ReportTeam --user-name bob
aws s3api get-object --profile bob --bucket labex-iam02-reports --key reports/today.txt revoked.txt || true
Erwarte AccessDenied, während der Bericht noch existiert. Entferne die Inline-Richtlinie und dann die leere Gruppe.
aws iam delete-group-policy --group-name ReportTeam --policy-name ReportRead
aws iam delete-group --group-name ReportTeam
aws iam list-groups --query 'Groups[].GroupName'
aws iam get-group --group-name ReferenceTeam --query 'Users[].UserName'
Nur ReferenceTeam bleibt erhalten und enthält weiterhin outsider. Lösche genau die zwei Objektschlüssel der Übung und prüfe vor dem Löschen des Berichts-Buckets, dass er leer ist.
aws s3api delete-object --bucket labex-iam02-reports --key reports/today.txt
aws s3api delete-object --bucket labex-iam02-reports --key private/payroll.txt
aws s3api list-objects-v2 --bucket labex-iam02-reports
Prüfe, dass KeyCount 0 ist und keine Objekteinträge in Contents übrig sind.
aws s3api delete-bucket --bucket labex-iam02-reports
aws s3api list-buckets --query 'Buckets[].Name'
aws s3api get-object --bucket labex-iam02-reference --key reference.txt reference.txt
cat reference.txt
Nur der Referenz-Bucket mit Platform reference: keep bleibt erhalten. Erfolgreiche API-Abfragen belegen die Bereinigung; Netzwerkfehler tun dies nicht. AWS View zeigt Group removed und Reports bucket removed. Vorbereitete Benutzer und Referenzen werden beim Ende der entbehrlichen Umgebung entfernt; die vom Lernenden erstellte Gruppe und ihre Berechtigungen sind entfernt.
Zusammenfassung
Du hast einer Gruppe eine Richtlinie zugewiesen, nachgewiesen, dass die Mitgliedschaft Berichtszugriff gewährt, diesen Zugriff übertragen und bestätigt, dass das ehemalige Mitglied und der Außenseiter weiterhin abgewiesen wurden. Gruppenmitgliedschaft ist eine Berechtigungsquelle; prüfe alle anwendbaren Richtlinien, wenn eine Identität unerwartet weiterhin autorisiert bleibt. Du hast den Zugriff vor der begrenzten Bereinigung entzogen und die unbeteiligte Gruppe und ihre Daten erhalten.
Weitere Informationen bietet die AWS-Dokumentation: IAM-Benutzergruppen und geerbte Berechtigungen.



