Beispiel 1: Bucket-Eigentümer erteilt seinen Benutzern Bucket-Berechtigungen - Amazon Simple Storage Service

Beispiel 1: Bucket-Eigentümer erteilt seinen Benutzern Bucket-Berechtigungen

In dieser Übung besitzt ein AWS-Konto einen Bucket, und es hat einen IAM-Benutzer im Konto. 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:

  1. Der Kontoadministrator erstellt eine Bucket-Richtlinie, die dem Benutzer verschiedene Berechtigungen erteilt.

  2. Der Kontoadministrator weist dem Benutzer eine Benutzerrichtlinie zu, die ihm zusätzliche Berechtigungen erteilt.

  3. 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. Statt die Root-Anmeldeinformationen für Konto zu verwenden, erstellen Sie einen Administrator-Benutzer (siehe Informationen zur Verwendung eines Administratorbenutzers zum Erstellen von Ressourcen und Erteilen von Berechtigungen). Wir verweisen wie folgt auf das AWS-Konto und den Administrator-Benutzer:

Konto-ID Konto bezeichnet als Administratorbenutzer im Konto

1111-1111-1111

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 AWS Management Console ausgeführt. Zum Überprüfen der Berechtigungen verwendet das detaillierte Beispiel die Befehlszeilen-Tools, AWS Command Line Interface (CLI) und AWS Tools for Windows PowerShell, sodass Sie keinen Code zu schreiben brauchen.

Schritt 0: Vorbereitung auf den Walkthrough

  1. Stellen Sie sicher, dass Sie ein AWS-Konto haben und dass dieses einen Benutzer mit Administratorrechten enthält.

    1. Melden Sie sich nach Bedarf für ein -Konto an. Wir bezeichnen dieses Konto als Konto A.

      1. Rufen Sie https://aws.amazon.com/s3 auf und klicken Sie auf Sign Up (Registrieren).

      2. Folgen Sie den Anweisungen auf dem Bildschirm.

        AWS wird per E-Mail von uns benachrichtigt, sobald Ihr Konto aktiv ist und verwendet werden kann.

    2. Erstellen Sie in Konto A einen Administratorbenutzers AccountAadmin. Melden Sie sich mit den Anmeldeinformationen von Konto A in der IAM-Konsole an und gehen Sie wie folgt vor:

      1. Erstellen Sie den Benutzer AccountAadmin und schreiben Sie sich die Sicherheitsanmeldeinformationen für den Benutzer auf.

        Detaillierte Anweisungen finden Sie unter Erstellen eines IAM-Benutzers in Ihrem AWS-Konto im IAM-Benutzerhandbuch.

      2. Erteilen Sie dem Administrator AccountAadmin Berechtigungen, indem Sie ihm eine Benutzerrichtlinie zuordnen, die ihm vollen Zugriff bietet.

        Weitere Informationen finden Sie unter Arbeiten mit Richtlinien im IAM-Benutzerhandbuch.

      3. Schreiben Sie sich die URL für die Anmeldung des IAM-Benutzers für AccountAadmin auf. Sie brauchen diese URL, wenn Sie sich bei der AWS Management Console anmelden. Weitere Informationen darüber, wo Sie diese finden, finden Sie unter Wie sich Benutzer in Ihrem Konto anmelden im IAM-Benutzerhandbuch. Notieren Sie die URLs für alle Konten.

  2. Einrichten der AWS Command Line Interface (CLI) oder von AWS Tools for Windows PowerShell. Stellen Sie sicher, dass Sie die Anmeldeinformationen speichern, wie folgt:

    • Wenn Sie die AWS CLI verwenden, erstellen Sie das Profil AccountAadmin in der Config-Datei.

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

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

Schritt 1: Erstellen von Ressourcen (einen Bucket und einen IAM-Benutzer) in Konto A und Erteilen von Berechtigungen

