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 4 – Der Bucket-Eigentümer erteilt eine kontenübergreifende Berechtigung für Objekte, die ihm nicht gehören
Themen
- Verständnis von kontoübergreifenden Berechtigungen und der Verwendung von IAM-Rollen
- Schritt 0: Vorbereitung auf den Walkthrough
- Schritt 1: Erledigen der Aufgaben von Konto A
- Schritt 2: Erledigen der Aufgaben von Konto B
- Schritt 3: Erledigen der Aufgaben von Konto C
- Schritt 4: Bereinigen
- Zugehörige Ressourcen
In diesem Beispielszenario besitzen Sie einen Bucket und haben anderen AWS-Konten das Hochladen von Objekten ermöglicht. Wenn Sie die vom Bucket-Eigentümer erzwungene Einstellung für S3 Object Ownership für den Bucket angewendet haben, besitzen Sie alle Objekte im Bucket, einschließlich der Objekte, die von einem anderen AWS-Konto geschrieben wurden. Dieser Ansatz löst das Problem, dass Objekte nicht Ihnen, dem Bucket-Eigentümer, gehören. Anschließend können Sie die Berechtigung an Benutzer in Ihrem eigenen Konto oder an andere AWS-Konten. Angenommen, die erzwungene Einstellung des Bucket-Eigentümers für S3 Object Ownership ist nicht aktiviert. Das bedeutet, Ihr Bucket kann Objekte enthalten, die anderen AWS-Konten gehören.
Angenommen, Sie müssen als Bucket-Eigentümer einem Benutzer in einem anderen Konto eine kontenübergreifende Berechtigung für Objekte erteilen, unabhängig davon, wer der Eigentümer ist. Dieser Benutzer könnte beispielsweise eine Buchhaltungsanwendung sein, die Zugriff auf Objekt-Metadaten benötigt. Es gibt zwei Kernprobleme:
-
Der Bucket-Eigentümer hat keine Berechtigungen für diese Objekte, die von anderen AWS-Konten erstellt wurden. Damit der Bucket-Eigentümer Berechtigungen für Objekte erteilen kann, die er nicht besitzt, muss der Objekteigentümer dem Bucket-Eigentümer zunächst die entsprechenden Berechtigungen erteilen. Der Objekteigentümer ist das AWS-Konto , das die Objekte erstellt hat Der Bucket-Eigentümer kann diese Berechtigungen delegieren.
Das Konto des Bucket-Eigentümers kann Berechtigungen an Benutzer in seinem eigenen Konto delegieren (siehe Beispiel 3: Bucket-Eigentümer, der Berechtigungen für Objekte erteilt, die ihm nicht gehören). Das Konto des Bucket-Besitzers kann jedoch keine Berechtigungen an andere delegieren, AWS-Konten da die kontoübergreifende Delegierung nicht unterstützt wird.
In diesem Szenario kann der Bucket-Besitzer eine AWS Identity and Access Management (IAM-) Rolle mit der Berechtigung für den Zugriff auf Objekte erstellen. Anschließend kann der Bucket-Besitzer eine weitere AWS-Konto Berechtigung zur Übernahme der Rolle gewähren, sodass er vorübergehend auf Objekte im Bucket zugreifen kann.
Anmerkung
S3 Object Ownership ist eine Einstellung auf Amazon S3 S3-Bucket-Ebene, mit der Sie sowohl das Eigentum an den Objekten kontrollieren können, die in Ihren Bucket hochgeladen werden, als auch um sie zu deaktivieren oder zu aktivieren. ACLs Standardmäßig ist für Object Ownership die erzwungene Einstellung des Bucket-Besitzers festgelegt, und alle sind ACLs deaktiviert. Wenn ACLs diese Option deaktiviert ist, besitzt der Bucket-Besitzer alle Objekte im Bucket und verwaltet den Zugriff darauf ausschließlich mithilfe von Zugriffsverwaltungsrichtlinien.
Für die meisten modernen Anwendungsfälle in Amazon S3 ist die Verwendung von nicht mehr erforderlich ACLs. Wir empfehlen, die ACLs Option deaktiviert zu lassen, außer in Ausnahmefällen, in denen Sie den Zugriff für jedes Objekt einzeln steuern müssen. Wenn diese ACLs Option deaktiviert ist, können Sie mithilfe von Richtlinien den Zugriff auf alle Objekte in Ihrem Bucket steuern, unabhängig davon, wer die Objekte in Ihren Bucket hochgeladen hat. Weitere Informationen finden Sie unter Kontrolle des Besitzes von Objekten und Deaktivierung ACLs für Ihren Bucket.
Verständnis von kontoübergreifenden Berechtigungen und der Verwendung von IAM-Rollen
IAM-Rollen unterstützen verschiedene Szenarien, den Zugriff auf Ihre Ressourcen zu definieren. Der kontenübergreifende Zugriff ist eines der Schlüsselszenarien. In diesem Beispiel verwendet der Bucket-Besitzer, Konto A, eine IAM-Rolle, um vorübergehend den kontoübergreifenden Objektzugriff an Benutzer in einem anderen Konto AWS-Konto, Konto C, zu delegieren. Jeder IAM-Rolle, die Sie erstellen, sind die folgenden zwei Richtlinien zugeordnet:
-
Eine Vertrauensrichtlinie, die eine andere identifiziert AWS-Konto , die die Rolle übernehmen kann.
-
Eine Zugriffsrichtlinie, die definiert, welche Berechtigungen – z. B.
s3:GetObject
– zulässig sind, wenn jemand die Rolle einnimmt. Eine Liste aller Berechtigungen, die Sie in einer Richtlinie angeben können, finden Sie unter Richtlinienaktionen für Amazon S3.
Die AWS-Konto in der Vertrauensrichtlinie angegebene Person erteilt ihrem Benutzer dann die Erlaubnis, die Rolle zu übernehmen. Der Benutzer kann dann wie folgt auf Objekte zugreifen:
-
Die Rolle einnehmen und daraufhin temporäre Sicherheitsanmeldeinformationen erhalten.
-
Verwenden der temporären Sicherheitsanmeldeinformationen, um auf die Objekte im Bucket zuzugreifen.
Weitere Informationen zu IAM-Rollen finden Sie unter IAM-Rollen im IAM-Benutzerhandbuch.
Nachfolgend finden Sie eine kurze Zusammenfassung der wichtigsten Details:
![Kontoübergreifende Berechtigungen mit IAM-Rollen](images/access-policy-ex4.png)
-
Der Administrator-Benutzer von Konto A ordnet eine Bucket-Richtlinie zu, die Konto B die bedingte Berechtigung erteilt, Objekte hochzuladen.
-
Der Administrator von Konto A erstellt eine IAM-Rolle, die eine Vertrauensbeziehung zu Konto C einrichtet, sodass Benutzer in diesem Konto auf Konto A zugreifen können. Die der Rolle zugeordnete Zugriffsrichtlinie beschränkt die Aktionen, die der Benutzer in Konto C machen kann, wenn er auf Konto A zugreift.
-
Der Administrator von Konto B lädt ein Objekt in den Bucket hoch, der Konto A gehört, und erteilt dem Bucket-Eigentümer vollständige Berechtigungen.
-
Der Administrator von Konto C erstellt einen Benutzer und ordnet ihm eine Benutzerrichtlinie zu, die dem Benutzer gestattet, die Rolle zu übernehmen.
-
Der Benutzer in Konto C übernimmt zuerst die Rolle, womit er temporäre Sicherheitsanmeldeinformationen erhält. Unter Verwendung dieser temporären Sicherheitsanmeldeinformationen greift der Benutzer dann auf die Objekte im Bucket zu.
Für dieses Beispiel benötigen Sie drei Konten. Die folgende Tabelle zeigt, wie wir auf diese Konten und die Administrator-Benutzer in diesen Konten verweisen. Entsprechend den IAM-Richtlinien (siehe Informationen zur Verwendung eines Administratorbenutzers zum Erstellen von Ressourcen und Erteilen von Berechtigungen) verwenden wir die Root-Benutzer des AWS-Kontos -Anmeldeinformationen in dieser Anleitung nicht. 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 |
|
Konto C |
AccountCadmin |
Schritt 0: Vorbereitung auf den Walkthrough
Anmerkung
Es könnte hilfreich sein, einen Texteditor zu öffnen und einige der Informationen während der Durchführung der Schritte aufzuschreiben. Insbesondere benötigen Sie ein Konto IDs, einen kanonischen Benutzer IDs, eine IAM-Benutzeranmeldung URLs für jedes Konto, um eine Verbindung zur Konsole herzustellen, sowie Amazon-Ressourcennamen (ARNs) der IAM-Benutzer und Rollen.
-
Stellen Sie sicher, dass Sie drei Benutzer haben AWS-Konten und dass jedes Konto über einen Administratorbenutzer verfügt, wie in der Tabelle im vorherigen Abschnitt dargestellt.
-
Melden Sie sich bei Bedarf für AWS-Konten an. Wir bezeichnen diese Konten als Konto A, Konto B und Konto C.
-
Melden Sie sich mit den Anmeldeinformationen von Konto A bei der IAM-Konsole
an und führen Sie Folgendes aus, um einen Administratorbenutzer zu erstellen: -
Erstellen Sie den Benutzer
AccountAadmin
und notieren Sie dessen Sicherheitsanmeldeinformationen. Weitere Informationen zum Hinzufügen von Benutzern finden Sie unter Erstellen eines IAM-Benutzers in Ihrem AWS-Konto im IAM-Benutzerhandbuch. -
Gewähren Sie Administratorrechte, AccountAadminindem Sie eine Benutzerrichtlinie anhängen, die vollen Zugriff gewährt. Weitere Informationen finden Sie unter Verwalten von IAM-Richtlinien im IAM-Benutzerhandbuch.
-
Schreiben Sie sich die IAM-Benutzer-Anmelde-URL auf dem Dashboard der IAM-Konsole auf. Benutzer in diesem Konto müssen diese URL für die Anmeldung an der AWS Management Console verwenden. Weitere Informationen finden Sie unter AWS Management Console Als IAM-Benutzer anmelden im IAM-Benutzerhandbuch.
-
-
Wiederholen Sie den obigen Schritt, um Administrator-Benutzer in Konto B und Konto C zu erstellen.
-
-
Notieren Sie für Konto C die kanonische Benutzer-ID.
Wenn Sie eine IAM-Rolle in Konto A erstellen, erteilt die Vertrauensrichtlinie Konto C die Berechtigung, die Rolle durch Angabe der Konto-ID zu übernehmen. Sie finden die Konteninformationen wie folgt:
-
Verwenden Sie Ihre AWS-Konto ID oder Ihren Kontoalias, Ihren IAM-Benutzernamen und Ihr Passwort, um sich bei der Amazon S3 S3-Konsole
anzumelden. -
Wählen Sie den Namen eines Amazon-S3-Buckets aus, um die Details zu diesem Bucket anzuzeigen.
-
Klicken Sie auf den Tab Berechtigungen und anschließend auf Access Control List.
-
Im Abschnitt Access for your AWS-Konto(Zugriff für Ihr AWS-Konto) in der Spalte Konto befindet sich eine lange Kennung, z. B.
c1daexampleaaf850ea79cf0430f33d72579fd1611c97f7ded193374c0b163b6
. Dies ist Ihre kanonische Benutzer-ID.
-
-
Für das Erstellen einer Bucket-Richtlinie benötigen Sie die folgenden Informationen. Notieren Sie sich die Werte:
-
Kanonische Benutzer-ID von Konto A – Wenn der Administrator von Konto A dem Administrator von Konto B die bedingte Berechtigung erteilt, Objekte hochzuladen, gibt die Bedingung die kanonische Benutzer-ID des Benutzers von Konto A an, der vollständige Kontrolle über die Objekte benötigt.
Anmerkung
Die kanonische Benutzer-ID ist ein nur für Amazon S3 geltendes Konzept. Es handelt sich dabei um eine 64 Zeichen lange verschleierte Version der Konto-ID.
-
Benutzer-ARN für den Administrator von Konto B – Sie finden den Benutzer-ARN in der IAM-Konsole
. Wählen Sie den Benutzer aus und suchen Sie den ARN des Benutzers auf der Registerkarte Übersicht. In der Bucket-Richtlinie erteilen Sie
AccountBadmin
die Berechtigung, Objekte hochzuladen, und Sie geben unter Verwendung des ARN den Benutzer an. Ein Beispiel für einen ARN-Wert:arn:aws:iam::
AccountB-ID
:user/AccountBadmin
-
-
Richten Sie entweder die AWS Command Line Interface (CLI) oder die ein AWS Tools for Windows PowerShell. Stellen Sie sicher, dass Sie die Administratoranmeldeinformationen wie folgt speichern:
-
Wenn Sie das verwenden AWS CLI, erstellen Sie die 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 Einrichten der Tools für die Anleitungen.
-
Schritt 1: Erledigen der Aufgaben von Konto A
In diesem Beispiel ist Konto A der Bucket-Eigentümer. Der Benutzer AccountAadmin in Konto A wird also Folgendes tun:
-
Erstellen Sie einen Bucket.
-
Eine Bucket-Richtlinie anhängen, die dem Administrator von Konto B die Berechtigung zum Hochladen von Objekten erteilt.
-
Eine IAM-Rolle erstellen, die Konto C die Berechtigung erteilt, die Rolle zu übernehmen, so dass es auf Objekte im Bucket zugreifen kann.
Schritt 1.1: Melden Sie sich an AWS Management Console
Melden Sie sich mit der IAM-Benutzer-Anmelde-URL für Konto A zunächst beim Benutzer AWS Management Console as AccountAadmin
an. Dieser Benutzer erstellt einen Bucket und ordnet ihm eine Richtlinie zu.
Schritt 1.2: Erstellen eines Buckets und Anfügen einer Richtlinie
Führen Sie in der Amazon-S3-Konsole die folgenden Schritte aus:
-
Erstellen Sie einen Bucket. Diese Übung setzt voraus, dass der Bucket-Name
ist.amzn-s3-demo-bucket1
Detaillierte Anweisungen finden Sie unter Erstellen eines Buckets.
-
Fügen Sie die folgende Bucket-Richtlinie an. Die Richtlinie gewährt dem Administrator von Konto B unter bestimmten Bedingungen die Berechtigung, Objekte hochzuladen.
Aktualisieren Sie die Richtlinie, indem Sie Ihre eigenen Werte für
,amzn-s3-demo-bucket1
undAccountB-ID
angeben.CanonicalUserId-of-AWSaccountA-BucketOwner
{ "Version": "2012-10-17", "Statement": [ { "Sid": "111", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
AccountB-ID
:user/AccountBadmin" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::
/*" }, { "Sid": "112", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::amzn-s3-demo-bucket1
AccountB-ID
:user/AccountBadmin" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::
/*", "Condition": { "StringNotEquals": { "s3:x-amz-grant-full-control": "id=amzn-s3-demo-bucket1
CanonicalUserId-of-AWSaccountA-BucketOwner
" } } } ] }
Schritt 1.3: Erstellen einer IAM-Rolle, um Konto C kontoübergreifenden Zugriff in Konto A zu erteilen
Erstellen Sie in der IAM-Konsoleexamplerole
), die Konto C die Berechtigung erteilt, die Rolle zu übernehmen. Stellen Sie sicher, dass Sie weiterhin als Administrator von Konto A angemeldet sind, da die Rolle in Konto A erstellt werden muss.
-
Bevor Sie die Rolle erstellen, richten Sie die verwaltete Richtlinie ein, die die von der Rolle benötigten Berechtigungen definiert. Diese Richtlinie fügen Sie zu einem späteren Zeitpunkt der Rolle an.
-
Wählen Sie links im Navigationsbereich Richtlinien und dann Richtlinie erstellen aus.
-
Klicken Sie neben Create Your Own Policy auf Select.
-
Geben Sie
access-accountA-bucket
in das Feld Policy Name ein. -
Kopieren Sie die folgende Zugriffsrichtlinie und fügen Sie sie in das Feld Policy Document ein. Die Zugriffsrichtlinie gewährt der Rolle die
s3:GetObject
-Berechtigung, sodass der Benutzer aus Konto C bei Übernahme der Rolle nur dies3:GetObject
-Operation ausführen kann.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::
/*" } ] }amzn-s3-demo-bucket1
-
Wählen Sie Create Policy (Richtlinie erstellen) aus.
Die neue Richtlinie wird in der Liste der verwalteten Richtlinien angezeigt.
-
-
Wählen Sie im Navigationsbereich auf der linken Seite Rollen und dann Neue Rolle erstellen aus.
-
Wählen Sie unter Rollentyp auswählen die Option Rolle für kontoübergreifenden Zugriff aus und klicken Sie dann auf die Schaltfläche Auswählen neben Zugriff zwischen AWS-Konten Ihren eigenen Benutzern bereitstellen.
-
Geben Sie die Konto-ID von Konto C ein.
Für diese Anleitung müssen Benutzer keine Multi-Faktor-Authentifizierung (MFA) verwenden, um die Rolle zu übernehmen. Lassen Sie diese Option daher deaktiviert.
-
Klicken Sie auf Next Step, um die mit der Rolle verknüpften Berechtigungen einzurichten.
-
Aktivieren Sie das Kontrollkästchen neben der von Ihnen erstellten Richtlinie access-accountA-bucket und wählen Sie dann Nächster Schritt aus.
Die Prüfseite wird angezeigt, sodass Sie die Einstellungen bestätigen können, bevor Sie die Rolle erstellen. Ein sehr wichtiges, auf dieser Seite zu beachtendes Element ist der Link, den Sie an die Benutzer senden können, die die Rolle verwenden müssen. Benutzer, die den Link verwenden, gelangen direkt zur Seite Rolle wechseln, wobei die Felder „Konto-ID“ und „Rollenname“ bereits ausgefüllt sind. Dieser Link wird auch auf der Seite Role Summary für beliebige kontoübergreifende Rollen angezeigt.
-
Geben Sie
examplerole
für den Rollennamen ein und klicken Sie dann auf Nächster Schritt. -
Nachdem Sie die Rolle überprüft haben, klicken Sie auf Rolle erstellen.
Die Rolle
examplerole
wird in der Liste der Rollen angezeigt. -
Wählen Sie den Rollennamen
examplerole
aus. -
Wählen Sie den Tab Trust Relationships.
-
Wählen Sie Richtliniendokument anzeigen und überprüfen Sie, ob die angezeigte Vertrauensrichtlinie mit der folgenden Richtlinie übereinstimmt.
Die folgende Vertrauensrichtlinie richtet eine Vertrauensbeziehung zu Konto C ein und gestattet ihm die Aktion
sts:AssumeRole
. Weitere Informationen finden Sie unter AssumeRole in der API-Referenz zu AWS Security Token Service{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
AccountC-ID
:root" }, "Action": "sts:AssumeRole" } ] } -
Notieren Sie sich den Amazon Resource Name (ARN) der
examplerole
-Rolle, die Sie erstellt haben.In den nachfolgenden Schritten ordnen Sie eine Benutzerrichtlinie ein, um einem IAM-Benutzer zu erlauben, diese Rolle einzunehmen. Sie identifizieren die Rolle über den ARN-Wert.
Schritt 2: Erledigen der Aufgaben von Konto B
Der Beispiel-Bucket, der Konto A gehört, benötigt Objekte, die anderen Konten gehören. In diesem Schritt lädt der Administrator von Konto B unter Verwendung der Befehlszeilen-Tools ein Objekt hoch.
-
Laden Sie mit dem
put-object
AWS CLI Befehl ein Objekt in hoch.amzn-s3-demo-bucket1
aws s3api put-object --bucket
--keyamzn-s3-demo-bucket1
HappyFace.jpg
--bodyHappyFace.jpg
--grant-full-control id="canonicalUserId-ofTheBucketOwner
" --profileAccountBadmin
Beachten Sie Folgendes:
-
Der Parameter
--Profile
gibt das ProfilAccountBadmin
an – das Objekt gehört also Konto B. -
Der Parameter
grant-full-control
erteilt dem Bucket-Eigentümer vollständige Berechtigungen für das Objekt, wie für die Bucket-Richtlinie erforderlich. -
Der Parameter
--body
identifiziert die hochzuladende Quelldatei. Wenn sich die Datei beispielsweise auf dem Laufwerk C: eines Windows Computer, den Sie angebenc:\HappyFace.jpg
.
-
Schritt 3: Erledigen der Aufgaben von Konto C
In den vorigen Schritten hat Konto A bereits eine Rolle erstellt, examplerole
, die eine Vertrauensbeziehung zu Konto C einrichtet. Die Rolle erlaubt Benutzern in Konto C auf Konto A zugreifen. In diesem Schritt erstellt der Administrator von Konto C einen Benutzer (Dave) und delegiert die Berechtigung sts:AssumeRole
an ihn, die er von Konto A erhalten hat. Mit diesem Ansatz kann Dave examplerole
übernehmen und erhält temporären Zugriff auf Konto A. Die Zugriffsrichtlinie, die Konto A der Rolle zugeordnet hat, beschränkt die Aktionen, die Dave ausführen kann, wenn er auf Konto A zugreift – insbesondere, Objekte in
hochzuladen.amzn-s3-demo-bucket1
Schritt 3.1: Erstellen Sie einen Benutzer in Konto C und delegieren Sie die Zugriffsrechte an examplerole
-
Melden Sie sich zunächst mit der IAM-Benutzer-Anmelde-URL für Konto C beim Benutzer as an AWS Management Console .
AccountCadmin
-
Erstellen Sie in der IAM-Konsole
einen Benutzer, Dave. step-by-stepAnweisungen finden Sie unter Erstellen von IAM-Benutzern (AWS Management Console) im IAM-Benutzerhandbuch.
-
Notieren Sie sich die Anmeldeinformationen von Dave. Dave benötigt diese Anmeldeinformationen, um die Rolle
examplerole
zu übernehmen. -
Erstellen Sie eine Inline-Richtlinie für den IAM-Benutzer Dave, um die
sts:AssumeRole
-Berechtigung an Dave für dieexamplerole
-Rolle in Konto A zu delegieren.Wählen Sie im Navigationsbereich auf der linken Seite Users (Benutzer).
Klicken Sie auf den Benutzernamen Dave.
Wählen Sie auf der Seite mit den Benutzerinformationen den Tab Permissions aus und erweitern Sie den Abschnitt Inline Policies.
Wählen Sie hier klicken (oder Create User Policy).
Wählen Sie Custom Policy und dann Select aus.
Geben Sie einen Namen für die Richtlinie in das Feld Policy Name ein.
Kopieren Sie die folgende Richtlinie in das Feld Policy Document:.
Sie müssen die Richtlinie aktualisieren, indem Sie die
angeben.AccountA-ID
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["sts:AssumeRole"], "Resource": "arn:aws:iam::
AccountA-ID
:role/examplerole" } ] }Klicken Sie auf Apply Policy (Richtlinie anwenden).
-
Speichern Sie Daves Anmeldeinformationen in der Konfigurationsdatei von, AWS CLI indem Sie ein weiteres Profil hinzufügen.
AccountCDave
[profile AccountCDave] aws_access_key_id =
UserDaveAccessKeyID
aws_secret_access_key =UserDaveSecretAccessKey
region = us-west-2
Schritt 3.2: Rolle übernehmen (examplerole) und auf Objekte zugreifen
Jetzt kann Dave auf Objekte in dem Bucket zugreifen, der Konto A gehört, nämlich wie folgt:
-
Dave übernimmt zuerst die
examplerole
unter Verwendung seiner eigenen Anmeldeinformationen. Damit werden temporäre Anmeldeinformationen zurückgegeben. -
Unter Verwendung der temporären Anmeldeinformationen greift Dave dann auf die Objekte im Bucket von Konto A zu.
-
Führen Sie in der Befehlszeile den folgenden AWS CLI
assume-role
Befehl unter Verwendung desAccountCDave
Profils aus.Sie müssen in dem Befehl den ARN-Wert aktualisieren, indem Sie die ID von Konto A angeben, in dem
definiert ist.AccountA-ID
aws sts assume-role --role-arn arn:aws:iam::
AccountA-ID
:role/examplerole --profile AccountCDave --role-session-name testAls Antwort gibt AWS Security Token Service (AWS STS) temporäre Sicherheitsanmeldeinformationen zurück (Zugriffsschlüssel-ID, geheimer Zugriffsschlüssel und ein Sitzungstoken).
-
Speichern Sie die temporären Sicherheitsanmeldedaten in der AWS CLI Konfigurationsdatei unter dem
TempCred
Profil.[profile TempCred] aws_access_key_id =
temp-access-key-ID
aws_secret_access_key =temp-secret-access-key
aws_session_token =session-token
region = us-west-2 -
Führen Sie in der Befehlszeile den folgenden AWS CLI Befehl aus, um mithilfe der temporären Anmeldeinformationen auf Objekte zuzugreifen. Beispielsweise gibt der Befehl die Head-Objekt API an, um die Objekt-Metadaten für das Objekt
HappyFace.jpg
abzurufen.aws s3api get-object --bucket
--keyamzn-s3-demo-bucket1
HappyFace.jpg
SaveFileAs.jpg
--profile TempCredDie
examplerole
zugeordnete Zugriffsrichtlinie erlaubt die Aktionen, deshalb verarbeitet Amazon S3 die Anforderung. Sie können das mit jeder anderen Aktion für jedes andere Objekt im Bucket ausprobieren.Wenn Sie eine andere Aktion ausprobieren, z. B.
get-object-acl
, wird die Berechtigung verweigert, weil die Rolle diese Aktion nicht ausführen darf.aws s3api get-object-acl --bucket
--keyamzn-s3-demo-bucket1
HappyFace.jpg
--profile TempCredWir haben den Benutzer Dave verwendet, um die Rolle zu übernehmen und unter Verwendung temporärer Anmeldeinformationen auf das Objekt zuzugreifen. Es könnte auch eine Anwendung in Konto C sein, die auf Objekte in
zugreift. Die Anwendung kann temporäre Anmeldeinformationen erhalten, und Konto C kann die Berechtigung der Anwendung delegieren, umamzn-s3-demo-bucket1
examplerole
zu übernehmen.
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 an der AWS Management Console
an und machen Sie Folgendes: -
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.amzn-s3-demo-bucket1
-
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
die Datei, die examplerole
Sie in Konto A erstellt haben. step-by-step Anweisungen finden Sie unter Löschen eines IAM-Benutzers im IAM-Benutzerhandbuch. -
Entfernen Sie in der IAM-Konsole
den Benutzer AccountAadmin.
-
-
-
Melden Sie sich mit den Anmeldeinformationen von Konto B in der IAM-Konsole
an. Löschen Sie den Benutzer. AccountBadmin -
Melden Sie sich mit den Anmeldeinformationen von Konto C in der IAM-Konsole
an. Löschen Sie AccountCadminund den Benutzer Dave.
Zugehörige Ressourcen
Weitere Informationen zu dieser Anleitung finden Sie in den folgenden Ressourcen im IAM-Benutzerhandbuch: