View a markdown version of this page

Beispiel 2: Bucket-Eigentümer erteilt kontoübergreifende Bucket-Berechtigungen - Amazon Simple Storage Service

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 Verständnis von kontoübergreifenden Berechtigungen und der Verwendung von IAM-Rollen.

Ein AWS-Konto— beispielsweise Konto A — kann einem anderen Konto, Konto B AWS-Konto, die Erlaubnis gewähren, 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 vom Ressourceneigentümer und dem übergeordneten Konto hat, kann der Benutzer auf die Ressource zugreifen.

Nachfolgend finden Sie eine kurze Zusammenfassung der wichtigsten Details:

Und AWS-Konto gewährt einem anderen die AWS-Konto Erlaubnis, auf seine Ressourcen zuzugreifen.
  1. 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.

  2. 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.

  3. 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 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

1111-1111-1111

Konto A

AccountAadmin

2222-2222-2222

Konto B

AccountBadmin

Alle Aufgaben in Verbindung mit dem Erstellen von Benutzern und Gewähren von Berechtigungen werden in der AWS-Managementkonsole ausgeführt. Um die Berechtigungen zu überprüfen, verwendet die exemplarische Vorgehensweise die Befehlszeilentools AWS Command Line Interface (CLI) und AWS Tools for Windows PowerShell, sodass Sie keinen Code schreiben müssen.

Vorbereitung auf den Walkthrough

  1. Stellen Sie sicher, dass Sie über zwei Konten verfügen AWS-Konten und dass jedes Konto einen Administratorbenutzer hat, wie in der Tabelle im vorherigen Abschnitt dargestellt.

    1. Melden Sie sich bei Bedarf für eine an AWS-Konto.

    2. Melden Sie sich mit den Anmeldeinformationen für Konto A an der IAM-Konsole an und erstellen Sie wie folgt den Administrator-Benutzer:

      1. Erstellen Sie den Benutzer AccountAadmin und schreiben Sie sich die Sicherheitsanmeldeinformationen auf. Anweisungen finden Sie unter Erstellen eines IAM-Benutzers in Ihrem AWS-Konto im IAM-Benutzerhandbuch.

      2. Gewähren Sie Administratorrechte für, AccountAadmin indem Sie eine Benutzerrichtlinie anhängen, die vollen Zugriff gewährt. Weitere Informationen finden Sie unter Arbeiten mit Richtlinien im IAM-Benutzerhandbuch.

    3. Notieren Sie sich die Sign-In IAM-Benutzer-URL im Dashboard, während Sie sich in der IAM-Konsole befinden. Alle Benutzer in diesem Konto müssen diese URL für die Anmeldung an der AWS-Managementkonsole verwenden.

      Weitere Informationen finden Sie unter Wie sich Benutzer in Ihrem Konto anmelden im IAM-Benutzerhandbuch.

    4. Wiederholen Sie den obigen Schritt unter Verwendung der Anmeldeinformationen von Konto B und erstellen Sie den Administrator-Benutzer AccountBadmin.

  2. Richten Sie entweder das AWS Command Line Interface (AWS CLI) oder das ein. AWS Tools for Windows PowerShell Stellen Sie sicher, dass Sie die Administratoranmeldeinformationen wie folgt speichern:

    • Wenn Sie das verwenden AWS CLI, erstellen Sie zwei Profile, AccountAadmin undAccountBadmin, in der Konfigurationsdatei.

    • Wenn Sie den verwenden AWS Tools for Windows PowerShell, stellen Sie sicher, dass Sie die Anmeldeinformationen für die Sitzung als AccountAadmin und speichernAccountBadmin.

    Detaillierte Anweisungen finden Sie unter Einrichten der Tools für die Anleitungen.

  3. 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 Anleitungen.

    1. Fügen Sie Profile in der Datei mit den AWS CLI Anmeldeinformationen für jeden der Administratorbenutzer AccountAadmin und AccountBadmin in den beiden Konten 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
    2. Wenn Sie die AWS Tools for Windows PowerShell verwenden, führen Sie den folgenden Befehl au.

      set-awscredentials –AccessKey AcctA-access-key-ID –SecretKey AcctA-secret-access-key –storeas AccountAadmin set-awscredentials –AccessKey AcctB-access-key-ID –SecretKey AcctB-secret-access-key –storeas AccountBadmin

