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.
Eine Rolle AWS Identity and Access Management (IAM) ist ein Autorisierungstool, mit dem ein Benutzer zusätzliche (oder andere) Berechtigungen oder Berechtigungen zum Ausführen von Aktionen in einem anderen AWS Konto erhält.
Themen
- Voraussetzungen
- Überblick über die Verwendung von IAM Rollen
- Konfigurieren und Verwenden einer Rolle
- Verwenden von Multi-Factor Authentication (MFA)
- Kontenübergreifende Rollen und externe ID
- Angeben eines Rollensitzungsnamens für eine einfachere Prüfung
- Übernehmen einer Rolle mit Web-Identität
- Anmeldeinformationen aus dem Cache löschen
Voraussetzungen
Wenn Sie diese iam
-Befehle verwenden möchten, müssen Sie die AWS CLI installieren und konfigurieren. Weitere Informationen finden Sie unter Installation oder Aktualisierung auf die neueste Version von AWS CLI.
Überblick über die Verwendung von IAM Rollen
Sie können AWS Command Line Interface (AWS CLI) für die Verwendung einer IAM Rolle konfigurieren, indem Sie ein Profil für die Rolle in der ~/.aws/config
Datei definieren.
Im folgenden Beispiel sehen Sie ein Rollenprofil namens marketingadmin
. Wenn Sie Befehle mit ausführen --profile marketingadmin
(oder sie mit der AWS_PROFILEUmgebungsvariablen angeben), AWS CLI verwendet der die in einem separaten Profil definierten Anmeldeinformationen, user1
um die Rolle mit dem Amazon-Ressourcennamen (ARN) anzunehmenarn:aws:iam::
. Sie können alle Operationen ausführen, die gemäß den der Rolle zugewiesenen Berechtigungen zulässig sind.123456789012
:role/marketingadminrole
[profile
marketingadmin
] role_arn = arn:aws:iam::123456789012
:role/marketingadminrole
source_profile = user1
Sie können dann ein source_profile
angeben, das auf ein separates benanntes Profil zeigt, welches Benutzer-Anmeldeinformationen mit der Berechtigung zur Verwendung der Rolle enthält. Im vorherigen Beispiel verwendet das Profil marketingadmin
die Anmeldeinformationen im Profil user1
. Wenn Sie angeben, dass ein AWS CLI Befehl das Profil verwenden sollmarketingadmin
, sucht das AWS CLI automatisch nach den Anmeldeinformationen für das verknüpfte user1
Profil und verwendet sie, um temporäre Anmeldeinformationen für die angegebene IAM Rolle anzufordern. Der CLI verwendet dazu die AssumeRole Operation sts: im Hintergrund. Diese temporären Anmeldeinformationen werden dann verwendet, um den angeforderten AWS CLI -Befehl ausführen. An die angegebene Rolle müssen IAM Berechtigungsrichtlinien angehängt sein, die die Ausführung des angeforderten AWS CLI Befehls ermöglichen.
Um einen AWS CLI Befehl innerhalb einer Amazon Elastic Compute Cloud (AmazonEC2) -Instance oder eines Amazon Elastic Container Service (AmazonECS) -Containers auszuführen, können Sie eine IAM Rolle verwenden, die dem Instance-Profil oder dem Container zugewiesen ist. Wenn Sie kein Profil angeben oder keine Umgebungsvariablen festlegen, wird diese Rolle direkt verwendet. So müssen Sie keine Langzeit-Zugriffsschlüssel in Ihren Instances speichern. Sie können diese Instance- oder Container-Rollen auch verwenden, um Anmeldeinformationen für eine andere Rolle abzurufen. Zu diesem Zweck verwenden Sie credential_source
(anstelle von source_profile
), um anzugeben, wie die Anmeldeinformationen zu finden sind. Das Attribut credential_source
unterstützt die folgenden Werte:
-
Environment
– um die Quell-Anmeldeinformationen aus Umgebungsvariablen abzurufen. -
Ec2InstanceMetadata
— Verwendet die IAM Rolle, die dem EC2 Amazon-Instance-Profil zugewiesen ist. -
EcsContainer
— Verwendet die IAM Rolle, die dem ECS Amazon-Container zugewiesen ist.
Das folgende Beispiel zeigt dieselbe marketingadminrole
Rolle, die verwendet wird, indem auf ein EC2 Amazon-Instance-Profil verwiesen wird.
[profile marketingadmin]
role_arn = arn:aws:iam::123456789012:role/marketingadminrole
credential_source = Ec2InstanceMetadata
Wenn Sie eine Rolle aufrufen, stehen Ihnen zusätzliche Optionen zur Verfügung, die Sie anfordern können, z. B. die Verwendung einer Multifaktor-Authentifizierung und einer externen ID (die von Drittanbietern für den Zugriff auf die Ressourcen ihrer Kunden verwendet wird). Sie können auch eindeutige Namen für Rollensitzungen angeben, die einfacher in AWS CloudTrail Protokollen überprüft werden können.
Konfigurieren und Verwenden einer Rolle
Wenn Sie Befehle mit einem Profil ausführen, das eine IAM Rolle spezifiziert, AWS CLI verwendet das die Anmeldeinformationen des Quellprofils, um AWS Security Token Service (AWS STS) aufzurufen und temporäre Anmeldeinformationen für die angegebene Rolle anzufordern. Der Benutzer im Quellprofil muss über die Berechtigung zum Aufrufen von sts:assume-role
für die Rolle im angegebenen Profil verfügen. Die Rolle muss über eine Vertrauensstellung verfügen, die es dem Benutzer im Quellprofil ermöglicht, die Rolle zu übernehmen. Der Prozess des Abrufens mit anschließendem Verwenden von temporären Anmeldeinformationen für eine Rolle wird oft als Annehmen der Rolle bezeichnet.
Sie können eine Rolle IAM mit den Berechtigungen erstellen, die Benutzer annehmen sollen, indem Sie das Verfahren unter Erstellen einer Rolle zum Delegieren von Berechtigungen an einen IAM Benutzer im AWS Identity and Access Management Benutzerhandbuch befolgen. Wenn die Rolle und der -Benutzer des Quellprofils im selben Konto vorhanden sind, können Sie beim Konfigurieren der Vertrauensstellung der Rolle Ihre eigene Konto-ID eingeben.
Nachdem Sie die Rolle erstellt haben, ändern Sie die Vertrauensstellung, um die Übernahme durch den -Benutzer zuzulassen.
Im folgenden Beispiel sehen Sie eine Vertrauensrichtlinie, die Sie einer Rolle anfügen könnten. Mit dieser Richtlinie kann die Rolle von jedem Benutzer im Konto 123456789012 angenommen werden, falls der Administrator des Kontos dem Benutzer explizit die Berechtigung sts:AssumeRole
erteilt.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789012
:root"
},
"Action": "sts:AssumeRole"
}
]
}
Die Vertrauensrichtlinie selbst gewährt keine Berechtigungen. Der Administrator des Kontos muss die Berechtigung zur Übernahme der Rolle an einzelne Benutzer delegieren, indem eine Richtlinie mit den entsprechenden Berechtigungen angefügt wird. Das folgende Beispiel zeigt eine Richtlinie, die Sie einem Benutzer anfügen können und mit der der Benutzer nur die Rolle marketingadminrole
annehmen kann. Weitere Informationen darüber, wie Sie einem Benutzer Zugriff auf die Übernahme einer Rolle gewähren können, finden Sie im Benutzerhandbuch unter Erteilen von Benutzerberechtigungen zum Rollenwechsel. IAM
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::123456789012
:role/marketingadminrole
"
}
]
}
Der Benutzer benötigt keine zusätzlichen Berechtigungen, um die AWS CLI Befehle mithilfe des Rollenprofils auszuführen. Die Berechtigungen zum Ausführen des Befehls entstammen aus den der Rolle angefügten Berechtigungen. Sie fügen der Rolle Berechtigungsrichtlinien hinzu, um anzugeben, welche Aktionen für welche AWS Ressourcen ausgeführt werden können. Weitere Informationen zum Zuweisen von Berechtigungen an eine Rolle (was genauso funktioniert wie bei einem Benutzer) finden Sie unter Ändern von Berechtigungen für einen IAM Benutzer im IAMBenutzerhandbuch.
Nachdem Sie nun das Rollenprofil, die Rollenberechtigungen, die Rollen-Vertrauensstellung und die Benutzerberechtigungen konfiguriert haben, können Sie die Rolle an der Befehlszeile verwenden, indem Sie die Option --profile
aufrufen. Beispiel: Der folgende Befehl ruft den Amazon-S3-Befehl ls
mit den Berechtigungen auf, die an die marketingadmin
-Rolle angefügt sind, wie im Beispiel zu Beginn dieses Themas angegeben.
$
aws s3 ls --profile
marketingadmin
Um die Rolle für mehrere Aufrufe zu verwenden, können Sie die Umgebungsvariable AWS_PROFILE
für die aktuelle Sitzung über die Befehlszeile festlegen. Da die Umgebungsvariable definiert ist, müssen Sie die Option --profile
nicht bei jedem Befehl angeben.
Linux oder macOS
$
export AWS_PROFILE=marketingadmin
Windows
C:\>
setx AWS_PROFILE marketingadmin
Weitere Informationen zur Konfiguration von Benutzern und Rollen finden Sie im Benutzerhandbuch unter IAMIdentitäten (Benutzer, Benutzergruppen und Rollen) und IAMRollen. IAM
Verwenden von Multi-Factor Authentication (MFA)
Für zusätzliche Sicherheit können Sie verlangen, dass Benutzer einen einmaligen Schlüssel angeben, der von einem Gerät mit Multifaktor-Authentifizierung (MFA), einem U2F-Gerät oder einer mobilen App generiert wurde, wenn sie versuchen, über das Rollenprofil einen Anruf zu tätigen.
Zunächst können Sie die Vertrauensstellung für die IAM Rolle so ändern, dass sie erforderlich ist. MFA Auf diese Weise wird verhindert, dass jemand die Rolle verwenden kann, ohne sich zuvor mithilfe MFA von zu authentifizieren. Ein Beispiel finden Sie im folgenden Code in der Zeile Condition
. Diese Richtlinie ermöglicht es dem genannten Benutzer, die Rolle anika
anzunehmen, mit der die Richtlinie verknüpft ist, aber nur, wenn er sich mithilfe von authentifiziert. MFA
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": { "AWS": "arn:aws:iam::123456789012:user/anika" },
"Action": "sts:AssumeRole",
"Condition": { "Bool": { "aws:multifactorAuthPresent": true } }
}
]
}
Als Nächstes fügen Sie dem Rollenprofil eine Zeile hinzu, die das MFA Gerät ARN des Benutzers angibt. In den folgenden Einträgen der Beispieldatei config
verwenden zwei Rollenprofile die Zugriffsschlüssel für den Benutzer anika
, um temporäre Anmeldeinformationen für die Rolle cli-role
anzufordern. Der Benutzer anika
hat die Berechtigung, die Rolle zu übernehmen. Sie wird ihm von der Vertrauensrichtlinie der Rolle erteilt.
[profile role-without-mfa]
region = us-west-2
role_arn= arn:aws:iam::128716708097:role/cli-role
source_profile=cli-user
[profile role-with-mfa]
region = us-west-2
role_arn= arn:aws:iam::128716708097:role/cli-role
source_profile = cli-user
mfa_serial = arn:aws:iam::128716708097:mfa/cli-user
[profile cli-user]
region = us-west-2
output = json
Die mfa_serial
Einstellung kannARN, wie abgebildet, eine oder die Seriennummer eines MFA Hardwaretokens annehmen.
Das erste Profilrole-without-mfa
,, erfordert nichtMFA. Da das vorherige Beispiel für die der Rolle zugeordnete Vertrauensrichtlinie dies erfordertMFA, schlägt jedoch jeder Versuch fehl, einen Befehl mit diesem Profil auszuführen.
$
aws iam list-users --profile role-without-mfa
An error occurred (AccessDenied) when calling the AssumeRole operation: Access denied
Der zweite Profileintrag,role-with-mfa
, identifiziert ein zu MFA verwendendes Gerät. Wenn der Benutzer versucht, einen AWS CLI Befehl mit diesem Profil auszuführen, AWS CLI fordert er den Benutzer auf, das vom MFA Gerät bereitgestellte Einmalkennwort (OTP) einzugeben. Wenn die MFA Authentifizierung erfolgreich ist, führt der Befehl den angeforderten Vorgang aus. Das OTP wird nicht auf dem Bildschirm angezeigt.
$
aws iam list-users --profile role-with-mfa
Enter MFA code for arn:aws:iam::123456789012:mfa/cli-user: { "Users": [ { ...
Kontenübergreifende Rollen und externe ID
Sie können -Benutzern ermöglichen, Rollen zu verwenden, die zu verschiedenen Konten gehören, indem Sie kontenübergreifende Rollen konfigurieren. Stellen Sie bei der Rollenerstellung den Rollentyp auf Anderes AWS Konto ein, wie unter Eine Rolle zum Delegieren von Berechtigungen an einen IAM Benutzer erstellen beschrieben. Wählen Sie optional Erforderlich aus. MFA MFARequire konfiguriert die entsprechende Bedingung in der Vertrauensbeziehung, wie unter beschriebenVerwenden von Multi-Factor Authentication (MFA).
Wenn Sie eine externe ID verwenden, um besser zu kontrollieren, wer eine kontenübergreifende Rolle verwenden kann, müssen Sie auch den Parameter external_id
zum Rollenprofil hinzufügen. Normalerweise verwenden Sie dieses nur, wenn das andere Konto von einer Person außerhalb Ihres Unternehmens kontrolliert wird.
[profile crossaccountrole]
role_arn = arn:aws:iam::234567890123
:role/SomeRole
source_profile = default
mfa_serial = arn:aws:iam::123456789012
:mfa/saanvi
external_id = 123456
Angeben eines Rollensitzungsnamens für eine einfachere Prüfung
Wenn viele Personen eine Rolle gemeinsam nutzen, wird die Prüfung zu einer größeren Herausforderung. Sie möchten jede aufgerufene Operation mit der Person verknüpfen, die diese Aktion aufgerufen hat. Wenn die Person jedoch eine Rolle verwendet, ist die Annahme der Rolle durch die Person eine vom Aufrufen einer Operation getrennte Aktion und Sie müssen die beiden manuell korrelieren.
Sie können dies vereinfachen, indem Sie eindeutige Rollensitzungsnamen angeben, wenn Benutzer eine Rolle annehmen. Dazu fügen Sie jedem benannten Profil in der Datei config
, die eine Rolle angibt, einen role_session_name
-Parameter hinzu. Der role_session_name
Wert wird an den AssumeRole
Vorgang übergeben und wird Teil der ARN For-the-Rollensitzung. Er ist auch in den AWS CloudTrail Protokollen für alle protokollierten Vorgänge enthalten.
Sie können beispielsweise folgendermaßen ein rollenbasiertes Profil erstellen.
[profile namedsessionrole]
role_arn = arn:aws:iam::234567890123
:role/SomeRole
source_profile = default
role_session_name = Session_Maria_Garcia
Dies führt dazu, dass die Rollensitzung wie folgt aussiehtARN.
arn:aws:iam::234567890123
:assumed-role/SomeRole
/Session_Maria_Garcia
Außerdem enthalten alle AWS CloudTrail Protokolle den Namen der Rollensitzung in den für jeden Vorgang erfassten Informationen.
Übernehmen einer Rolle mit Web-Identität
Sie können ein Profil so konfigurieren, dass es angibt, dass sie mithilfe von Web Identity Federation und Open ID Connect (OIDC) eine Rolle übernehmen AWS CLI sollen. Wenn Sie dies in einem Profil angeben, führt der AWS CLI
automatisch den entsprechenden AWS STS AssumeRoleWithWebIdentity
Anruf für Sie durch.
Anmerkung
Wenn Sie ein Profil angeben, das eine IAM Rolle verwendet, werden die AWS CLI entsprechenden Aufrufe ausgeführt, um temporäre Anmeldeinformationen abzurufen. Diese Anmeldeinformationen werden in ~/.aws/cli/cache
gespeichert. Nachfolgende AWS CLI Befehle, die dasselbe Profil angeben, verwenden die zwischengespeicherten temporären Anmeldeinformationen, bis sie ablaufen. Zu diesem Zeitpunkt werden die AWS CLI Anmeldeinformationen automatisch aktualisiert.
Um mithilfe des Web-Identitätsverbunds temporäre Anmeldeinformationen abzurufen und zu verwenden, können Sie die folgenden Konfigurationswerte in einem freigegebenen Profil angeben.
- role_arn
-
Gibt die Rolle ARN an, die übernommen werden soll.
- web_identity_token_file
-
Gibt den Pfad zu einer Datei an, die ein OAuth 2.0-Zugriffstoken oder ein OpenID Connect-ID-Token enthält, das vom Identitätsanbieter bereitgestellt wird. Die AWS CLI lädt diese Datei und übergibt den Inhalt als
WebIdentityToken
-Argument an die OperationAssumeRoleWithWebIdentity
. - role_session_name
-
Gibt einen optionalen Namen an, der auf diese Rollenübernahme-Sitzung angewendet wird.
Unten finden Sie eine Beispielkonfiguration für den mindestens erforderlichen Umfang einer Konfiguration für eine angenommene Rolle mit Web-Identitätsprofil.
# In ~/.aws/config [profile web-identity] role_arn=arn:aws:iam:
123456789012
:role/RoleNameToAssume
web_identity_token_file=/path/to/a/token
Sie können diese Konfiguration auch mithilfe von Umgebungsvariablen bereitstellen.
- AWS_ROLE_ARN
-
Die ARN Rolle, die übernommen werden soll.
- AWS_WEB_IDENTITY_TOKEN_FILE
-
Der Pfad zur Datei mit dem Web-Identitäts-Token.
- AWS_ROLE_SESSION_NAME
-
Der Name für diese Sitzung der Rollenübernahme.
Anmerkung
Diese Umgebungsvariablen gelten derzeit nur für die Anbieter für Rollenübernahme mit Web-Identität. Sie gelten nicht für die allgemeine Konfiguration für einen Anbieter für Rollenübernahme.
Anmeldeinformationen aus dem Cache löschen
Wenn Sie eine Rolle verwenden, werden die temporären Anmeldeinformationen lokal AWS CLI zwischengespeichert, bis sie ablaufen. Wenn Sie das nächste Mal versuchen, sie zu verwenden, wird AWS CLI versucht, sie in Ihrem Namen zu erneuern.
Wenn die temporären Anmeldeinformationen Ihrer Rolle widerrufen werden, werden sie nicht automatisch erneuert und Versuche, sie zu verwenden, schlagen fehl. Sie können den Cache jedoch löschen, um das Abrufen neuer Anmeldeinformationen AWS CLI zu erzwingen.
Linux oder macOS
$
rm -r ~/.aws/cli/cache
Windows
C:\>
del /s /q %UserProfile%\.aws\cli\cache