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 Methode als das Erteilen von Berechtigungen für einzelne Benutzer. Weitere Informationen zur Vorgehensweise finden Sie unter Grundlegendes zu kontoübergreifenden Berechtigungen und zur Verwendung von Rollen IAM.

Ein Konto AWS-Konto— beispielsweise Konto A — kann einem anderen Konto AWS-Konto, Konto B, die Erlaubnis 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 benötigt jedoch weiterhin die Erlaubnis des übergeordneten Kontos, Konto B, zu dem der Benutzer gehört, auch wenn Konto B keine Berechtigungen von Konto A hat. Solange der Benutzer sowohl vom Eigentümer der Ressource als auch vom übergeordneten Konto über die entsprechenden Berechtigungen verfügt, kann der Benutzer auf die Ressource zugreifen.

Nachfolgend finden Sie eine kurze Zusammenfassung der wichtigsten Details:

Eine AWS-Konto Erteilung einer anderen AWS-Konto Berechtigung für den Zugriff auf seine Ressourcen.
  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. Gemäß den IAM Richtlinien (sieheInformationen zur Verwendung eines Administratorbenutzers zum Erstellen von Ressourcen und Erteilen von Berechtigungen) verwenden wir in dieser exemplarischen Vorgehensweise keine Root-Benutzeranmeldedaten. 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 Management Console ausgeführt. Um die Berechtigungen zu überprüfen, werden in der exemplarischen Vorgehensweise die Befehlszeilentools AWS Command Line Interface (CLI) und verwendet AWS Tools for Windows PowerShell, sodass Sie keinen Code schreiben müssen.

Vorbereitung auf den Walkthrough

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

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

    2. Melden Sie sich mit den Anmeldeinformationen von Konto A bei der IAMKonsole an, um den Administratorbenutzer zu erstellen:

      1. Erstellen Sie einen Benutzer AccountAadmin und notieren Sie sich die Sicherheitsanmeldedaten. Eine Anleitung dazu finden Sie im IAM Benutzerhandbuch unter Einen IAMBenutzer AWS-Konto in Ihrem erstellen.

      2. Gewähren Sie Administratorrechte, AccountAadminindem Sie eine Benutzerrichtlinie anhängen, die vollen Zugriff gewährt. Anweisungen finden Sie im IAMBenutzerhandbuch unter Arbeiten mit Richtlinien.

    3. Notieren Sie sich die IAMBenutzeranmeldung URL auf dem Dashboard, während Sie sich in der IAM Konsole befinden. Alle Benutzer im Konto müssen dies URL bei der Anmeldung beim AWS Management Console verwenden.

      Weitere Informationen finden Sie im Benutzerhandbuch unter So melden sich IAM Benutzer bei Ihrem Konto an.

    4. Wiederholen Sie den vorherigen Schritt mit den Anmeldeinformationen für Konto B und erstellen Sie einen AdministratorbenutzerAccountBadmin.

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

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

    • Wenn Sie die 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 Einrichtung der Tools für die exemplarischen Vorgehensweisen.

  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 Einrichtung der Tools für die exemplarischen Vorgehensweisen.

    1. Fügen Sie der AWS CLI Anmeldeinformationsdatei Profile 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 den verwenden AWS Tools for Windows PowerShell, führen Sie den folgenden Befehl aus.

      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 der an AWS Management Console

Melden Sie sich mit der IAM Benutzeranmeldung URL für Konto A zunächst AWS Management Console als AccountAadminBenutzer an. 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. In dieser Übung wird davon ausgegangen, dass der Bucket im Osten der USA (Nord-Virginia) erstellt AWS-Region und benannt wurdeamzn-s3-demo-bucket.

    Detaillierte Anweisungen finden Sie unter Erstellen eines 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:ListBucket Berechtigungen s3:GetLifecycleConfiguration und. Es wird davon ausgegangen, dass Sie immer noch mit AccountAadminBenutzeranmeldedaten bei 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.

    { "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:::amzn-s3-demo-bucket" ] } ] }
  2. Stellen Sie sicher, dass Konto B (und damit sein Administratorbenutzer) die Vorgänge ausführen kann.

    • Überprüfen Sie 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
    • Überprüfen 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 an bei AWS Management Console

Melden Sie sich mit der IAM Benutzeranmeldung URL für Konto B zunächst AWS Management Console als AccountBadminBenutzer an.

Schritt 2.2: Erstellen des Benutzers Dave in Konto B

Erstellen Sie in der IAMKonsole einen Benutzer,Dave.

Anweisungen finden Sie im Benutzerhandbuch unter IAMBenutzer erstellen (Konsole). IAM

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 AccountBadminBenutzeranmeldedaten bei der Konsole angemeldet sind.

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

Anweisungen finden Sie im IAMBenutzerhandbuch unter IAMRichtlinien verwalten.

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 der AWS CLI Konfigurationsdatei hinzu. Weitere Informationen zur Config-Datei finden Sie unte Einrichtung der Tools für die exemplarischen Vorgehensweisen.

    [profile UserDave] aws_access_key_id = access-key aws_secret_access_key = secret-access-key region = us-east-1
  2. Geben Sie an 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 hat keine anderen Berechtigungen. Wenn er also eine andere Operation versucht, z. B. die folgende get-bucket-lifecycle Konfiguration, gibt Amazon S3 die Berechtigung 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 Daves Anmeldeinformationen alsAccountBDave.

    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 hat keine anderen Berechtigungen. Wenn er also einen anderen Vorgang versucht, z. B. den folgenden, gibt get-s3bucketlifecycleconfiguration Amazon S3 die Berechtigung verweigert zurück.

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

Schritt 3: (Optional) Versuchen Sie eine explizite Zugriffsverweigerung

Sie können sich Berechtigungen mithilfe einer Zugriffskontrollliste (ACL), einer Bucket-Richtlinie oder einer Benutzerrichtlinie gewähren lassen. Wenn jedoch eine ausdrückliche Ablehnung entweder durch eine Bucket-Richtlinie oder eine Benutzerrichtlinie festgelegt wird, hat die ausdrückliche Verweigerung Vorrang vor allen anderen Berechtigungen. Aktualisieren Sie zum Testen die Bucket-Richtlinie und verweigern Sie Konto B ausdrücklich die s3:ListBucket Erlaubnis. Die Richtlinie gewährt auch die s3:ListBucket Erlaubnis. Die ausdrückliche Ablehnung hat jedoch Vorrang, und Konto B oder Benutzer in Konto B können keine Objekte auflisten. amzn-s3-demo-bucket

  1. Wenn Sie die Anmeldeinformationen des Benutzers AccountAadmin in Konto A verwenden, ersetzen Sie 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:::amzn-s3-demo-bucket" ] }, { "Sid": "Deny permission", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::AccountB-ID:root" }, "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ] } ] }
  2. Wenn Sie nun versuchen, mithilfe von AccountBadmin Anmeldeinformationen eine Bucket-Liste zu erstellen, wird der Zugriff verweigert.

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

      aws s3 ls s3://amzn-s3-demo-bucket --profile AccountBadmin
    • Führen Sie mit dem 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 dem Testen fertig sind, können Sie zum Aufräumen wie folgt vorgehen:

    1. Melden Sie sich mit den Anmeldeinformationen von Konto A bei AWS Management Console (AWS Management Console) 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 den AccountAadmin Benutzer in der IAMKonsole.

  2. Melden Sie sich mit den Anmeldeinformationen für Konto B bei der IAMKonsole an. Benutzer löschenAccountBadmin. step-by-stepAnweisungen finden Sie im IAMBenutzerhandbuch unter Löschen eines IAM Benutzers.