Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Beispiel 2: Bucket-Eigentümer erteilt kontoübergreifende Bucket-Berechtigungen
Wichtig
Das Erteilen von Berechtigungen für IAM-Rollen ist eine bessere Vorgehensweise als die Erteilung von Berechtigungen an einzelne Benutzer. Weitere Informationen zur Vorgehensweise finden Sie unter Hintergrund: Kontoübergreifende Berechtigungen und die Verwendung von IAM-Rollen.
Themen
Ein AWS-Konto– z. B. Konto A – kann einem anderen AWS-Konto, Konto B, die Berechtigung erteilen, auf seine Ressourcen wie Buckets und Objekte zuzugreifen. Konto B kann diese Berechtigungen an Benutzer in seinem Konto delegieren. In diesem Beispielszenario erteilt ein Bucket-Eigentümer einem anderen Konto eine kontenübergreifende Berechtigung, um bestimmte Bucket-Vorgänge auszuführen.
Anmerkung
Konto A kann einem Benutzer in Konto B unter Verwendung einer Bucket-Richtlinie auch direkt Berechtigungen erteilen. Der Benutzer braucht dennoch eine Berechtigung von seinem übergeordneten Konto, Konto B, zu dem der Benutzer gehört, auch wenn Konto B keine Berechtigungen von Konto A erhalten hat. Solange der Benutzer die Berechtigung von dem Ressourcen-Eigentümer und dem übergeordneten Konto hat, kann der Benutzer auf die Ressource zugreifen.
Nachfolgend finden Sie eine kurze Zusammenfassung der wichtigsten Details:
-
Der Administrator-Benutzer von Konto A ordnet eine Bucket-Richtlinie zu, die Konto B kontenübergreifende Berechtigungen erteilt, um bestimmte Bucket-Vorgänge auszuführen.
Beachten Sie, dass der Administrator-Benutzer in Konto B die Berechtigungen automatisch erbt.
-
Der Administrator-Benutzer von Konto B ordnet dem Benutzer eine Benutzerrichtlinie zu, die die Berechtigungen an den Benutzer delegiert, die er von Konto A erhalten hat.
-
Der Benutzer in Konto B überprüft die Berechtigungen, indem er auf ein Objekt in dem Bucket zugreift, das Konto A gehört.
Für dieses Beispiel benötigen Sie zwei Konten. Die folgende Tabelle zeigt, wie wir auf diese Konten und die Administrator-Benutzer darin verweisen. Laut den IAM-Richtlinien (siehe Informationen zur Verwendung eines Administratorbenutzers zum Erstellen von Ressourcen und Erteilen von Berechtigungen) verwenden wir in dieser schrittweisen Anleitung nicht die Anmeldeinformationen des Root-Benutzers. Stattdessen erstellen Sie einen Administrator-Benutzer in jedem Konto, und verwenden dessen Anmeldeinformationen, um Ressourcen zu erstellen und ihnen Berechtigungen zu erteilen.
AWS-Konto ID | Konto bezeichnet als | Administratorbenutzer im Konto |
---|---|---|
|
Konto A |
AccountAadmin |
|
Konto B |
AccountBadmin |
Alle Aufgaben in Verbindung mit dem Erstellen von Benutzern und Gewähren von Berechtigungen werden in der AWS Management Console ausgeführt. Um die Berechtigungen zu überprüfen, verwendet die Anleitung die Befehlszeilen-Tools ( AWS Command Line Interface CLI) und AWS Tools for Windows PowerShell, sodass Sie keinen Code schreiben müssen.
Schritt 0: Vorbereitung auf den Walkthrough
-
Stellen Sie sicher, dass Sie zwei haben AWS-Konten und dass jedes Konto einen Administratorbenutzer hat, wie in der Tabelle im vorherigen Abschnitt gezeigt.
-
Melden Sie sich AWS-Konto bei Bedarf für ein an.
-
Melden Sie sich mit den Anmeldeinformationen für Konto A an der IAM-Konsole
an und erstellen Sie wie folgt den Administrator-Benutzer: -
Erstellen Sie einen Benutzer AccountAadmin und notieren Sie sich die Sicherheitsanmeldeinformationen. Detaillierte Anweisungen finden Sie unter Erstellen eines IAM-Benutzers in Ihrem AWS-Konto im IAM-Benutzerhandbuch.
-
Erteilen Sie AccountAadmin Administratorrechte, indem Sie eine Benutzerrichtlinie anfügen, die vollen Zugriff gewährt. Weitere Informationen finden Sie unter Arbeiten mit Richtlinien im IAM-Benutzerhandbuch.
-
-
Während Sie in der IAM-Konsole arbeiten, schreiben Sie sich die URL für die Anmeldung des IAM-Benutzers auf dem Dashboard auf. Alle Benutzer in diesem Konto müssen diese URL für die Anmeldung an der AWS Management Console verwenden.
Weitere Informationen finden Sie unter Wie sich Benutzer in Ihrem Konto anmelden im IAM-Benutzerhandbuch.
-
Wiederholen Sie den vorherigen Schritt mit den Anmeldeinformationen von Konto B und erstellen Sie den Administratorbenutzer AccountBadmin.
-
-
Richten Sie entweder die AWS Command Line Interface (CLI) oder die ein AWS Tools for Windows PowerShell. Stellen Sie sicher, dass Sie die Anmeldeinformationen speichern, wie folgt:
-
Wenn Sie die verwenden AWS CLI, erstellen Sie zwei Profile, AccountAadmin und AccountBadmin, in der Konfigurationsdatei.
-
Wenn Sie die verwenden AWS Tools for Windows PowerShell, stellen Sie sicher, dass Sie Anmeldeinformationen für die Sitzung als AccountAadmin und speichern AccountBadmin.
Anweisungen finden Sie unter Einrichten der Tools für die beispielhaften Walkthroughs.
-
-
Speichern Sie die Anmeldeinformationen des Administrator-Benutzers, auch als Profile bezeichnet. Sie können den Profilnamen verwenden, statt für jeden eingegebenen Befehl Anmeldeinformationen anzugeben. Weitere Informationen finden Sie unter Einrichten der Tools für die beispielhaften Walkthroughs.
-
Fügen Sie der AWS CLI Anmeldeinformationsdatei für jeden der Administratorbenutzer in den beiden Konten Profile hinzu.
[AccountAadmin] aws_access_key_id =
access-key-ID
aws_secret_access_key =secret-access-key
region = us-east-1 [AccountBadmin] aws_access_key_id =access-key-ID
aws_secret_access_key =secret-access-key
region = us-east-1 -
Wenn Sie die verwenden AWS Tools for Windows PowerShell
set-awscredentials –AccessKey
AcctA-access-key-ID
–SecretKeyAcctA-secret-access-key
–storeas AccountAadmin set-awscredentials –AccessKeyAcctB-access-key-ID
–SecretKeyAcctB-secret-access-key
–storeas AccountBadmin
-
Schritt 1: Erledigen der Aufgaben von Konto A
Schritt 1.1: Anmelden bei der AWS Management Console
Melden Sie sich unter Verwendung der URL für die Anmeldung als IAM-Benutzer für Konto A zuerst AWS Management Console als AccountAadmin Benutzer bei der an. Dieser Benutzer erstellt einen Bucket und ordnet ihm eine Richtlinie zu.
Schritt 1.2: Erstellen eines Buckets
-
Erstellen Sie in der Amazon-S3-Konsole einen Bucket. Diese Übung geht davon aus, dass der Bucket in der Region USA Ost (Nord-Virginia) erstellt wurde und
heißt.DOC-EXAMPLE-BUCKET
Anweisungen finden Sie unter Erstellen eines Buckets.
-
Hochladen eines Beispielobjekts in den Bucket.
Anweisungen finden Sie unter Schritt 2: Hochladen eines Objekts in Ihren Bucket.
Schritt 1.3: Zuordnen einer Bucket-Richtlinie, um Konto B kontoübergreifende Berechtigungen zu erteilen
Die Bucket-Richtlinie gewährt Konto B die s3:ListBucket
Berechtigungen s3:GetLifecycleConfiguration
und . Es wird davon ausgegangen, dass Sie immer noch mit AccountAadmin Benutzeranmeldeinformationen bei der Konsole angemeldet sind.
-
Weisen Sie
die folgende Bucket-Richtlinie zu. Die Richtlinie erteilt Konto B die Berechtigung für die AktionenDOC-EXAMPLE-BUCKET
s3:GetLifecycleConfiguration
unds3:ListBucket
.Anweisungen finden Sie unter Hinzufügen einer Bucket-Richtlinie mit der Amazon-S3-Konsole.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Example permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
AccountB-ID
:root" }, "Action": [ "s3:GetLifecycleConfiguration", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET
" ] } ] } -
Überprüfen, ob Konto B (und damit der Administrator-Benutzer) die Vorgänge ausführen kann.
-
Verwenden der AWS CLI
aws s3 ls s3://
DOC-EXAMPLE-BUCKET
--profile AccountBadmin aws s3api get-bucket-lifecycle-configuration --bucketDOC-EXAMPLE-BUCKET
--profile AccountBadmin -
Verwenden der AWS Tools for Windows PowerShell
get-s3object -BucketName
DOC-EXAMPLE-BUCKET
-StoredCredentials AccountBadmin get-s3bucketlifecycleconfiguration -BucketNameDOC-EXAMPLE-BUCKET
-StoredCredentials AccountBadmin
-
Schritt 2: Erledigen der Aufgaben von Konto B
Jetzt erstellt der Administrator von Konto B einen Benutzer Dave und delegiert an Dave die Berechtigungen, die er von Konto A erhalten hat.
Schritt 2.1: Anmelden bei der AWS Management Console
Melden Sie sich unter Verwendung der URL für die Anmeldung als IAM-Benutzer für Konto B zuerst AWS Management Console als AccountBadmin Benutzer bei der an.
Schritt 2.2: Erstellen des Benutzers Dave in Konto B
Erstellen Sie in der IAM-Konsole
Detaillierte Anleitungen finden Sie unter Creating IAM Users (AWS Management Console) (Erstellen von IAM-Benutzern) im IAM-Benutzerhandbuch.
Schritt 2.3: Delegieren von Berechtigungen an den Benutzer Dave
Erstellen Sie mithilfe der folgenden Richtlinie eine Inlinerichtlinie für den Benutzer Dave. Sie müssen die Richtlinie aktualisieren, indem Sie Ihren Bucket-Namen angeben.
Es wird davon ausgegangen, dass Sie mit AccountBadmin Benutzeranmeldeinformationen bei der Konsole angemeldet sind.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Example", "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::
DOC-EXAMPLE-BUCKET
" ] } ] }
Weitere Informationen finden Sie unter Verwenden von eingebundenen Richtlinien im IAM-Benutzerhandbuch.
Schritt 2.4: Testen der Berechtigungen
Jetzt kann Dave in Konto B den Inhalt von
auflisten, der Konto A gehört. Sie können die Berechtigungen mit einem der folgenden Verfahren überprüfen. DOC-EXAMPLE-BUCKET
Testen mit der AWS CLI
-
Fügen Sie das UserDave Profil der AWS CLI Konfigurationsdatei hinzu. Weitere Informationen zur Config-Datei finden Sie unte Einrichten der Tools für die beispielhaften Walkthroughs.
[profile UserDave] aws_access_key_id =
access-key
aws_secret_access_key =secret-access-key
region =us-east-1
-
Geben Sie an der Eingabeaufforderung den folgenden AWS CLI Befehl ein, um zu überprüfen, ob Dave jetzt eine Objektliste von der abrufen kann, die Konto A
gehört. Beachten Sie, dass der Befehl das UserDave Profil angibt.DOC-EXAMPLE-BUCKET
aws s3 ls s3://
--profile UserDaveDOC-EXAMPLE-BUCKET
Dave besitzt keine anderen Berechtigungen. Wenn er also einen anderen Vorgang versucht, z. B. die folgende Bucket-Lebenszykluskonfiguration abzurufen, gibt Amazon S3 die Berechtigung verweigert zurück.
aws s3api get-bucket-lifecycle-configuration --bucket
DOC-EXAMPLE-BUCKET
--profile UserDave
Testen mit AWS Tools for Windows PowerShell
-
Speichern Sie die Anmeldeinformationen von Dave als AccountBDave.
set-awscredentials -AccessKey AccessKeyID -SecretKey SecretAccessKey -storeas AccountBDave
-
Probieren Sie den Befehl List Bucket aus.
get-s3object -BucketName
DOC-EXAMPLE-BUCKET
-StoredCredentials AccountBDaveDave besitzt keine anderen Berechtigungen. Wenn er also einen anderen Vorgang versucht, z. B. die folgende Bucket-Lebenszykluskonfiguration abzurufen, gibt Amazon S3 die Berechtigung verweigert zurück.
get-s3bucketlifecycleconfiguration -BucketName
DOC-EXAMPLE-BUCKET
-StoredCredentials AccountBDave
Schritt 3: (Optional) Versuchen Sie eine explizite Zugriffsverweigerung
Sie können Berechtigungen über eine ACL, eine Bucket-Richtlinie oder eine Benutzerrichtlinie erhalten. Wenn es jedoch eine explizite Zugriffsverweigerung gibt, die entweder über eine Bucket-Richtlinie oder ein Benutzerprofil festgelegt wurde, hat die explizite Zugriffsverweigerung Vorrang gegenüber allen anderen Berechtigungen. Für den Test aktualisieren wir die Bucket-Richtlinie und verweigern Konto B explizit die s3:ListBucket
-Berechtigung. Die Richtlinie erteilt auch die s3:ListBucket
-Berechtigung, aber die explizite Zugriffsverweigerung hat Vorragen, und Konto B oder die Benutzer in Konto B können keine Objekte in
auflisten.DOC-EXAMPLE-BUCKET
-
Ersetzen Sie mithilfe der Anmeldeinformationen des Benutzers AccountAadmin in Konto A die Bucket-Richtlinie durch Folgendes.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Example permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
AccountB-ID
:root" }, "Action": [ "s3:GetLifecycleConfiguration", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET
" ] }, { "Sid": "Deny permission", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::AccountB-ID
:root" }, "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET
" ] } ] } -
Wenn Sie nun versuchen, eine Bucket-Liste mit - AccountBadmin Anmeldeinformationen abzurufen, wird der Zugriff verweigert.
-
Verwenden der AWS CLI:
aws s3 ls s3://
DOC-EXAMPLE-BUCKET
--profile AccountBadmin -
Verwenden der AWS Tools for Windows PowerShell:
get-s3object -BucketName
DOC-EXAMPLE-BUCKET
-StoredCredentials AccountBDave
-
Schritt 4: Bereinigen
-
Nachdem Sie mit den Tests fertig sind, räumen Sie wie folgt auf.
-
Melden Sie sich mit den Anmeldeinformationen von Konto A bei der AWS Management Console (AWS Management Console
) an und gehen Sie wie folgt vor: -
Entfernen Sie in der Amazon-S3-Konsole die an
angefügte Bucket-Richtlinie. Löschen Sie in den Bucket Properties die Richtlinie im Abschnitt Permissions.DOC-EXAMPLE-BUCKET
-
Wenn der Bucket für diese Übung erstellt wurde, löschen Sie in der Amazon-S3-Konsole die Objekte und dann den Bucket.
-
Entfernen Sie in der IAM-Konsole
den AccountAadmin Benutzer.
-
-
-
Melden Sie sich mit den Anmeldeinformationen von Konto B bei der IAM-Konsole
an. Löschen Sie den Benutzer AccountBadmin. step-by-step Anweisungen finden Sie unter Löschen eines IAM-Benutzers im IAM-Benutzerhandbuch.