IAM-Rollen für Amazon EC2
Anwendungen müssen ihre API-Anforderungen 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 allerdings schwierig, Anmeldeinformationen sicher an alle Instances zu verteilen, insbesondere an solche, die AWS in Ihrem Auftrag erstellt, wie Spot-Instances oder Instances in Auto-Scaling-Gruppen. Bei der Rotation von AWS-Anmeldeinformationen müssen Sie die Anmeldeinformationen auf jeder Instance außerdem aktualisieren können.
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 mithilfe von IAM-Rollen Berechtigungen für API-Anforderungen wie folgt delegieren:
-
Erstellen Sie eine IAM-Rolle.
-
Definieren Sie, welche Konten oder AWS-Services die Rollen annehmen 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. Verwenden Sie für die Windows-Kommunikation gut definierte und gut dokumentierte Windows-Gruppen und -Rollen, um den Zugriff auf Anwendungsebene zwischen Windows-Instances zu gewähren. Gruppen und Rollen ermöglichen es Kunden, Berechtigungen auf Anwendungs- und NTFS-Ordnerebene zu definieren, um den Zugriff auf anwendungsspezifische Anforderungen zu beschränken.
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 zum Erstellen einer Rolle die AWS CLI, API oder ein AWS-SDK verwenden, erstellen Sie die Rollen und das Instance-Profil als separate Aktionen, deren Namen verschieden sein können. Wenn Sie in diesem Fall die AWS CLI, die API oder ein AWS-SDK verwenden, um eine Instance mit einer IAM-Rolle zu starten oder einer Instance eine IAM-Rolle anzufügen, geben Sie den Namen des Instance-Profils 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.
Berechtigungen für Ihren Anwendungsfall
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 prüft Ihre AWS CloudTrail-Protokolle und generiert eine Richtlinienvorlage, die die Berechtigungen enthält, die von der Rolle im angegebenen Datumsbereich 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 benötigt, um mit AWS-Ressourcen für Ihren spezifischen Anwendungsfall zu interagieren. Dies hilft Ihnen, die Best Practice einzuhalten, die geringsten Privilegien zu gewähren. Weitere Informationen finden Sie unter Richtliniengenerierung von IAM Access Analyzer im IAM-Benutzerhandbuch.
Instance-Identitäts-Rollen für Amazon-EC2-Instances
Jede Amazon-EC2-Instance, die Sie starten, hat eine Instance-Identitätsrolle, die ihre Identität repräsentiert. Eine Instance-Identitätsrolle ist eine Art von IAM-Rolle. AWS-Services und Features, die so integriert sind, dass sie die Instance-Identitätsrolle verwenden, können diese nutzen, um die Instance für den Service zu identifizieren.
Auf die Anmeldeinformationen für die Instance-Identitätsrolle können Sie über den Instance Metadata Service (IMDS) unter /identity-credentials/ec2/security-credentials/ec2-instance
zugreifen. Die Anmeldeinformationen bestehen aus einem AWS temporären Zugriffsschlüsselpaar und einem Sitzungs-Token. Sie werden verwendet, um AWS-Sigv4-Anfragen an die AWS-Services zu signieren, die die Instance-Identitätsrolle verwenden. Die Anmeldeinformationen sind in den Instance-Metadaten vorhanden, unabhängig davon, ob ein Service oder ein Feature, welches Instance-Identitätsrollen verwendet, in der Instance aktiviert ist.
Instance-Identitätsrollen werden automatisch erstellt, wenn eine Instance gestartet wird. Sie haben kein Rollenvertrauensrichtliniendokument und unterliegen keiner Identitäts- oder Ressourcenrichtlinie.
Unterstützte Services
Die folgenden AWS-Services verwenden die Instance-Identitätsrolle:
-
Amazon EC2 – EC2 Instance Connect verwendet die Instance-Identitätsrolle, um die Host-Schlüssel einer Linux-Instance zu aktualisieren.
-
Amazon GuardDuty – Laufzeit-Überwachung verwendet die Rolle der Instance-Identität, um dem Laufzeit-Agenten zu ermöglichen, Sicherheitstelemetrie an den GuardDuty-VPC-Endpunkt zu senden.
-
AWS Security Token Service(AWS STS) – Die Anmeldeinformationen der Instance-Identitätsrolle können mit der AWS STS
GetCallerIdentity
-Aktion verwendet werden. -
AWS Systems Manager – Bei Verwendung der Standard-Hostverwaltungskonfiguration verwendet AWS Systems Manager die von der Instance-Identitätsrolle bereitgestellte Identität, um EC2-Instances zu registrieren. Nach der Identifizierung Ihrer Instance kann Systems Manager Ihre
AWSSystemsManagerDefaultEC2InstanceManagementRole
-IAM-Rolle an Ihre Instance weitergeben.
Instance-Identitätsrollen können nicht mit anderen AWS-Services oder Features verwendet werden, da diese über keine Integration mit Instance-Identitätsrollen verfügen.
Instance-Identitäts-Rollen-ARN
Die Instance-Identitätsrollen-ARN hat das folgende Format:
arn:
aws-partition
:iam::account-number
:assumed-role/aws:ec2-instance/instance-id
Beispielsweise:
arn:
aws
:iam::0123456789012
:assumed-role/aws:ec2-instance/i-0123456789example
Weitere Informationen zu ARNs finden Sie unter Amazon-Ressourcennamen (ARNs) im IAM-Benutzerhandbuch.