Beispiel 1: Bucket-Eigentümer erteilt seinen Benutzern Bucket-Berechtigungen
Wichtig
Das Erteilen von Berechtigungen für IAM-Rollen ist eine bessere Vorgehensweise als das Erteilen von Berechtigungen für einzelne Benutzer. Weitere Informationen zum Erteilen von Berechtigungen für IAM-Rollen finden Sie unter Verständnis von kontoübergreifenden Berechtigungen und der Verwendung von IAM-Rollen.
Themen
In dieser Anleitung besitzt ein AWS-Konto einen Bucket und das Konto umfasst einen IAM-Benutzer. Standardmäßig hat der Benutzer keine Berechtigungen. Damit der Benutzer alle Aufgaben ausführen kann, muss das übergeordnete Konto ihm Berechtigungen erteilen. Der Bucket-Eigentümer und das übergeordnete Konto sind identisch. Um den Benutzern Berechtigungen für den Bucket zu gewähren, kann das AWS-Konto daher eine Bucket-Richtlinie, eine Benutzerrichtlinie oder beides verwenden. Der Kontobesitzer gewährt einige Berechtigungen unter Verwendung einer Bucket-Richtlinie und andere Berechtigungen unter Verwendung einer Benutzerrichtlinie.
Die folgenden Schritte fasen das detaillierte Beispiel zusammen:
-
Der Kontoadministrator erstellt eine Bucket-Richtlinie, die dem Benutzer verschiedene Berechtigungen erteilt.
-
Der Kontoadministrator weist dem Benutzer eine Benutzerrichtlinie zu, die ihm zusätzliche Berechtigungen erteilt.
-
Anschließend probiert der Benutzer Berechtigungen aus, die über die Bucket-Richtlinie und die Benutzerrichtlinie erteilt wurden.
Für dieses Beispiel benötigen Sie ein AWS-Konto. Anstatt die Anmeldeinformationen des Root-Benutzers für das Konto zu verwenden, erstellen Sie einen Administrator-Benutzer (siehe Informationen zur Verwendung eines Administratorbenutzers zum Erstellen von Ressourcen und Erteilen von Berechtigungen). Wir beziehen uns auf das AWS-Konto und den Administratorbenutzer wie in der folgenden Tabelle dargestellt.
| Konto-ID | Konto bezeichnet als | Administratorbenutzer im Konto |
|---|---|---|
|
|
Konto A |
AccountAadmin |
Anmerkung
Der Administratorbenutzer in diesem Beispiel ist AccountAadmin, der sich auf Account A und nicht auf AccountAdmin bezieht.
Alle Aufgaben in Verbindung mit dem Erstellen von Benutzern und Gewähren von Berechtigungen werden in der ausgeführ AWS-Managementkonsole. Zum Überprüfen der Berechtigungen verwendet das detaillierte Beispiel die Befehlszeilen-Tools, AWS Command Line Interface (AWS CLI) und AWS Tools for Windows PowerShell, sodass Sie keinen Code zu schreiben brauchen.
Vorbereitung auf den Walkthrough
-
Stellen Sie sicher, dass Sie ein AWS-Konto haben und dass dieses einen Benutzer mit Administratorrechten enthält.
-
Melden Sie sich nach Bedarf für ein AWS-Konto an. Wir bezeichnen dieses Konto als Konto A.
-
Navigieren Sie zu https://aws.amazon.com/s3
und klicken Sie auf Ein AWS-Konto erstellen. -
Folgen Sie den Anweisungen auf dem Bildschirm.
AWS wird per E-Mail von uns benachrichtigt, sobald Ihr Konto aktiv ist und verwendet werden kann.
-
-
Erstellen Sie in Konto A den Administratorbenutzer
AccountAadmin. Melden Sie sich mit den Anmeldeinformationen von Konto A in der IAM-Konsolean und gehen Sie wie folgt vor: -
Erstellen Sie den Benutzer
AccountAadminund schreiben Sie sich die Sicherheitsanmeldeinformationen für den Benutzer auf.Anweisungen finden Sie unter Erstellen eines IAM-Benutzers in Ihrem AWS-Konto im IAM-Benutzerhandbuch.
-
Erteilen Sie dem AccountAadmin Administratorberechtigungen, indem Sie ihm eine Benutzerrichtlinie zuordnen, die ihm vollen Zugriff bietet.
Weitere Informationen finden Sie unter Verwalten von IAM-Richtlinien im IAM-Benutzerhandbuch.
-
Notieren Sie sich die IAM-Benutzer-Anmelde-URL für AccountAadmin. Sie brauchen diese URL, wenn Sie sich bei der anmelde AWS-Managementkonsole. Weitere Informationen dazu, wo Sie die Anmelde-URL finden, finden Sie unter Anmelden bei AWS-Managementkonsole als IAM-Benutzer im IAM-Benutzerhandbuch. Notieren Sie die URLs für alle Konten.
-
-
-
Richten Sie entweder die AWS CLI oder AWS Tools for Windows PowerShell ein. Stellen Sie sicher, dass Sie die Administratoranmeldeinformationen wie folgt speichern:
-
Wenn Sie die AWS CLI verwenden, erstellen Sie ein Profil,
AccountAadmin, in der Konfigurationsdatei. -
Wenn Sie AWS Tools for Windows PowerShell verwenden, stellen Sie sicher, dass sie die Anmeldeinformationen für die Sitzung als
AccountAadminspeichern.
Detaillierte Anweisungen finden Sie unter Einrichten der Tools für die Anleitungen.
-
Schritt 1: Erstellen von Ressourcen in Konto A und Erteilen von Berechtigungen
Melden Sie sich mit den Anmeldedaten von Benutzer AWS-Managementkonsole in Konto A und der speziellen IAM-Benutzer-Anmelde-URL bei AccountAadmin an und führen Sie Folgendes aus:
-
Erstellen von Ressourcen eines Buckets und eines IAM-Benutzers
-
Erstellen Sie in der Amazon-S3-Konsole einen Bucket. Notieren Sie sich die AWS-Region, in der Sie den Bucket erstellt haben. Detaillierte Anweisungen finden Sie unter Erstellen eines Allzweck-Buckets.
-
Führen Sie in der IAM-Konsole
die folgenden Schritte durch: -
Erstellen Sie einen Benutzer mit dem Namen Dave.
Detaillierte Anleitungen finden Sie unter Erstellen von IAM-Benutzern (Konsole) im IAM-Benutzerhandbuch.
-
Notieren Sie sich die
UserDave-Anmeldeinformationen. -
Notieren Sie sich den Amazon-Ressourcennamen (ARN) für den Benutzer Dave. Wählen Sie in der IAM-Konsole
den Benutzer aus. Sie finden den ARN des Benutzers auf der Registerkarte Zusammenfassung.
-
-
-
Erteilen Sie Berechtigungen.
Der Bucket-Eigentümer und das übergeordnete Konto, zu dem der Benutzer gehört, sind identisch, das AWS-Konto kann deshalb Benutzer-Berechtigungen unter Verwendung einer Bucket-Richtlinie, einer Benutzerrichtlinie oder beidem erteilen. In diesem Beispiel machen Sie beides. Wenn das Objekt auch demselben Konto gehört, kann der Bucket-Eigentümer in der Bucket-Richtlinie (oder einer IAM-Richtlinie) Objektberechtigungen erteilen.
-
Fügen Sie in der Amazon-S3-Konsole die folgende Bucket-Richtlinie an
awsexamplebucket1an.Die Richtlinie enthält zwei Anweisungen.
-
Die erste Anweisung erteilt Dave Berechtigungen für die Bucket-Operationen
s3:GetBucketLocationunds3:ListBucket. -
Die zweite Anweisung erteilt die
s3:GetObject-Berechtigung. Konto A gehört auch das Objekt, deshalb kann der Kontoadministrator dies3:GetObject-Berechtigung erteilen.
In der
Principal-Anweisung wird Dave durch seinen Benutzer-ARN identifiziert. Weitere Informationen zu Richtlinienelementen finden Sie unter Richtlinien und Berechtigungen in Amazon S3. -
-
Erstellen Sie mithilfe der folgenden Richtlinie eine Inlinerichtlinie für den Benutzer Dave. Die Richtlinie erteilt dem Benutzer Dave die
s3:PutObject-Berechtigung. Sie müssen die Richtlinie aktualisieren, indem Sie Ihren Bucket-Namen angeben.Weitere Informationen finden Sie unter Verwalten von IAM-Richtlinien im IAM-Benutzerhandbuch. Beachten Sie, dass Sie sich mit den Anmeldeinformationen von Konto A an der Konsole anmelden müssen.
-
Schritt 2: Testen der Berechtigungen
Überprüfen Sie unter Verwendung der Anmeldeinformationen von Dave, ob die Berechtigungen funktionieren. Sie haben die Wahl zwischen den folgenden beiden Verfahren.
Testen von Berechtigungen mit der AWS CLI
-
Aktualisieren Sie die AWS CLI-Konfigurationsdatei, indem Sie das folgende
UserDaveAccountA-Profil hinzufügen. Weitere Informationen finden Sie unter Einrichten der Tools für die Anleitungen.[profile UserDaveAccountA] aws_access_key_id =access-keyaws_secret_access_key =secret-access-keyregion =us-east-1 -
Überprüfen Sie, ob Dave Vorgänge ausführen kann, für die ihm in der Benutzerrichtlinie Berechtigungen erteilt wurden. Laden Sie ein Beispielobjekt unter Verwendung des folgenden AWS CLI-Befehls
put-objecthoch.Der Parameter
--bodyim Befehl identifiziert die hochzuladende Quelldatei. Wenn sich die Datei beispielsweise im Stammverzeichnis des Laufwerks C: auf einem Windows-Rechner befindet, geben Siec:\HappyFace.jpgan. Der Parameter--keygibt den Schlüsselnamen für das Objekt an.aws s3api put-object --bucketawsexamplebucket1--keyHappyFace.jpg--bodyHappyFace.jpg--profile UserDaveAccountAFühren Sie den folgenden AWS CLI-Befehl aus, um das Objekt zu erhalten.
aws s3api get-object --bucket awsexamplebucket1 --keyHappyFace.jpgOutputFile.jpg--profile UserDaveAccountA
Testen von Berechtigungen mit der AWS Tools for Windows PowerShell
-
Speichern Sie die Anmeldeinformationen von Dave als
AccountADave. Anschließend verwenden Sie diese Anmeldeinformationen fürPUTundGETfür ein Objekt.set-awscredentials -AccessKeyAccessKeyID-SecretKeySecretAccessKey-storeas AccountADave -
Laden Sie ein Beispielobjekt mit dem AWS Tools for Windows PowerShell-Befehl
Write-S3Objecthoch. Verwenden Sie dazu die gespeicherten Anmeldeinformationen des Benutzers Dave.Write-S3Object -bucketnameawsexamplebucket1-keyHappyFace.jpg-fileHappyFace.jpg-StoredCredentials AccountADaveLaden Sie das zuvor hochgeladene Objekt herunter.
Read-S3Object -bucketnameawsexamplebucket1-keyHappyFace.jpg-fileOutput.jpg-StoredCredentials AccountADave