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.
IAM-Rollen für Amazon EC2
Anwendungen müssen ihre API-Anfragen mit AWS Anmeldeinformationen signieren. Als Anwendungs-Developer benötigen Sie daher eine Strategie zur Verwaltung der Anmeldeinformationen für die Anwendungen, die auf EC2-Instances ausgeführt werden. Sie können zum Beispiel die AWS -Anmeldeinformationen sicher an die Instances verteilen, damit die Anwendungen auf diesen Instances sie zum Signieren von Anforderungen verwenden können, während Ihre Anmeldeinformationen vor anderen Benutzern geschützt bleiben. Es ist jedoch schwierig, Anmeldeinformationen sicher an jede Instance zu verteilen, insbesondere an diejenigen, die in Ihrem Namen AWS erstellt werden, wie Spot-Instances oder Instances in Auto Scaling Scaling-Gruppen. Sie müssen auch in der Lage sein, die Anmeldeinformationen für jede Instance zu aktualisieren, wenn Sie Ihre AWS Anmeldeinformationen wechseln.
Anmerkung
Für Ihre Amazon-EC2-Workloads empfehlen wir, dass Sie die Anmeldeinformationen für die Sitzung mit der unten beschriebenen Methode abrufen. Diese Anmeldeinformationen sollten es Ihrem Workload ermöglichen, AWS -API-Anfragen zu stellen, ohne sts:AssumeRole
verwenden zu müssen, um dieselbe Rolle zu übernehmen, die bereits mit dieser Instance verknüpft ist. Nur wenn Sie Sitzungs-Tags für die attributbasierte Zugriffskontrolle (ABAC) übergeben oder eine Sitzungsrichtlinie übergeben müssen, um die Berechtigungen der Rolle weiter einzuschränken, sind solche Rollenannahmeaufrufe erforderlich, da sie einen neuen Satz derselben temporären Anmeldeinformationen für die Rollensitzung erstellen.
Wenn Ihr Workload eine Rolle verwendet, um sich selbst anzunehmen, müssen Sie eine Vertrauensrichtlinie erstellen, die ausdrücklich zulässt, dass diese Rolle sich selbst annimmt. Wenn Sie die Vertrauensrichtlinie nicht erstellen, erhalten Sie den Fehler AccessDenied
. Weitere Informationen finden Sie unter Ändern einer Vertrauensrichtlinie für Rollen im IAM-Benutzerhandbuch.
Wir haben IAM-Rollen entworfen, damit Ihre Anwendungen die API-Anforderungen sicher von Ihren Instances senden können, ohne dass Sie die von den Anwendungen verwendeten Sicherheitsanmeldeinformationen verwalten müssen. Anstatt Ihre AWS Anmeldeinformationen zu erstellen und zu verteilen, können Sie die Berechtigung zum Stellen von API-Anfragen mithilfe von IAM-Rollen wie folgt delegieren:
-
Erstellen Sie eine IAM-Rolle.
-
Definieren Sie, welche Konten oder AWS Dienste die Rolle übernehmen können.
-
Definieren Sie, welche API-Aktionen und -Ressourcen die Anwendung nach Annahme der Rolle verwenden kann.
-
Geben Sie die Rolle beim Starten der Instance an oder verknüpfen Sie die Rolle mit einer vorhandenen Instance.
-
Lassen Sie die Anwendung einen Satz vorübergehende Anmeldeinformationen abrufen und verwenden.
Verwenden Sie IAM-Rollen zum Beispiel zum Erteilen von Berechtigungen für Anwendungen, die auf Instances ausgeführt werden, die einen Bucket in Amazon S3 verwenden müssen. Sie können Berechtigungen für IAM-Rollen angeben, indem Sie eine Richtlinie im JSON-Format erstellen. Diese Richtlinien sind denen ähnlich, die Sie für -Benutzer erstellen. Wenn Sie an einer Rolle etwas ändern, wird diese Änderung an alle Instances weitergegeben.
Anmerkung
Die Anmeldeinformationen für Amazon EC2 IAM-Rollen unterliegen nicht der in der Rolle konfigurierten maximalen Sitzungsdauer. Weitere Informationen finden Sie unter IAM-Rollen verwenden im IAM-Benutzerhandbuch.
Beim Erstellen von IAM-Rollen ordnen Sie IAM-Richtlinien mit geringsten Berechtigungen zu, die den Zugriff auf die spezifischen API-Aufrufe einschränken, die die Anwendung benötigt.
Sie können nur eine IAM-Rolle an eine Instance anhängen, aber Sie können die gleiche Rolle an viele Instances anhängen. Weitere Informationen zum Erstellen und Verwenden von IAM-Rollen finden Sie unter Rollen im IAM-Benutzerhandbuch.
Sie können Berechtigungen auf Ressourcenebene auf Ihre IAM-Richtlinien anwenden, um zu steuern, ob Benutzer einer Instance IAM-Rollen anfügen, diese ersetzen oder trennen können. Weitere Informationen finden Sie unter Unterstützte Berechtigungen auf Ressourcenebene für Amazon EC2-API-Aktionen und in diesem Beispiel: Beispiel: Arbeiten mit IAM-Rollen.
Inhalt
Instance-Profile
Amazon EC2 verwendet ein Instance-Profil als Container für eine IAM-Rolle. Wenn Sie eine IAM-Rolle mithilfe der IAM-Konsole erstellen, erzeugt die Konsole automatisch ein Instance-Profil und gibt ihm denselben Namen wie der entsprechenden Rolle. Wenn Sie die Amazon EC2-Konsole verwenden, um eine Instance mit einer IAM-Rolle zu starten oder einer Instance eine IAM-Rolle anzufügen, wählen Sie die Rolle aus einer Liste von Instance-Profilnamen aus.
Wenn Sie die AWS CLI API oder ein AWS SDK verwenden, um eine Rolle zu erstellen, erstellen Sie die Rolle und das Instance-Profil als separate Aktionen mit möglicherweise unterschiedlichen Namen. Wenn Sie dann die AWS CLI API oder ein AWS SDK verwenden, um eine Instance mit einer IAM-Rolle zu starten oder einer Instance eine IAM-Rolle zuzuweisen, geben Sie den Namen des Instanzprofils an.
Ein Instance-Profil kann nur eine IAM-Rolle enthalten. Dieses Limit kann nicht erhöht werden.
Weitere Informationen finden Sie unter Instance-Profile im IAM-Benutzerhandbuch.
Abrufen von Sicherheitsanmeldeinformationen aus Instance-Metadaten
Eine Anwendung auf der Instance ruft die von der Rolle bereitgestellten Sicherheitsanmeldeinformationen aus dem Instance-Metadatenelement iam/security-credentials/
Rollenname ab. Über die mit der Rolle verknüpften Sicherheitsanmeldeinformationen werden der Anwendung die Berechtigungen für die Aktionen und Ressourcen gewährt, die Sie für die Rolle definiert haben. Diese Sicherheitsanmeldeinformationen sind temporär und werden automatisch gewechselt. Neue Anmeldeinformationen stehen spätestens fünf Minuten vor dem Ablauf der alten zur Verfügung.
Warnung
Wenn Sie Services verwenden, die Instance-Metadaten mit IAM-Rollen nutzen, müssen Sie sicherstellen, dass Sie Ihre Anmeldeinformationen nicht zur Verfügung stellen, wenn die Services HTTP-Aufrufe in Ihrem Auftrag senden. Zu den Service-Typen, die Anmeldeinformationen verfügbar machen könnten, gehören HTTP-Proxys, HTML-/CSS-Validierungs-Services und XML-Prozessoren, die die XML-Aufnahme unterstützen.
Mit dem folgenden Befehl werden die Sicherheitsanmeldeinformationen für eine IAM-Rolle namens s3access
abgerufen.
Es folgt eine Beispielausgabe.
{
"Code" : "Success",
"LastUpdated" : "2012-04-26T16:39:16Z",
"Type" : "AWS-HMAC",
"AccessKeyId" : "ASIAIOSFODNN7EXAMPLE",
"SecretAccessKey" : "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"Token" : "token",
"Expiration" : "2017-05-17T15:09:54Z"
}
Für Anwendungen und Tools for PowerShell Windows-Befehle AWS CLI, die auf der Instance ausgeführt werden, müssen Sie die temporären Sicherheitsanmeldedaten nicht explizit abrufen — die AWS SDKs AWS CLI, und Tools für Windows rufen die Anmeldeinformationen PowerShell automatisch vom EC2-Instance-Metadatendienst ab und verwenden sie. Für einen Aufruf außerhalb der Instance mithilfe der temporären Sicherheitsanmeldeinformationen (beispielsweise um IAM-Richtlinien zu testen) müssen Sie den Zugriffsschlüssel, den geheimen Schlüssel und das Sitzungs-Token zur Verfügung stellen. Weitere Informationen finden Sie unter Verwenden temporärer Sicherheitsanmeldedaten, um Zugriff auf AWS Ressourcen anzufordern im IAM-Benutzerhandbuch.
Weitere Informationen zu Instance-Metadaten erhalten Sie unter Instance-Metadaten und Benutzerdaten. Hinweise zur IP-Adresse der Instance-Metadaten finden Sie unter Abrufen von Instance-Metadaten.
Gewähren von Berechtigungen für Benutzer zur Weitergabe einer IAM-Rolle an eine Instance
Damit ein Benutzer eine Instance mit einer IAM-Rolle aktivieren oder eine IAM-Rolle für eine vorhandene Instance anfügen oder ersetzen kann, müssen Sie dem Benutzer die Berechtigung zur Verwendung der folgenden API-Aktionen gewähren:
-
iam:PassRole
-
ec2:AssociateIamInstanceProfile
-
ec2:ReplaceIamInstanceProfileAssociation
Die folgende IAM-Richtlinie erteilt Benutzern beispielsweise die Berechtigung zum Starten von Instances mit einer IAM-Rolle oder zum Anhängen oder Ersetzen einer IAM-Rolle für eine vorhandene Instance mithilfe von AWS CLI.
Anmerkung
Wenn Sie möchten, dass die Richtlinie Benutzern Zugriff auf alle Ihre Rollen gewährt, geben Sie die Ressource als *
in der Richtlinie an. Als bewährte Methode sollten Sie dabei jedoch das Prinzip der minimalen Rechtevergabe beachten.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:RunInstances", "ec2:AssociateIamInstanceProfile", "ec2:ReplaceIamInstanceProfileAssociation" ], "Resource": "*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/DevTeam*" } ] }
Um Benutzern die Berechtigung zum Starten von Instances mit einer IAM-Rolle oder zum Anhängen oder Ersetzen einer IAM-Rolle für eine vorhandene Instance mithilfe der Amazon-EC2-Konsole zu erteilen, müssen Sie ihnen die Berechtigung erteilen, iam:ListInstanceProfiles
, iam:PassRole
, ec2:AssociateIamInstanceProfile
und ec2:ReplaceIamInstanceProfileAssociation
zusätzlich zu anderen zu verwenden Berechtigungen, die sie möglicherweise benötigen. Beispiele für Richtlinien finden Sie unter Beispielrichtlinien für die Arbeit in der Amazon EC2-Konsole.
Arbeiten mit IAM-Rollen
Sie können eine IAM-Rolle erstellen und sie während des Starts oder danach einer Instance anfügen. Sie können eine IAM-Rolle für eine Instance auch ersetzen oder trennen.
Inhalt
Erstellen Sie eine IAM-Rolle
Sie müssen eine IAM-Rolle erstellen, bevor Sie eine Instance mit dieser Rolle starten oder die Rolle einer Instance anfügen können.
Starten einer Instance mit einer IAM-Rolle
Nachdem Sie eine IAM-Rolle erstellt haben, können Sie eine Instance starten und dabei die Rolle mit der Instance verknüpfen.
Wichtig
Nach der Erstellung einer IAM-Rolle kann es mehrere Sekunden dauern, bis die Weiterleitung der Berechtigungen abgeschlossen ist. Wenn Sie beim ersten Versuch, eine Instance mit einer Rolle zu starten, einen Fehler erhalten, warten Sie einige Sekunden, bevor Sie es erneut versuchen. Weitere Informationen finden Sie unter Fehlerbehebung bei IAM-Rollen im IAM-Benutzerhandbuch.
Anfügen einer IAM-Rolle an eine Instance
Um eine IAM-Rolle an eine Instance ohne Rolle anzufügen, kann sich die Instance im Zustand stopped
oder running
befinden.
Ersetzen einer IAM-Rolle
Um die IAM-Rolle in einer Instance zu ersetzen, an die bereits eine IAM-Rolle angefügt ist, muss sich die Instance im Zustand running
befinden. Sie können dies tun, wenn Sie die IAM-Rolle für eine Instance ändern möchten, ohne zuvor die vorhandene Instance zu trennen. Sie können dies beispielsweise tun, um sicherzustellen, dass die von Anwendungen auf der Instance ausgeführten API-Aktionen nicht unterbrochen werden.
Trennen einer IAM-Rolle
Sie können eine IAM-Rolle von einer laufenden oder angehaltenen Instance trennen.
Generieren einer Richtlinie für Ihre IAM-Rolle basierend auf Zugriffsaktivitäten
Wenn Sie zum ersten Mal eine IAM-Rolle für Ihre Anwendungen erstellen, können Sie manchmal Berechtigungen erteilen, die über das erforderliche hinausgehen. Bevor Sie Ihre Anwendung in Ihrer Produktionsumgebung starten, können Sie eine IAM-Richtlinie generieren, die auf der Zugriffsaktivität für eine IAM-Rolle basiert. IAM Access Analyzer überprüft Ihre AWS CloudTrail Protokolle und generiert eine Richtlinienvorlage, die die Berechtigungen enthält, die von der Rolle in Ihrem angegebenen Zeitraum verwendet wurden. Sie können die Vorlage verwenden, um eine verwaltete Richtlinie mit definierten Berechtigungen zu erstellen und sie dann an die IAM-Rolle anzuhängen. Auf diese Weise gewähren Sie nur die Berechtigungen, die die Rolle für die Interaktion mit AWS Ressourcen für Ihren speziellen Anwendungsfall benötigt. Dies hilft Ihnen, die Best Practice einzuhalten, die geringsten Privilegien zu gewähren. Weitere Informationen finden Sie unter Generieren von Richtlinien basierend auf Zugriffsaktivitäten im IAM-Benutzerhandbuch.