Zu einer IAM Rolle wechseln (AWS CLI) - AWS Identitäts- und Zugriffsverwaltung

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.

Zu einer IAM Rolle wechseln (AWS CLI)

Eine Rolle gibt eine Reihe von Berechtigungen an, die Sie für den Zugriff verwenden können AWS Ressourcen, die Sie benötigen. In diesem Sinne ähnelt es einem Benutzer in AWS Identity and Access Management(IAM). Wenn Sie sich als Benutzer anmelden, erhalten Sie einen bestimmten Satz von Berechtigungen. Sie melden sich jedoch nicht bei einer Rolle an. Wenn Sie sich aber als Benutzer angemeldet haben, können Sie zu einer Rolle wechseln. Dadurch werden Ihre ursprünglichen Benutzerberechtigungen vorübergehend zurückgestellt und Sie erhalten stattdessen die der Rolle zugewiesenen Berechtigungen. Die Rolle kann in Ihrem eigenen oder einem anderen Konto sein AWS-Konto. Weitere Informationen zu Rollen, ihren Vorteilen und ihrer Erstellung und Konfiguration finden Sie IAMRollen unter undIAMErstellung von Rollen. Weitere Informationen zu den unterschiedlichen Methoden, die Sie zum Übernehmen einer Rolle verwenden können, finden Sie unter Methoden, um eine Rolle zu übernehmen.

Wichtig

Die Berechtigungen Ihres IAM Benutzers und aller Rollen, die Sie annehmen, sind nicht kumulativ. Es ist nur jeweils ein Satz von Berechtigungen aktiv. Wenn Sie eine Rolle annehmen, geben Sie Ihre vorherigen Benutzer- oder Rollenberechtigungen temporär auf und arbeiten mit den Berechtigungen, die der Rolle zugeordnet sind. Wenn Sie die Rolle verlassen, werden Ihre Benutzerberechtigungen automatisch wiederhergestellt.

Sie können eine Rolle verwenden, um eine auszuführen AWS CLI Befehl, wenn Sie als IAM Benutzer angemeldet sind. Sie können eine Rolle auch verwenden, um eine AWS CLI Befehl, wenn Sie als extern authentifizierter Benutzer (SAMLoder OIDC) angemeldet sind, der bereits eine Rolle verwendet. Darüber hinaus können Sie eine Rolle verwenden, um eine AWS CLI Befehl innerhalb einer EC2 Amazon-Instance, die über ihr Instance-Profil mit einer Rolle verknüpft ist. Sie können keine Rolle übernehmen, wenn Sie angemeldet sind als Root-Benutzer des AWS-Kontos.

Verketten von Rollen – Sie können auch das Verketten von Rollen verwenden, was bedeutet, Berechtigungen einer Rolle für den Zugriff auf eine zweite Rolle zu verwenden.

Standardmäßig ist Ihre Rollensitzung eine Stunde gültig. Wenn Sie diese Rolle mithilfe der assume-role* CLI Operationen übernehmen, können Sie einen Wert für den duration-seconds Parameter angeben. Dieser Wert kann zwischen 900 Sekunden (15 Minuten) und der maximalen Sitzungsdauer für die Rolle liegen. Wenn Sie in der Konsole die Rollen wechseln, ist Ihre Sitzungsdauer auf maximal eine Stunde begrenzt. Weitere Informationen dazu, wie Sie den maximalen Wert für Ihre Rolle anzeigen, finden Sie unter Aktualisieren Sie die maximale Sitzungsdauer für eine Rolle.

Wenn Sie die Verkettung von Rollen verwenden, ist Ihre Sitzungsdauer auf die maximale Dauer von einer Stunde begrenzt. Wenn Sie den duration-seconds-Parameter verwenden, um einen Wert größer als eine Stunde anzugeben, schlägt die Operation fehl.

Beispielszenario: Wechseln zu einer Produktionsrolle

Stellen Sie sich vor, Sie sind ein IAM Benutzer für die Arbeit in der Entwicklungsumgebung. In diesem Szenario müssen Sie gelegentlich mit der Produktionsumgebung an der Befehlszeile mit dem AWS CLI. Ihnen steht bereits ein Satz von Zugangsschlüsseln zur Verfügung. Dies kann das Zugriffsschlüsselpaar sein, das Ihrem IAM Standardbenutzer zugewiesen ist. Wenn Sie dagegen als Verbundbenutzer angemeldet sind, kann es sich um das Zugriffsschlüsselpaar für die Rolle handeln, die Ihnen ursprünglich zugewiesen wurde. Wenn Sie aufgrund Ihrer aktuellen Berechtigungen eine bestimmte IAM Rolle übernehmen können, können Sie diese Rolle in einem „Profil“ in der AWS CLI Konfigurationsdateien. Dieser Befehl wird dann mit den Berechtigungen der angegebenen IAM Rolle ausgeführt, nicht mit der ursprünglichen Identität. Beachten Sie, dass, wenn Sie dieses Profil in einem angeben AWS CLI Befehl, Sie verwenden die neue Rolle. In dieser Situation können Sie nicht gleichzeitig die ursprünglichen Berechtigungen im Entwicklungskonto nutzen. Der Grund besteht darin, dass zu einem bestimmten Zeitpunkt nur jeweils ein Satz Berechtigungen wirksam sein kann.