Melden Sie sich mit den Anmeldeinformationen von Benutzer AccountAadmin in Konto A und der speziellen URL für die Anmeldung eines IAM-Benutzers in der AWS Management Console an und machen Sie Folgendes:

  1. Ressourcen erstellen (einen Bucket und einen IAM-Benutzer)

    1. Erstellen Sie in der Amazon-S3-Konsole einen Bucket. Schreiben Sie sich die AWS-Region auf, in der Sie ihn erstellt haben. Detaillierte Anweisungen finden Sie unter Erstellen eines Buckets.

    2. Führen Sie in der IAM-Konsole die folgenden Schritte aus:

      1. Erstellen Sie einen Benutzer, Dave.

        Detaillierte Anleitungen finden Sie unter Creating IAM Users (AWS Management Console) (Erstellen von IAM-Benutzern) im IAM-Benutzerhandbuch.

      2. Schreiben Sie sich die Anmeldeinformationen für UserDave auf.

      3. Notieren Sie 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 im Tab Summary.

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

    1. Fügen Sie in der Amazon-S3-Konsole die folgende Bucket-Richtlinie an awsexamplebucket1 an.

      Die Richtlinie enthält zwei Anweisungen.

      • Die erste Anweisung erteilt Dave Berechtigungen für die Bucket-Operationen s3:GetBucketLocation und s3:ListBucket.

      • Die zweite Anweisung erteilt die s3:GetObject-Berechtigung. Konto A gehört auch das Objekt, deshalb kann der Kontoadministrator die s3:GetObject-Berechtigung erteilen.

      In der Principal-Anweisung wird Dave durch seinen Benutzer-ARN identifiziert. Weitere Informationen zu Richtlinienelementen finden Sie unter Bucket-Richtlinien und Benutzerrichtlinien.

      { "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountA-ID:user/Dave" }, "Action": [ "s3:GetBucketLocation", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::awsexamplebucket1" ] }, { "Sid": "statement2", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountA-ID:user/Dave" }, "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::awsexamplebucket1/*" ] } ] }
    2. 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.

      { "Version": "2012-10-17", "Statement": [ { "Sid": "PermissionForObjectOperations", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::awsexamplebucket1/*" ] } ] }

      Weitere Informationen finden Sie unter Verwenden von eingebundenen 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 mit der AWS CLI

  1. Aktualisieren Sie die AWS CLI-Config-Datei, indem Sie das folgende Profil UserDaveAccountA hinzufügen. Weitere Informationen finden Sie unter Einrichten der Tools für die beispielhaften Walkthroughs.

    [profile UserDaveAccountA] aws_access_key_id = access-key aws_secret_access_key = secret-access-key region = us-east-1
  2. Ü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-object hoch.

    Der Parameter --body im Befehl identifiziert die hochzuladende Quelldatei. Befindet sich die Datei beispielsweise im Stammverzeichnis auf dem Laufwerk C: eines Windows-Computers, geben Sie c:\HappyFace.jpg an. Der Parameter --key gibt den Schlüsselnamen für das Objekt an.

    aws s3api put-object --bucket awsexamplebucket1 --key HappyFace.jpg --body HappyFace.jpg --profile UserDaveAccountA

    Führen Sie den folgenden AWS CLI-Befehl aus, um das Objekt zu erhalten.

    aws s3api get-object --bucket awsexamplebucket1 --key HappyFace.jpg OutputFile.jpg --profile UserDaveAccountA

Testen mit der AWS Tools for Windows PowerShell

  1. Speichern Sie die Anmeldeinformationen von Dave als AccountADave. Anschließend verwenden Sie diese Anmeldeinformationen für ein PUT und ein GET für ein Objekt.

    set-awscredentials -AccessKey AccessKeyID -SecretKey SecretAccessKey -storeas AccountADave
  2. Laden Sie ein Beispielobjekt mit dem AWS Tools for Windows PowerShell-Befehl Write-S3Object hoch. Verwenden Sie dazu die gespeicherten Anmeldeinformationen des Benutzers Dave.

    Write-S3Object -bucketname awsexamplebucket1 -key HappyFace.jpg -file HappyFace.jpg -StoredCredentials AccountADave

    Laden Sie das zuvor hochgeladene Objekt herunter.

    Read-S3Object -bucketname awsexamplebucket1 -key HappyFace.jpg -file Output.jpg -StoredCredentials AccountADave