Schritt 1: Erledigen der Aufgaben von Konto A

Schritt 1.1: Melden Sie sich bei AWS-Managementkonsole

Melden Sie sich zunächst mit der IAM-Benutzer-Anmelde-URL für Konto A beim as-Benutzer an AWS-Managementkonsole . AccountAadmin Dieser Benutzer erstellt einen Bucket und ordnet ihm eine Richtlinie zu.

Schritt 1.2: Erstellen eines Buckets

  1. Erstellen Sie in der Amazon-S3-Konsole einen Bucket. Bei dieser Übung wird davon ausgegangen, dass der Bucket im Osten der USA (Nord-Virginia) erstellt AWS-Region und benannt wurde. amzn-s3-demo-bucket

    Detaillierte Anweisungen finden Sie unter Erstellen eines Allzweck-Buckets.

  2. 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:GetLifecycleConfiguration und s3:ListBucket -Berechtigungen. Es wird davon ausgegangen, dass Sie immer noch mit AccountAadmin Benutzeranmeldeinformationen an der Konsole angemeldet sind.

  1. Weisen Sie amzn-s3-demo-bucket die folgende Bucket-Richtlinie zu. Die Richtlinie erteilt Konto B die Berechtigung für die Aktionen s3:GetLifecycleConfiguration und s3:ListBucket.

    Detaillierte Anweisungen finden Sie unter Hinzufügen einer Bucket-Richtlinie mit der Amazon-S3-Konsole.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "Example permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": [ "s3:GetLifecycleConfiguration", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ] } ] }
  2. Überprüfen Sie, ob Konto B (und damit sein Administratorbenutzer) die Operationen ausführen kann

    • Überprüfen Sie dies mit dem AWS CLI

      aws s3 ls s3://amzn-s3-demo-bucket --profile AccountBadmin aws s3api get-bucket-lifecycle-configuration --bucket amzn-s3-demo-bucket --profile AccountBadmin
    • Verifizieren Sie mit dem AWS Tools for Windows PowerShell

      get-s3object -BucketName amzn-s3-demo-bucket -StoredCredentials AccountBadmin get-s3bucketlifecycleconfiguration -BucketName amzn-s3-demo-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: Melden Sie sich bei AWS-Managementkonsole

Melden Sie sich zunächst mit der IAM-Benutzer-Anmelde-URL für Konto B beim as-Benutzer an AWS-Managementkonsole . AccountBadmin

Schritt 2.2: Erstellen des Benutzers Dave in Konto B

Erstellen Sie in der IAM-Konsole einen Benutzer, Dave.

Detaillierte Anleitungen finden Sie unter Erstellen von IAM-Benutzern (Konsole) 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 an der Konsole angemeldet sind.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "Example", "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ] } ] }

Weitere Informationen finden Sie unter Verwalten von IAM-Richtlinien im IAM-Benutzerhandbuch.

Schritt 2.4: Testen der Berechtigungen

Jetzt kann Dave in Konto B den Inhalt von amzn-s3-demo-bucket auflisten, der Konto A gehört. Sie können die Berechtigungen mit einem der folgenden Verfahren überprüfen.