Anmerkung

Aus Sicherheitsgründen können Administratoren Folgendes überprüfen AWS CloudTrail Protokolle, um zu erfahren, wer eine Aktion ausgeführt hat AWS. Ihr Administrator verlangt möglicherweise, dass Sie eine Quellidentität oder einen Rollensitzungsnamen angeben, wenn Sie die Rolle übernehmen. Weitere Informationen erhalten Sie unter sts:SourceIdentity und sts:RoleSessionName.

Um zu einer Produktionsrolle zu wechseln (AWS CLI)
  1. Wenn Sie das noch nie benutzt haben AWS CLI, dann müssen Sie zuerst Ihr CLI Standardprofil konfigurieren. Öffnen Sie eine Befehlszeile und richten Sie Ihre ein AWS CLI Installation, um den Zugriffsschlüssel Ihres IAM Benutzers oder Ihrer Verbundrolle zu verwenden. Weitere Informationen finden Sie unter Konfiguration der AWS Command Line Interface in der AWS Command Line Interface Benutzerleitfaden.

    Konfigurieren Sie die mit dem Befehl wie folgt:

    aws configure

    Wenn Sie dazu aufgefordert werden, geben Sie die folgenden Informationen an:

    AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: us-east-2 Default output format [None]: json
  2. Erstellen Sie ein neues Profil für die Rolle in der Datei .aws/config in Unix oder Linux oder in der Datei C:\Users\USERNAME\.aws\config in Windows. Im folgenden Beispiel wird ein Profil mit dem Namen prodaccess erstellt, das zur Rolle ProductionAccessRole im 123456789012-Konto wechselt. Sie erhalten die Rolle ARN von dem Kontoadministrator, der die Rolle erstellt hat. Wenn dieses Profil aufgerufen wird, AWS CLI verwendet die Anmeldeinformationen vonsource_profile, um Anmeldeinformationen für die Rolle anzufordern. Daher muss die Identität, die als source_profile referenziert ist, über sts:AssumeRole-Berechtigungen für die Rolle verfügen, die in role_arn angegeben ist.

    [profile prodaccess] role_arn = arn:aws:iam::123456789012:role/ProductionAccessRole source_profile = default
  3. Nachdem Sie das neue Profil erstellt haben, können Sie AWS CLI Der Befehl, der den Parameter angibt, --profile prodaccess wird unter den Berechtigungen ausgeführt, die der IAM Rolle zugewiesen sind, und ProductionAccessRole nicht unter den Berechtigungen des Standardbenutzers.

    aws iam list-users --profile prodaccess

    Dieser Befehl funktioniert, wenn die dem Befehl zugewiesenen Berechtigungen die Liste der Benutzer in der aktuellen Liste ProductionAccessRole aktivieren AWS Konto.

  4. Um zu den Berechtigungen zurückzukehren, die von Ihren ursprünglichen Anmeldeinformationen erteilt wurden, führen Sie Befehle ohne den --profile-Parameter. Das Tool AWS CLI verwendet wieder die Anmeldeinformationen in Ihrem Standardprofil, das Sie konfiguriert haben. Schritt 1

Weitere Informationen finden Sie unter Übernahme einer Rolle in AWS Command Line Interface Benutzerleitfaden.

Beispielszenario: Einer Instance-Profilrolle erlauben, zu einer Rolle in einem anderen Konto zu wechseln

Stellen Sie sich vor, Sie verwenden zwei AWS-Konten, und Sie möchten zulassen, dass eine Anwendung, die auf einer EC2 Amazon-Instance läuft, ausgeführt wird AWS CLIBefehle in beiden Konten. Gehen Sie davon aus, dass die EC2 Instanz im Konto vorhanden ist111111111111. Diese Instance enthält die abcd-Instance-Profilrolle, die der Anwendung erlaubt, schreibgeschützte Amazon S3-Aufgaben für den amzn-s3-demo-bucket1-Bucket innerhalb desselben 111111111111 Kontos auszuführen. Die Anwendung muss aber auch berechtigt sein, die kontoübergreifende efgh-Rolle zu übernehmen, um Aufgaben im Konto 222222222222 auszuführen. Zu diesem Zweck muss die abcd EC2 Instanzprofilrolle über die folgende Berechtigungsrichtlinie verfügen:

