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.
IAMTutorial: Delegieren Sie den Zugriff über AWS Konten hinweg mithilfe von Rollen IAM
Wichtig
IAMBewährte Methoden empfehlen, dass menschliche Benutzer den Verbund mit einem Identitätsanbieter verwenden müssen, um mit temporären Anmeldeinformationen zuzugreifen AWS , anstatt IAM Benutzer mit langfristigen Anmeldeinformationen zu verwenden. Es wird empfohlen, IAM Benutzer nur für bestimmte Anwendungsfälle zu verwenden, die von Verbundbenutzern nicht unterstützt werden.
In diesem Tutorial erfahren Sie, wie Sie mithilfe einer Rolle den Zugriff auf Ressourcen in verschiedenen AWS-Konten mit dem Namen Ziel und Ursprung delegieren. Sie teilen Ressourcen in einem Konto mit Benutzern in einem anderen Konto. Wenn Sie den kontoübergreifenden Zugriff auf diese Weise einrichten, müssen Sie nicht in jedem Konto einzelne IAM Benutzer erstellen. Darüber hinaus müssen sich Benutzer nicht von einem Konto abmelden und bei einem anderen Konto anmelden, um auf Ressourcen in unterschiedlichen AWS-Konten zuzugreifen. Nach der Konfiguration der Rolle erfahren Sie, wie Sie die Rolle aus dem AWS Management Console AWS CLI, dem und dem API verwenden.
In diesem Tutorial verwaltet das Zielkonto Anwendungsdaten, auf die von verschiedenen Anwendungen und Teams zugegriffen wird. In jedem Konto werden Anwendungsinformationen in Amazon-S3-Buckets gespeichert. Sie verwalten IAM Benutzer im Originalkonto, in dem Sie zwei IAM Benutzerrollen haben: Entwickler und Analysten. Entwickler und Analysten verwenden das Ursprungskonto, um Daten zu generieren, die von mehreren Microservices gemeinsam genutzt werden. Beide Rollen verfügen über die Berechtigung, im Ursprungskonto zu arbeiten und dort auf Ressourcen zuzugreifen. Von Zeit zu Zeit muss ein Entwickler die freigegebenen Daten im Zielkonto aktualisieren. Die Entwickler speichern diese Daten in einem Amazon S3-Bucket mit dem Namen amzn-s3-demo-bucket-shared-container
.
Am Ende dieses Tutorials ist Folgendes verfügbar:
-
Benutzer im Ursprungskonto (dem vertrauenswürdigen Konto) dürfen eine bestimmte Rolle im Zielkonto übernehmen.
-
Eine Rolle im Zielkonto (dem vertrauenswürdigen Konto), die den Zugriff auf einen bestimmten Amazon-S3-Bucket ermöglicht.
-
Der Bucket
amzn-s3-demo-bucket-shared-container
im Zielkonto.
Entwickler können die Rolle im verwenden AWS Management Console , um auf den amzn-s3-demo-bucket-shared-container
Bucket im Zielkonto zuzugreifen. Sie können auch mithilfe von API Aufrufen auf den Bucket zugreifen, die durch temporäre Anmeldeinformationen authentifiziert werden, die von der Rolle bereitgestellt werden. Ähnliche Versuche eines Analysten, die Rolle zu verwenden, schlagen fehl.
Dieser Workflow umfasst drei grundlegende Schritte:
- Rolle im Zielkonto erstellen
-
Zunächst verwenden Sie den, AWS Management Console um eine Vertrauensstellung zwischen dem Zielkonto (ID-Nummer 9999999999) und dem ursprünglichen Konto (ID-Nummer 111111111111) herzustellen. IAMSie UpdateDataerstellen zunächst eine Rolle mit dem Namen. Wenn Sie die Rolle erstellen, definieren Sie das Ursprungskonto als vertrauenswürdige Entität und geben eine Berechtigungsrichtlinie an, die es vertrauenswürdigen Benutzern ermöglicht, den Bucket
amzn-s3-demo-bucket-shared-container
zu aktualisieren. - Erteilen der Zugriffsberechtigung auf die Rolle
-
In diesem Abschnitt ändern Sie die Rollenrichtlinie, um Analysten den Zugriff auf die
UpdateData
-Rolle zu verweigern. Weil Analysten in diesem Szenario PowerUser Zugriff haben und Sie die Nutzung der Rolle ausdrücklich verweigern müssen. - Testen des Zugriffs durch Rollenwechsel
-
Schließlich verwenden Sie als Entwickler die
UpdateData
-Rolle, um den Bucketamzn-s3-demo-bucket-shared-container
im Zielkonto zu aktualisieren. Sie sehen, wie Sie über die AWS Konsole, die und die auf die AWS CLI Rolle zugreifenAPI.
Überlegungen
Bevor Sie IAM Rollen verwenden, um den Zugriff auf Ressourcen zu delegieren AWS-Konten, müssen Sie Folgendes beachten:
-
Sie können nicht zu einer Rolle wechseln, wenn Sie sich als Root-Benutzer des AWS-Kontos anmelden.
-
IAM Rollen und ressourcenbasierte Richtlinien delegieren den Zugriff auf Konten nur innerhalb einer einzelnen Partition. Nehmen wir zum Beispiel an, Sie haben ein Konto in US West (Nordkalifornien) in der Standardpartition
aws
. Sie haben auch ein Konto in China (Peking) in deraws-cn
-Partition. Sie können keine ressourcenbasierte Amazon S3-Richtlinie in Ihrem Konto in China (Peking) verwenden, um Benutzern in Ihrem Standard-aws
-Konto den Zugriff zu ermöglichen. -
Mithilfe der Security Assertion Markup Language (SSO) können Sie Single Sign-On AWS-Konten ( AWS Organizations) für externe (Konten außerhalb Ihres) vereinfachen. AWS IAM Identity Center SAML Weitere Informationen finden Sie unter Integrieren von extern AWS-Konten in eine AWS IAM Identity Center zentrale Zugriffsverwaltung mit unabhängiger
Abrechnung mithilfe von 2.0 SAML -
Sie können Rollen AWS Ressourcen wie EC2 Amazon-Instances oder AWS Lambda -Funktionen zuordnen. Details hierzu finden Sie unter Rolle zum Delegieren von Berechtigungen an einen AWS -Service erstellen.
-
Wenn Sie möchten, dass eine Anwendung eine Rolle in einer anderen übernimmt AWS-Konto, können Sie die Funktion AWS SDK für die kontoübergreifende Rollenübernahme verwenden. Weitere Informationen finden Sie unter Authentifizierung und Zugriff im AWS SDKsReferenzhandbuch zu Tools.
-
Das Wechseln von Rollen mithilfe von funktioniert AWS Management Console nur mit Konten, für die kein Konto erforderlich ist
ExternalId
. Nehmen wir an, dass Sie Dritten Zugriff auf Ihr Konto gewähren und eineExternalId
in einemCondition
-Element in Ihrer Berechtigungsrichtlinie benötigen. In diesem Fall kann der Drittanbieter nur mithilfe des AWS API oder eines Befehlszeilentools auf Ihr Konto zugreifen. Der Drittanbieter kann die Konsole nicht verwenden, da er einen Wert fürExternalId
angeben muss. Weitere Informationen zu diesem Szenario finden Sie unter Zugriffs auf im Besitz von Drittanbietern befindlichen AWS-Konten und So aktivieren Sie den kontoübergreifenden Zugriff auf den AWS Management Consoleim AWS Sicherheitsblog.
Voraussetzungen
In diesem Tutorial wird davon ausgegangen, dass Folgendes bereits vorhanden ist:
-
Zwei separate Konten, AWS-Konten die Sie verwenden können, eines zur Darstellung des ursprünglichen Kontos und eines zur Darstellung des Zielkontos.
-
Benutzer und Rollen im Ursprungskonto wurden wie folgt erstellt und konfiguriert:
Auftragstitel Benutzer Berechtigungen Developer David Beide Benutzer können sich anmelden und das Konto AWS Management Console im ursprünglichen Konto verwenden. Analyst Jane -
Sie müssen im Zielkonto keine Benutzer erstellen.
-
Ein im Zielkonto erstellter Amazon-S3-Bucket. In diesem Tutorial nennen wir dies
amzn-s3-demo-bucket-shared-container
, S3-Bucket-Namen sind jedoch global eindeutig, daher müssen Sie einen Bucket mit einem anderen Namen verwenden.
Rolle im Zielkonto erstellen
Sie können Benutzern von einem Konto AWS-Konto den Zugriff auf Ressourcen in einem anderen ermöglichen AWS-Konto. In diesem Tutorial tun wir dies, indem wir eine Rolle erstellen, die definiert, wer darauf zugreifen kann und welche Berechtigungen sie den Benutzern gewährt, die dorthin wechseln.
In diesem Schritt des Tutorials erstellen Sie die Rolle im Zielkonto und geben das Ursprungskonto als vertrauenswürdige Entität an. Außerdem beschränken Sie die Berechtigungen der Rolle auf den Lese- und Schreibzugriff auf den Bucket amzn-s3-demo-bucket-shared-container
. Jeder Benutzer, dem die Berechtigung zur Verwendung der Rolle erteilt wird, kann auf dem Bucket shared-container
Lese- und Schreibvorgänge ausführen.
Bevor Sie eine Rolle erstellen können, benötigen Sie die Konto-ID des Originators AWS-Konto. Jedem AWS-Konto ist eine eindeutige Konto-ID-ID zugewiesen.
Um die ursprüngliche AWS-Konto ID zu erhalten
-
Melden Sie sich AWS Management Console als Administrator des ursprünglichen Kontos an und öffnen Sie die IAM Konsole unter https://console.aws.amazon.com/iam/
. -
Wählen Sie in der IAM-Konsole rechts oben auf der Navigationsleiste den Benutzernamen aus. Normalerweise sieht sie so aus:
username
@account_ID_number_or_alias
.Für dieses Szenario können Sie die Konto-ID 111111111111 für das Ursprungskonto verwenden. Sie sollten jedoch eine gültige Konto-ID verwenden, wenn Sie das Szenario in Ihrer Testumgebung rekonstruieren.
So erstellen Sie eine Rolle im Zielkonto, die vom Ursprungskonto verwendet werden kann
-
Melden Sie sich AWS Management Console als Administrator des Zielkontos an und öffnen Sie die IAM Konsole.
-
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.
Sie möchten Lese- und Schreibberechtigungen für den Bucket
amzn-s3-demo-bucket-shared-container
erteilen. Es AWS gibt zwar einige verwaltete Amazon S3 S3-Richtlinien, aber es gibt keine, die Lese- und Schreibzugriff auf einen einzelnen Amazon S3 S3-Bucket bietet. Sie können aber Ihre eigene Richtlinie erstellen.Wählen Sie im Navigationsbereich Policies (Richtlinien) und dann Create policy (Richtlinie erstellen) aus.
-
Wählen Sie die JSONRegisterkarte und kopieren Sie den Text aus dem folgenden JSON Richtliniendokument. Fügen Sie diesen Text in das JSONTextfeld ein und ersetzen Sie die Ressource ARN (
arn:aws:s3:::shared-container
) durch die echte Ressource für Ihren Amazon S3 S3-Bucket.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "
arn:aws:s3:::amzn-s3-demo-bucket-shared-container
" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket-shared-container/*
" } ] }Die Aktion
ListAllMyBuckets
gewährt die Berechtigung zum Auflisten aller Buckets, die dem authentifizierten Sender der Anforderung gehören. Die BerechtigungListBucket
ermöglicht den Benutzern, Objekte im Bucketamzn-s3-demo-bucket-shared-container
anzuzeigen. Die BerechtigungenGetObject
,PutObject
undDeleteObject
ermöglichen den Benutzern, Inhalte im Bucketamzn-s3-demo-bucket-shared-container
anzuzeigen, zu aktualisieren und zu löschen.Anmerkung
Sie können jederzeit zwischen den Optionen Visual und JSONEditor wechseln. Wenn Sie jedoch Änderungen vornehmen oder im Visual Editor auf Weiter klicken, kann es IAM sein, dass Ihre Richtlinie neu strukturiert wird, um sie für den visuellen Editor zu optimieren. Weitere Informationen finden Sie unter Umstrukturierung einer Richtlinie.
-
Geben Sie auf der Seite Review and create (Überprüfen und erstellen) als Richtliniennamen
read-write-app-bucket
ein. Überprüfen Sie die von ihrer Richtlinie erteilten Berechtigungen und wählen Sie dann zum Speichern Ihrer Arbeit Create policy (Richtlinie erstellen) aus.Die neue Richtlinie wird in der Liste der verwalteten Richtlinien angezeigt.
-
Wählen Sie im Navigationsbereich Rollen und dann Rolle erstellen.
-
Wählen Sie den Rollentyp AWS-Konto.
-
Geben Sie als Konto-ID die ID des Ursprungskontos ein.
In diesem Tutorial wird die Beispiel-Konto-ID
111111111111
für das Ursprungskonto verwendet. Verwenden Sie eine gültige Konto-ID. Wenn Sie eine ungültige Konto-ID wie111111111111
verwenden, lässt Sie IAM keine neue Rolle erstellen.Derzeit benötigen Sie weder eine externe ID noch verlangen Sie, dass Benutzer über eine mehrstufige Authentifizierung (MFA) verfügen, um die Rolle übernehmen zu können. Wählen Sie daher diese Option nicht. Weitere Informationen finden Sie unter AWS Multi-Faktor-Authentifizierung in IAM.
-
Wählen Sie Next: Permissions (Weiter: Berechtigungen) aus, um die mit der Rolle verknüpften Berechtigungen einzurichten.
-
Aktivieren Sie das Kontrollkästchen neben der Richtlinie, die Sie zuvor erstellt haben.
Tipp
Klicken Sie bei Filter auf Customer managed (Benutzerdefiniert), um nur die von Ihnen erstellten Richtlinien anzuzeigen. Dadurch werden die von AWS erstellten Richtlinien ausgeblendet und Ihnen wird das Auffinden der gesuchten Richtlinie erleichtert.
Wählen Sie anschließend Weiter.
-
(Optional) Fügen Sie der Rolle Metadaten hinzu, indem Sie Tags als Schlüssel-Wert-Paare anfügen. Weitere Informationen zur Verwendung von Tags in IAMfinden Sie unter Tags für AWS Identity and Access Management-Ressourcen.
-
(Optional) Geben Sie unter Role description (Rollenbeschreibung) eine Beschreibung für die neue Rolle ein.
-
Nachdem Sie die Rolle überprüft haben, klicken Sie auf Create role (Rolle erstellen).
Die Rolle
UpdateData
erscheint in der Liste der Rollen.
Jetzt müssen Sie den Amazon-Ressourcennamen (ARN) der Rolle abrufen, eine eindeutige Kennung für die Rolle. Wenn Sie die Rolle des Entwicklers im ursprünglichen Konto ändern, geben Sie die Rolle ARN aus dem Zielkonto an, um Berechtigungen zu gewähren oder zu verweigern.
Um das ARN zu erhalten UpdateData
-
Wählen Sie im Navigationsbereich der IAM-Konsole Roles (Rollen) aus.
-
Wählen Sie in der Rollenliste die Rolle
UpdateData
. -
Kopieren Sie im Abschnitt „Zusammenfassung“ des Detailbereichs den ARN Wert „Rolle“.
Das Zielkonto hat die Konto-ID 9999999999, also die Rolle. ARN
arn:aws:iam::999999999999:role/UpdateData
Stellen Sie sicher, dass Sie die echte AWS-Konto ID für das Zielkonto angeben.
An diesem Punkt haben Sie eine Vertrauensbeziehung zwischen dem Ziel- und dem Ursprungskonto hergestellt. Sie haben dies getan, indem Sie im Zielkonto eine Rolle erstellt haben, die das Ursprungskonto als vertrauenswürdigen Prinzipal identifiziert. Sie haben auch definiert, was die Benutzer tun dürfen, die in die UpdateData
-Rolle wechseln.
Ändern Sie als Nächstes die Berechtigungen für die Entwicklerrolle.
Erteilen der Zugriffsberechtigung auf die Rolle
Zu diesem Zeitpunkt verfügen sowohl Analysten als auch Entwickler über Berechtigungen, die es ihnen ermöglichen, Daten im Ursprungskonto zu verwalten. Nachstehend werden die erforderlichen Schritte zum Hinzufügen von Berechtigungen beschrieben, um zur Rolle zu wechseln.
Um die Entwicklerrolle so zu ändern, dass sie zur UpdateData Rolle wechseln können
-
Melden Sie sich im ursprünglichen Konto als Administrator an und öffnen Sie die IAM Konsole.
-
Wählen Sie Rollen und dann Entwickler aus.
-
Wählen Sie die Registerkarte Berechtigungen, wählen Sie Berechtigungen hinzufügen und wählen Sie dann Inline-Richtlinie erstellen.
-
Wählen Sie die Registerkarte JSON aus.
-
Fügen Sie die folgende Richtlinienanweisung hinzu, um die Aktion
AssumeRole
für die RolleUpdateData
im Zielkonto zuzulassen. Stellen Sie sicher, dass Sie dasResource
Element auf die tatsächliche AWS-Konto ID des Zielkontos ändernDESTINATION-ACCOUNT-ID
.{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::
DESTINATION-ACCOUNT-ID
:role/UpdateData" } }Der Effekt
Allow
gewährt der Entwickler-Gruppe explizit den Zugriff auf die RolleUpdateData
im Zielkonto. Alle Entwickler können problemlos auf die Rolle zugreifen. -
Wählen Sie Richtlinie prüfen.
-
Geben Sie einen Namen ein, z. B.
allow-assume-S3-role-in-destination
. -
Wählen Sie Create Policy (Richtlinie erstellen) aus.
In den meisten Umgebungen ist folgende Vorgehensweise wahrscheinlich nicht erforderlich. Wenn Sie jedoch PowerUserAccess Berechtigungen verwenden, können einige Gruppen möglicherweise bereits die Rollen wechseln. Das folgende Verfahren zeigt, wie Sie der Gruppe „Analysten“ eine "Deny"
-Berechtigung hinzufügen, um sicherzustellen, dass sie die Rolle nicht übernehmen können. Wenn dieses Verfahren in Ihrer Umgebung nicht benötigt wird, empfehlen wir Ihnen, es nicht hinzuzufügen. "Deny"
-Berechtigungen machen die Verwaltung und das Verständnis der gesamten Berechtigungsstruktur komplizierter. Verwenden Sie "Deny"
-Berechtigungen nur, wenn es keine bessere Option gibt.
So ändern Sie die Rolle des Analysten, um die Berechtigung zum Übernehmen der Rolle UpdateData
zu verweigern
-
Wählen Sie Rollen und dann Analysten aus.
-
Wählen Sie die Registerkarte Berechtigungen, wählen Sie Berechtigungen hinzufügen und wählen Sie dann Inline-Richtlinie erstellen.
-
Wählen Sie die Registerkarte JSON aus.
-
Fügen Sie die folgende Richtlinienanweisung hinzu, um die Aktion
AssumeRole
in der RolleUpdateData
zu verweigern. Achten Sie darauf, dass Sie dasResource
Element auf die tatsächliche AWS-Konto ID des Zielkontos ändernDESTINATION-ACCOUNT-ID
.{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::
DESTINATION-ACCOUNT-ID
:role/UpdateData" } }Der Effekt
Deny
verweigert der Analysten-Gruppe explizit den Zugriff auf die RolleUpdateData
im Zielkonto. Jeder Analyst, der versucht, auf die Rolle zuzugreifen, erhält die Meldung „Zugriff verweigert“. -
Wählen Sie Richtlinie prüfen.
-
Geben Sie einen Namen wie
deny-assume-S3-role-in-destination
ein. -
Wählen Sie Create Policy (Richtlinie erstellen) aus.
Die Rolle der Entwickler verfügt jetzt über die Berechtigung, die Rolle UpdateData
im Zielkonto zu verwenden. Die Rolle des Analysten kann die Rolle UpdateData
nicht verwenden.
Als Nächstes können Sie sehen, wie David, ein Entwickler, auf den Bucket amzn-s3-demo-bucket-shared-container
im Zielkonto zugreifen kann. David kann über den AWS Management Console, den oder den auf den AWS CLI Bucket zugreifen AWS API.
Testen des Zugriffs durch Rollenwechsel
Nach Abschluss der ersten beiden Schritte dieses Tutorials verfügen Sie über eine Rolle, die Zugriff auf eine Ressource im Zielkonto gewährt. Sie verfügen außerdem über eine Rolle im Ursprungskonto, wobei die Benutzer diese Rolle verwenden dürfen. In diesem Schritt wird erläutert, wie Sie den Wechsel von der AWS Management Console, der und der AWS CLI zu dieser Rolle testen können AWS API.
Hilfe zu häufigen Problemen, die bei der Arbeit mit IAM Rollen auftreten können, finden Sie unterFehlerbehebung bei IAM-Rollen.
Wechseln der Rollen (Konsole)
Wenn David Daten im Zielkonto in der aktualisieren muss AWS Management Console, kann er dies mithilfe von Switch Role tun. Nach Angabe der Konto-ID oder des Alias und des Rollennamens erfolgt sofort der Wechsel zu den von der Rolle erteilten Berechtigungen. Er kann dann die Konsole verwenden, um mit dem Bucket amzn-s3-demo-bucket-shared-container
zu arbeiten, kann jedoch nicht mit anderen Ressourcen im Ziel arbeiten. Während David die Rolle verwendet, kann er seine Poweruser-Berechtigungen im Ursprungskonto nicht nutzen. Dies liegt daran, dass jeweils nur eine Gruppe von Berechtigungen wirksam sein kann.
IAMbietet David zwei Möglichkeiten, um die Seite „Rolle wechseln“ aufzurufen:
-
David erhält einen Link von seinem Administrator, der auf eine vordefinierte Konfiguration zum Wechseln der Rolle verweist. Der Link wird dem Administrator auf der letzten Seite des Assistenten Create role (Rolle wechseln) oder auf der Seite Role Summary (Rollenübersicht) für kontoübergreifende Rollen bereitgestellt. Wenn David diesem Link folgt, wird er zur Seite Switch Role (Rolle wechseln) weitergeleitet, in der die Felder Account ID (Konto-ID) und Role name (Rollenname) bereits ausgefüllt sind. David muss lediglich Switch Roles (Rollen wechseln) auswählen.
-
Der Administrator sendet nicht den Link mit der E-Mail, sondern die Werte für die Konto-ID-Nummer und den Rollennamen. Um die Rollen zu wechseln, muss David die -Werte manuell eingeben. Dies wird in der folgenden Anleitung veranschaulicht.
So übernehmen Sie eine Rolle
-
David meldet sich AWS Management Console mit seinem normalen Benutzerkonto im ursprünglichen Konto an.
-
Er wählt den Link, den ihm der Administrator per E-Mail zugeschickt hat. Dadurch wird David auf die Seite Switch Role (Rolle wechseln) weitergeleitet, in der die Angaben zu Konto-ID und Rollenname bereits ausgefüllt sind.
–oder–
David wählt seinen Namen (im Identity-Menü) auf der Navigationsleiste aus und wählt dann Switch Roles (Rollen wechseln).
Wenn dies das erste Mal ist, dass David versucht, auf die Seite "Switch Role" zuzugreifen, landet er zunächst auf einer initialen Switch Role (Rolle wechseln)-Seite. Auf dieser Seite finden Sie weitere Informationen darüber, wie durch das Wechseln von Rollen die Benutzer befähigt werden, Ressourcen in verschiedenen AWS-Konten zu verwalten. David muss auf dieser Seite auf die Schaltfläche Switch Role (Rolle wechseln) klicken, um den Rest des beschriebenen Verfahrens abzuschließen.
-
Um auf die Rolle zuzugreifen, muss David als Nächstes die Zielkonto-ID-Nummer (
999999999999
) und den Rollennamen (UpdateData
) manuell eingeben.Außerdem möchte David überwachen, in welchen Rollen und mit welchen Berechtigungen er derzeit aktiv istIAM. Zum Nachverfolgen dieser Informationen gibt er
Destination
in das Textfeld Display Name (Anzeigename) ein, wählt die Option für Rot und dann Switch Role (Rolle wechseln). -
David kann nun die Amazon S3-Konsole verwenden, um mit dem Amazon S3-Bucket oder einer anderen Ressource zu arbeiten, für die die
UpdateData
-Rolle Berechtigungen hat. -
Sobald dies erledigt ist, kann David zu seinen ursprünglichen Berechtigungen zurückkehren. Wählen Sie dazu den Anzeigenamen der Zielrolle in der Navigationsleiste und dann Zurück zu David @ 111111111111.
-
Wenn David das nächste Mal die Rollen wechseln möchte und das Menü Identität in der Navigationsleiste auswählt, sieht er, dass der Eintrag „Ziel“ vom letzten Mal noch vorhanden ist. Durch Klicken auf diesen Eintrag kann er die Rolle sofort wechseln, ohne die Konto-ID und den Rollennamen erneut angeben zu müssen.
Wechseln der Rolle (AWS CLI)
Wenn David in der Zielumgebung in der Befehlszeile arbeiten muss, kann er dies mithilfe der AWS CLIaws sts
assume-role
Befehl aus und übergibt die RolleARN, um temporäre Sicherheitsanmeldedaten für diese Rolle zu erhalten. Anschließend konfiguriert er diese Anmeldeinformationen in Umgebungsvariablen, sodass nachfolgende AWS CLI Befehle mit den Berechtigungen der Rolle funktionieren. Während David die Rolle verwendet, kann er seine Poweruser-Berechtigungen im Ursprungskonto nicht nutzen, da jeweils nur ein Berechtigungssatz wirksam sein kann.
Beachten Sie, dass alle Zugriffsschlüssel und Token nur Beispiele sind und nicht wie hier dargestellt verwendet werden können. Ersetzen Sie sie mit den entsprechenden Werten aus Ihrer Live-Umgebung.
So übernehmen Sie eine Rolle
-
David öffnet ein Befehlszeilenfenster und bestätigt, dass der AWS CLI Client funktioniert, indem er den folgenden Befehl ausführt:
aws help
Anmerkung
Die Standardumgebung von David verwendet die Anmeldeinformationen des Benutzers
David
aus seinem Standardprofil, das er mit dem Befehlaws configure
erstellt hat. Weitere Informationen finden Sie unter Konfigurieren der AWS Command Line Interface im AWS Command Line Interface -Leitfaden. -
Er beginnt mit dem Verfahren zum Rollenwechsel, indem er den folgenden Befehl ausführt, um zur Rolle
UpdateData
im Zielkonto zu wechseln. Er erhielt die Rolle ARN von dem Administrator, der die Rolle erstellt hat. Der Befehl erfordert, dass Sie außerdem einen Sitzungsnamen angeben. Sie können hierfür einen beliebigen Text eingeben.aws sts assume-role --role-arn "arn:aws:iam::999999999999:role/UpdateData" --role-session-name "David-ProdUpdate"
David erhält dann die folgende Ausgabe:
{ "Credentials": { "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "AQoDYXdzEGcaEXAMPLE2gsYULo+Im5ZEXAMPLEeYjs1M2FUIgIJx9tQqNMBEXAMPLE CvSRyh0FW7jEXAMPLEW+vE/7s1HRpXviG7b+qYf4nD00EXAMPLEmj4wxS04L/uZEXAMPLECihzFB5lTYLto9dyBgSDy EXAMPLE9/g7QRUhZp4bqbEXAMPLENwGPyOj59pFA4lNKCIkVgkREXAMPLEjlzxQ7y52gekeVEXAMPLEDiB9ST3Uuysg sKdEXAMPLE1TVastU1A0SKFEXAMPLEiywCC/Cs8EXAMPLEpZgOs+6hz4AP4KEXAMPLERbASP+4eZScEXAMPLEsnf87e NhyDHq6ikBQ==", "Expiration": "2014-12-11T23:08:07Z", "AccessKeyId": "AKIAIOSFODNN7EXAMPLE" } }
-
David sieht die drei Teile im Anmeldeinformationen-Abschnitt der Ausgabe, die er benötigt.
-
AccessKeyId
-
SecretAccessKey
-
SessionToken
David muss die AWS CLI Umgebung so konfigurieren, dass diese Parameter bei nachfolgenden Aufrufen verwendet werden. Weitere Informationen zu den verschiedenen Möglichkeiten zum Konfigurieren Ihrer Anmeldeinformationen finden Sie unter Konfigurieren der AWS Command Line Interface. Den Befehl
aws configure
können Sie nicht verwenden, da er nicht die Erfassung des Sitzungs-Token unterstützt. Sie können jedoch die Informationen manuell in eine Konfigurationsdatei eingeben. Da die Ablaufzeit dieser temporären Anmeldeinformationen relativ kurz ist, fügen Sie sie besser der Umgebung Ihrer aktuellen Befehlszeilensitzung hinzu. -
-
Um die drei Werte zur Umgebung hinzuzufügen, kopiert David die Ausgabe aus dem vorherigen Schritt und fügt sie in die folgenden Befehle ein. Fügen Sie die Ausgabe in einen einfachen Texteditor ein, um Probleme mit Zeilenumbrüchen in der Ausgabe des Sitzungs-Token zu vermeiden. Er muss als eine einzige lange Zeichenfolge hinzugefügt werden, auch wenn er hier aus Darstellungsgründen mit Zeilenumbrüchen angezeigt wird.
Das folgende Beispiel zeigt Befehle in der Windows-Umgebung, wobei „set“ der Befehl zum Erstellen einer Umgebungsvariablen ist. Auf einem Linux- oder macOS-Computer würden Sie stattdessen den Befehl für „Exportieren“ verwenden. Alle anderen Teile des Beispiels sind in allen drei Umgebungen gültig.
Details zur Verwendung von Tools für Windows PowerShell finden Sie hier: Zu einer IAM Rolle wechseln (Tools für Windows PowerShell)
set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY set AWS_SESSION_TOKEN=AQoDYXdzEGcaEXAMPLE2gsYULo+Im5ZEXAMPLEeYjs1M2FUIgIJx9tQqNMBEXAMPLECvS Ryh0FW7jEXAMPLEW+vE/7s1HRpXviG7b+qYf4nD00EXAMPLEmj4wxS04L/uZEXAMPLECihzFB5lTYLto9dyBgSDyEXA MPLEKEY9/g7QRUhZp4bqbEXAMPLENwGPyOj59pFA4lNKCIkVgkREXAMPLEjlzxQ7y52gekeVEXAMPLEDiB9ST3UusKd EXAMPLE1TVastU1A0SKFEXAMPLEiywCC/Cs8EXAMPLEpZgOs+6hz4AP4KEXAMPLERbASP+4eZScEXAMPLENhykxiHen DHq6ikBQ==
Ab diesem Zeitpunkt werden alle folgenden Befehle mit den Berechtigungen der von diesen Anmeldeinformationen identifizierten Rolle ausgeführt. Im Fall von David handelt es sich um die Rolle
UpdateData
.Wichtig
Sie können Ihre häufig verwendeten Konfigurationseinstellungen und Anmeldeinformationen in Dateien speichern, die von der AWS CLI verwaltet werden. Weitere Informationen finden Sie unter Verwendung vorhandener Konfigurations- und Anmeldeinformationsdateien im AWS Command Line Interface -Benutzerhandbuch.
-
Führen Sie den Befehl aus, um Zugriff auf die Ressourcen im Zielkonto zu erhalten. In diesem Beispiel listet David mit dem folgenden Befehl den Inhalt seines S3-Buckets auf.
aws s3 ls s3://shared-container
Da die Namen von Amazon-S3-Buckets universell eindeutig sind, muss die ID des Kontos, in dem der Bucket enthalten ist, nicht angegeben werden. Wenn Sie auf Ressourcen für andere AWS Dienste zugreifen möchten, finden Sie in der AWS CLI Dokumentation zu diesem Dienst die Befehle und die Syntax, die zum Verweisen auf seine Ressourcen erforderlich sind.
Verwenden von AssumeRole (AWS API)
Wenn David über den Code eine Aktualisierung des Zielkontos vornehmen muss, tätigt er einen AssumeRole
-Aufruf, um die Rolle UpdateData
zu übernehmen. Der Aufruf gibt temporäre Anmeldeinformationen zurück, mit denen er auf den Bucket amzn-s3-demo-bucket-shared-container
im Zielkonto zugreifen kann. Mit diesen Anmeldeinformationen kann David API Aufrufe tätigen, um den amzn-s3-demo-bucket-shared-container
Bucket zu aktualisieren. Er kann jedoch keine API Anrufe tätigen, um auf andere Ressourcen im Zielkonto zuzugreifen, obwohl er im ursprünglichen Konto über Power-User-Berechtigungen verfügt.
So übernehmen Sie eine Rolle
-
David ruft
AssumeRole
als Teil einer Anwendung auf. Sie müssen Folgendes angeben:.UpdateData
ARNarn:aws:iam::999999999999:role/UpdateData
Die Antwort auf den
AssumeRole
-Aufruf enthält die temporären Anmeldeinformationen mit einemAccessKeyId
und einemSecretAccessKey
. Sie enthält auch eineExpiration
-Zeit, die angibt, wann die Anmeldeinformationen ablaufen und neue angefordert werden müssen. Wenn Sie die Rollenverkettung mit dem einrichten AWS SDK, aktualisieren viele Anmeldeinformationsanbieter die Anmeldeinformationen automatisch, bevor sie ablaufen. -
Mit den temporären Anmeldeinformationen führt David einen Aufruf
s3:PutObject
aus, um den Bucketamzn-s3-demo-bucket-shared-container
zu aktualisieren. Sie würden die Anmeldeinformationen als Parameter an den API Anruf übergeben.AuthParams
Da die Anmeldeinformationen der temporären Rolle nur über Lese- und Schreibzugriff auf den Bucketamzn-s3-demo-bucket-shared-container
verfügen, werden alle anderen Aktionen im Zielkonto verweigert.
Ein Code-Beispiel (mit Python) finden Sie unter Wechseln zu einer IAM-Rolle (AWS-API).
Weitere Ressourcen
Die folgenden Ressourcen können Ihnen dabei helfen, mehr über die Themen in diesem Tutorial zu erfahren:
-
Weitere Informationen zu IAM Benutzern finden Sie unterIAM-Identitäten .
-
Weitere Informationen über Amazon-S3-Buckets finden Sie unter Erstellen eines Buckets im Benutzerhandbuch für Amazon Simple Storage Service.
-
Informationen darüber, ob Prinzipale in Konten außerhalb Ihrer Vertrauenszone (vertrauenswürdige Organisation oder vertrauenswürdiges Konto) Zugriff haben, um Ihre Rollen zu übernehmen, finden Sie unter Was ist IAM Access Analyzer? .
Übersicht
Sie haben das Tutorial zum kontoübergreifenden API Zugriff abgeschlossen. Sie haben eine Rolle zum Einrichten einer Vertrauensstellung mit einem anderen Konto und zur Definition der Aktionen erstellt, zu deren Ausführung die vertrauenswürdigen Entitäten berechtigt sind. Anschließend haben Sie eine Rollenrichtlinie geändert, um zu steuern, welche IAM Benutzer auf die Rolle zugreifen können. Dadurch können Entwickler vom Ursprungskonto aus mithilfe temporärer Anmeldeinformationen Aktualisierungen am Bucket amzn-s3-demo-bucket-shared-container
im Zielkonto vornehmen.