Testen Sie die Berechtigungen mit dem AWS CLI
  1. Fügen Sie das UserDave Profil zur AWS CLI Konfigurationsdatei hinzu. Weitere Informationen zur Config-Datei finden Sie unter Einrichten der Tools für die Anleitungen.

    [profile UserDave] aws_access_key_id = access-key aws_secret_access_key = secret-access-key region = us-east-1
  2. Geben Sie in der Befehlszeile den folgenden AWS CLI Befehl ein, um zu überprüfen, ob Dave jetzt eine Objektliste aus dem amzn-s3-demo-bucket Konto A abrufen kann. Beachten Sie, dass der Befehl das UserDave Profil angibt.

    aws s3 ls s3://amzn-s3-demo-bucket --profile UserDave

    Dave besitzt keine anderen Berechtigungen. Wenn er also versucht, eine andere Operation auszuführen – zum Beispiel die folgende get-bucket-lifecycle-Konfiguration – gibt Amazon S3 die Meldung „Zugriff verweigert“ zurück.

    aws s3api get-bucket-lifecycle-configuration --bucket amzn-s3-demo-bucket --profile UserDave
Testen Sie die Berechtigungen mit AWS Tools for Windows PowerShell
  1. Speichern Sie die Anmeldeinformationen von Dave als AccountBDave.

    set-awscredentials -AccessKey AccessKeyID -SecretKey SecretAccessKey -storeas AccountBDave
  2. Probieren Sie den Befehl List Bucket aus.

    get-s3object -BucketName amzn-s3-demo-bucket -StoredCredentials AccountBDave

    Dave besitzt keine anderen Berechtigungen. Wenn er also versucht, eine andere Operation auszuführen, zum Beispiel die folgende get-s3bucketlifecycleconfiguration, gibt Amazon S3 die Meldung „Zugriff verweigert“ zurück.

    get-s3bucketlifecycleconfiguration -BucketName amzn-s3-demo-bucket -StoredCredentials AccountBDave

Schritt 3: (Optional) Versuchen Sie eine explizite Zugriffsverweigerung

Sie können Berechtigungen mithilfe einer Zugriffssteuerungsliste (ACL), einer Bucket-Richtlinie oder einer 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. Aktualisieren Sie zum Testen die Bucket-Richtlinie und verweigern Konto B explizit die s3:ListBucket-Berechtigung. Die Richtlinie erteilt auch die s3:ListBucket-Berechtigung. Eine explizite Verweigerung hat jedoch Vorrang, sodass Konto B bzw. die Benutzer in Konto B nicht in der Lage sein werden, Objekte in amzn-s3-demo-bucket aufzulisten.

  1. Ersetzen Sie unter Verwendung der Anmeldeinformationen von Benutzer AccountAadmin in Konto A die Bucket-Richtlinie durch Folgendes.

  2. Wenn Sie jetzt versuchen, über die Anmeldeinformationen von AccountBadmin eine Bucket-Liste zu erhalten, wird Ihnen eine Zugriffsverweigerung gemeldet.

    • Führen Sie mit dem AWS CLI den folgenden Befehl aus:

      aws s3 ls s3://amzn-s3-demo-bucket --profile AccountBadmin
    • Führen Sie mithilfe von den AWS Tools for Windows PowerShell den folgenden Befehl aus:

      get-s3object -BucketName amzn-s3-demo-bucket -StoredCredentials AccountBDave

Schritt 4: Bereinigen

  1. Nachdem Sie mit den Tests fertig sind, räumen Sie wie folgt auf:

    1. Melden Sie sich mit den Anmeldeinformationen für Konto A bei AWS-Managementkonsole (AWS-Managementkonsole) an und gehen Sie wie folgt vor:

      • Entfernen Sie in der Amazon-S3-Konsole die an amzn-s3-demo-bucket angefügte Bucket-Richtlinie. Löschen Sie in den Bucket Properties die Richtlinie im Abschnitt Permissions.

      • 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 Benutzer AccountAadmin.

  2. Melden Sie sich mit den Anmeldeinformationen von Konto B bei der IAM-Konsole an. Löschen Sie den Benutzer AccountBadmin. Schritt-für-Schritt-Anleitungen finden Sie unter Löschen eines IAM-Benutzers im IAM-Benutzerhandbuch.