Konto 111111111111 abcd Rollen-Berechtigungsrichtlinie

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccountLevelS3Actions", "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetAccountPublicAccessBlock", "s3:ListAccessPoints", "s3:ListAllMyBuckets" ], "Resource": "arn:aws:s3:::*" }, { "Sid": "AllowListAndReadS3ActionOnMyBucket", "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1/*", "arn:aws:s3:::amzn-s3-demo-bucket1" ] }, { "Sid": "AllowIPToAssumeCrossAccountRole", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::222222222222:role/efgh" } ] }

Gehen Sie davon aus, dass die kontoübergreifende efgh-Rolle die Ausführung schreibgeschützter Amazon S3-Aufgaben für den amzn-s3-demo-bucket2-Bucket im selben 222222222222-Konto zulässt. Dazu muss der kontoübergreifenden efgh-Rolle die folgende Berechtigungsrichtlinie zugeordnet sein:

Konto 222222222222 efgh Rollen-Berechtigungsrichtlinie

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccountLevelS3Actions", "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetAccountPublicAccessBlock", "s3:ListAccessPoints", "s3:ListAllMyBuckets" ], "Resource": "arn:aws:s3:::*" }, { "Sid": "AllowListAndReadS3ActionOnMyBucket", "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket2/*", "arn:aws:s3:::amzn-s3-demo-bucket2" ] } ] }

Die efgh-Rolle muss der abcd-Instance-Profilrolle die Übernahme erlauben. Dazu benötigt die efgh-Rolle die folgende Vertrauensrichtlinie:

Konto 222222222222 efgh Rollen-Berechtigungsrichtlinie

{ "Version": "2012-10-17", "Statement": [ { "Sid": "efghTrustPolicy", "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": {"AWS": "arn:aws:iam::111111111111:role/abcd"} } ] }

Um dann zu starten AWS CLI Befehle im Konto222222222222, Sie müssen die CLI Konfigurationsdatei aktualisieren. Identifizieren Sie die efgh Rolle als „Profil“ und die abcd EC2 Instanzprofilrolle als „Quelle für Anmeldeinformationen“ in AWS CLI Konfigurationsdatei. Dann werden Ihre CLI Befehle mit den Berechtigungen der efgh Rolle ausgeführt, nicht mit der ursprünglichen abcd Rolle.

Anmerkung

Aus Sicherheitsgründen können Sie Folgendes verwenden AWS CloudTrail um die Verwendung von Rollen im Konto zu überprüfen. Um in CloudTrail Protokollen zwischen Rollensitzungen zu unterscheiden, wenn eine Rolle von verschiedenen Hauptbenutzern verwendet wird, können Sie den Namen der Rollensitzung verwenden. Wann AWS CLI übernimmt eine Rolle im Namen eines Benutzers, wie in diesem Thema beschrieben, wird automatisch ein Rollensitzungsname als erstelltAWS-CLI-session-nnnnnnnn. Hier nnnnnnnn ist eine Ganzzahl, die die Zeit in der Unix-Epochenzeit darstellt (die Anzahl der Sekunden seit Mitternacht UTC am 1. Januar 1970). Weitere Informationen finden Sie unter CloudTrail Event Reference im AWS CloudTrail Benutzerleitfaden.

Um zu ermöglichen, dass eine EC2 Instanzprofilrolle zu einer kontoübergreifenden Rolle wechselt (AWS CLI)
  1. Sie müssen kein CLI Standardprofil konfigurieren. Stattdessen können Sie Anmeldeinformationen aus den Metadaten des EC2 Instanzprofils laden. Erstellen Sie ein neues Profil für die Rolle in der .aws/config-Datei. Das folgende Beispiel erstellt ein instancecrossaccount-Profil, das zur efgh-Rolle im 222222222222-Konto wechselt. Wenn dieses Profil aufgerufen wird, AWS CLI verwendet die Anmeldeinformationen der Metadaten des EC2 Instanzprofils, um Anmeldeinformationen für die Rolle anzufordern. Aus diesem Grund muss die EC2 Instanzprofilrolle über sts:AssumeRole Berechtigungen für die in der angegebene Rolle verfügenrole_arn.

    [profile instancecrossaccount] role_arn = arn:aws:iam::222222222222:role/efgh credential_source = Ec2InstanceMetadata
  2. Nachdem Sie das neue Profil erstellt haben, können Sie AWS CLI Der Befehl, der den Parameter angibt, --profile instancecrossaccount wird unter den Berechtigungen ausgeführt, die der efgh Rolle im Konto zugewiesen sind222222222222.

    aws s3 ls amzn-s3-demo-bucket2 --profile instancecrossaccount

    Dieser Befehl funktioniert, wenn die der efgh Rolle zugewiesenen Berechtigungen das Auflisten der Benutzer in der aktuellen Liste zulassen AWS-Konto.

  3. Um zu den ursprünglichen EC2 Instanzprofilberechtigungen im Konto zurückzukehren111111111111, führen Sie die CLI Befehle ohne den --profile Parameter aus.

Weitere Informationen finden Sie unter Übernahme einer Rolle in AWS Command Line Interface Benutzerleitfaden.