Identitätsbasierte Richtlinien für Amazon EC2 - Amazon Elastic Compute Cloud

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.

Identitätsbasierte Richtlinien für Amazon EC2

Standardmäßig sind Benutzer nicht berechtigt, EC2 Amazon-Ressourcen zu erstellen oder zu ändern oder Aufgaben mithilfe der Amazon- EC2API, EC2 Amazon-Konsole oder auszuführenCLI. Damit Benutzer Ressourcen erstellen oder ändern und Aufgaben ausführen können, müssen Sie IAM Richtlinien erstellen, die Benutzern die Erlaubnis erteilen, die spezifischen Ressourcen und API Aktionen zu verwenden, die sie benötigen, und diese Richtlinien dann den Benutzern, Gruppen oder IAM Rollen zuordnen, für die diese Berechtigungen erforderlich sind.

Wenn Sie eine Richtlinie einem Benutzer, einer Benutzergruppe oder einer Rolle zuweisen, kann diese dem Benutzer die Berechtigung zur Durchführung der angegebenen Aufgaben auf den angegebenen Ressourcen gewähren oder verweigern. Allgemeinere Informationen zu IAM Richtlinien finden Sie unter Richtlinien und Berechtigungen IAM im IAM Benutzerhandbuch. Weitere Informationen zum Verwalten und Erstellen von benutzerdefinierten IAM Richtlinien finden Sie unter IAMRichtlinien verwalten.

Eine IAM Richtlinie muss Berechtigungen zur Nutzung einer oder mehrerer EC2 Amazon-Aktionen gewähren oder verweigern. Zudem muss die Richtlinie die Ressourcen benennen, die für diese Aktion verwendet werden dürfen. Dabei kann es sich um alle Ressourcen oder ggf. auch um bestimmte Ressourcen handeln. Eine Richtlinie kann auch Bedingungen enthalten, die für eine Ressource gelten.

Zunächst können Sie überprüfen, ob die AWS verwalteten Richtlinien für Amazon Ihren EC2 Anforderungen entsprechen. Andernfalls können Sie Ihre eigenen benutzerdefinierten Richtlinien erstellen. Weitere Informationen finden Sie unter AWS verwaltete Richtlinien für Amazon EC2.

Richtliniensyntax

Eine IAM Richtlinie ist ein JSON Dokument, das aus einer oder mehreren Aussagen besteht. Jede Anweisung ist folgendermaßen strukturiert.

{ "Statement":[{ "Effect":"effect", "Action":"action", "Resource":"arn", "Condition":{ "condition":{ "key":"value" } } } ] }

Eine Anweisung kann aus verschiedenen Elementen bestehen:

  • Effect: Der effect-Wert kann Allow oder Deny lauten. Standardmäßig sind Benutzer nicht berechtigt, Ressourcen und API Aktionen zu verwenden, sodass alle Anfragen abgelehnt werden. Dieser Standardwert kann durch eine explizite Zugriffserlaubnis überschrieben werden. Eine explizite Zugriffsverweigerung überschreibt jedwede Zugriffserlaubnis.

  • Aktion: Die Aktion ist die spezifische API Aktion, für die Sie die Erlaubnis erteilen oder verweigern. Weitere Informationen zur Spezifizierung von action finden Sie unter Aktionen für Amazon EC2.

  • Resource: Die von einer Aktion betroffene Ressource. Bei einigen EC2 API Amazon-Aktionen können Sie bestimmte Ressourcen in Ihre Richtlinie aufnehmen, die durch die Aktion erstellt oder geändert werden können. Sie geben eine Ressource mit einem Amazon-Ressourcennamen (ARN) oder mit dem Platzhalter (*) an, um anzugeben, dass die Aussage für alle Ressourcen gilt. Weitere Informationen finden Sie unter Unterstützte Berechtigungen auf Ressourcenebene für Amazon-Aktionen EC2 API.

  • Condition: Bedingungen sind optional. Mit ihrer Hilfe können Sie bestimmen, wann Ihre Richtlinie wirksam ist. Weitere Informationen zur Angabe von Bedingungen für Amazon EC2 finden Sie unterZustandsschlüssel für Amazon EC2.

Weitere Informationen zu den Richtlinienanforderungen finden Sie in der IAMJSONRichtlinienreferenz im IAMBenutzerhandbuch. Beispiele für IAM Grundsatzerklärungen für Amazon EC2 finden Sie unterBeispielrichtlinien zur Zugangskontrolle im Amazon EC2 API.

Aktionen für Amazon EC2

In einer IAM Grundsatzerklärung können Sie jede API Aktion von jedem Service angeben, der dies unterstütztIAM. Verwenden Sie für Amazon EC2 das folgende Präfix mit dem Namen der API Aktion:ec2:. Zum Beispiel ec2:RunInstances und ec2:CreateImage.

Um mehrere Aktionen in einer einzigen Anweisung anzugeben, trennen Sie sie folgendermaßen mit Kommas:

"Action": ["ec2:action1", "ec2:action2"]

Sie können auch mehrere Aktionen mittels Platzhaltern angeben. Beispielsweise können Sie alle Aktionen festlegen, deren Name mit dem Wort "Describe" beginnt:

"Action": "ec2:Describe*"
Anmerkung

Derzeit unterstützen die Amazon EC2 API Describe*-Aktionen keine Berechtigungen auf Ressourcenebene. Weitere Informationen zu Berechtigungen auf Ressourcenebene für Amazon finden Sie EC2 unter. Identitätsbasierte Richtlinien für Amazon EC2

Um alle EC2 API Amazon-Aktionen anzugeben, verwenden Sie den Platzhalter * wie folgt:

"Action": "ec2:*"

Eine Liste der EC2 Amazon-Aktionen finden Sie unter Von Amazon definierte Aktionen EC2 in der Service Authorization Reference.

Unterstützte Berechtigungen auf Ressourcenebene für Amazon-Aktionen EC2 API

Berechtigungen auf Ressourcenebene bedeutet, dass Sie angeben können, für welche Ressourcen die Benutzer Aktionen ausführen dürfen. Amazon EC2 bietet teilweise Unterstützung für Berechtigungen auf Ressourcenebene. Das bedeutet, dass Sie für bestimmte EC2 Amazon-Aktionen steuern können, wann Benutzer diese Aktionen verwenden dürfen, basierend auf Bedingungen, die erfüllt sein müssen, oder auf bestimmten Ressourcen, die Benutzer verwenden dürfen. Sie können Benutzern beispielsweise Berechtigungen zum Starten von Instances gewähren, jedoch nur für einen bestimmten Typ und nur für die Verwendung einer bestimmtenAMI.

Um eine Ressource in einer IAM Richtlinienerklärung anzugeben, verwenden Sie ihren Amazon-Ressourcennamen (ARN). Weitere Informationen zur Angabe des ARN Werts finden Sie unterAmazon-Ressourcennamen (ARNs) für Amazon EC2. Wenn eine API Aktion einzelne Personen nicht unterstütztARNs, müssen Sie einen Platzhalter (*) verwenden, um anzugeben, dass alle Ressourcen von der Aktion betroffen sein können.

Tabellen, die angeben, welche EC2 API Amazon-Aktionen Berechtigungen auf Ressourcenebene unterstützen, ARNs sowie die Bedingungsschlüssel, die Sie in einer Richtlinie verwenden können, finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für Amazon. EC2

Denken Sie daran, dass Sie in den IAM Richtlinien, die Sie für Amazon-Aktionen verwenden, tagbasierte Berechtigungen auf Ressourcenebene anwenden können. EC2 API Dies ermöglicht Ihnen eine bessere Kontrolle darüber, welche Ressourcen ein Benutzer erstellen, ändern oder verwenden kann. Weitere Informationen finden Sie unter Erteilen Sie die Erlaubnis, EC2 Amazon-Ressourcen während der Erstellung zu taggen.

Amazon-Ressourcennamen (ARNs) für Amazon EC2

Jede IAM Richtlinienerklärung gilt für die Ressourcen, die Sie mithilfe ihrer Ressourcen angebenARNs.

An ARN hat die folgende allgemeine Syntax:

arn:aws:[service]:[region]:[account-id]:resourceType/resourcePath
Service nicht zulässig

Der Service (z. B. ec2)

Region

Die Region für die Ressource (z. B. us-east-1)

account-id

Die AWS Konto-ID ohne Bindestriche (z. B.123456789012).

resourceType

Der Typ der Ressource (z. B. instance)

resourcePath

Ein Pfad zur Identifizierung der Ressource. Sie können in den Pfaden das Platzhalterzeichen Sternchen (*) verwenden.

Sie können beispielsweise eine bestimmte Instanz (i-1234567890abcdef0) in Ihrer Anweisung ARN wie folgt angeben.

"Resource": "arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0"

Sie können auch alle Instances angeben, die zu einem bestimmten Konto gehören, indem Sie das Platzhalterzeichen (*) folgendermaßen hinzufügen.

"Resource": "arn:aws:ec2:us-east-1:123456789012:instance/*"

Sie können auch alle EC2 Amazon-Ressourcen angeben, die zu einem bestimmten Konto gehören, indem Sie den Platzhalter * wie folgt verwenden.

"Resource": "arn:aws:ec2:us-east-1:123456789012:*"

Um alle Ressourcen anzugeben oder falls eine bestimmte API Aktion dies nicht unterstütztARNs, verwenden Sie den Platzhalter * im Resource Element wie folgt.

"Resource": "*"

Viele EC2 API Amazon-Aktionen beinhalten mehrere Ressourcen. AttachVolumeHängt beispielsweise ein EBS Amazon-Volume an eine Instance an, sodass ein Benutzer über Berechtigungen zur Verwendung des Volumes und der Instance verfügen muss. Um mehrere Ressourcen in einer einzigen Anweisung anzugeben, trennen Sie sie wie ARNs folgt durch Kommas.

"Resource": ["arn1", "arn2"]

Eine Liste von ARNs vier EC2 Amazon-Ressourcen finden Sie unter Von Amazon definierte Ressourcentypen EC2.

Zustandsschlüssel für Amazon EC2

In einer Richtlinienanweisung können Sie optional Bedingungen angeben, mit denen gesteuert wird, wann die Richtlinie in Kraft tritt. Jede Bedingung enthält ein oder mehrere Schlüssel-Wert-Paare. Bei Bedingungsschlüsseln muss die Groß- und Kleinschreibung nicht beachtet werden. Wir haben AWS globale Bedingungsschlüssel sowie zusätzliche dienstspezifische Bedingungsschlüssel definiert.

Eine Liste der servicespezifischen Bedingungsschlüssel für Amazon EC2 finden Sie unter Bedingungsschlüssel für Amazon EC2. Amazon implementiert EC2 auch die AWS globalen Bedingungsschlüssel. Weitere Informationen finden Sie im IAMBenutzerhandbuch unter Informationen, die in allen Anfragen verfügbar sind.

Alle EC2 Amazon-Aktionen unterstützen die Tasten aws:RequestedRegion und ec2:Region Condition. Weitere Informationen finden Sie unter Beispiel: Beschränken des Zugriffs auf eine bestimmte Region.

Um einen Bedingungsschlüssel in Ihrer IAM Richtlinie zu verwenden, verwenden Sie die Condition Erklärung. Die folgende Richtlinie gewährt Benutzern beispielsweise die Berechtigung, eingehende und ausgehende Regeln für jede Sicherheitsgruppe hinzuzufügen und zu entfernen. Mithilfe des ec2:Vpc Bedingungsschlüssels wird angegeben, dass diese Aktionen nur für Sicherheitsgruppen in einem bestimmten Bereich ausgeführt werden könnenVPC.

{ "Version": "2012-10-17", "Statement":[{ "Effect":"Allow", "Action": [ "ec2:AuthorizeSecurityGroupIngress", "ec2:AuthorizeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "ec2:RevokeSecurityGroupEgress"], "Resource": "arn:aws:ec2:region:account:security-group/*", "Condition": { "StringEquals": { "ec2:Vpc": "arn:aws:ec2:region:account:vpc/vpc-11223344556677889" } } } ] }

Wenn Sie mehrere Bedingungen oder mehrere Schlüssel in einer einzigen Bedingung angeben, werten wir sie mithilfe einer logischen AND Operation aus. Wenn Sie eine einzelne Bedingung mit mehreren Werten für einen Schlüssel angeben, wird die Bedingung mit einer logischen ODER-Operation ausgewertet. Damit die Berechtigungen erteilt werden, müssen alle Bedingungen erfüllt sein.

Bei der Angabe von Bedingungen können Sie auch Platzhalter verwenden. Weitere Informationen finden Sie im IAMBenutzerhandbuch unter IAMRichtlinienelemente: Variablen und Tags.

Wichtig

Viele Bedingungsschlüssel sind ressourcenspezifisch, und einige API Aktionen verwenden mehrere Ressourcen. Wenn Sie eine Richtlinie mit einem Bedingungsschlüssel schreiben, legen Sie über das Resource-Element der Anweisung fest, für welche Ressource der Bedingungsschlüssel gültig ist. Andernfalls verhindert die Richtlinie möglicherweise, dass Benutzer die Aktion überhaupt ausführen, da die Bedingungsprüfung für die Ressourcen fehlschlägt, auf die der Bedingungsschlüssel nicht zutrifft. Wenn Sie keine Ressource angeben möchten oder wenn Sie das Action Element Ihrer Richtlinie so geschrieben haben, dass es mehrere API Aktionen umfasst, müssen Sie den ...IfExists Bedingungstyp verwenden, um sicherzustellen, dass der Bedingungsschlüssel für Ressourcen, die ihn nicht verwenden, ignoriert wird. Weitere Informationen finden Sie unter... IfExists Bedingungen im IAMBenutzerhandbuch.

ec2:Attribute-Bedingungsschlüssel

Der ec2:Attribute-Bedingungsschlüssel kann für Bedingungen verwendet werden, die den Zugriff nach einem Attribut einer Ressource filtern.

Dieser Bedingungsschlüssel unterstützt nur Eigenschaften eines primitiven Datentyps (wie Zeichenketten oder Ganzzahlen) oder komplexe AttributeValueObjekte, die nur eine Value-Eigenschaft enthalten (wie die Beschreibung oder ImdsSupportObjekte der ModifyImageAttributeAPIAktion). Der Bedingungsschlüssel kann nicht für komplexe Objekte verwendet werden, die mehrere Eigenschaften enthalten, wie z. B. das LaunchPermissionObjekt von ModifyImageAttribute.

Die folgende Richtlinie verwendet beispielsweise den ec2:Attribute/Description Bedingungsschlüssel, um den Zugriff nach dem komplexen Description-Objekt der ModifyImageAttributeAPIAktion zu filtern. Der Bedingungsschlüssel lässt nur Anforderungen zu, die die Beschreibung eines Images entweder in Production oder Development ändern.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:ModifyImageAttribute", "Resource": "arn:aws:ec2:us-east-1::image/ami-*", "Condition": { "StringEquals": { "ec2:Attribute/Description": [ "Production", "Development" ] } } } ] }

Die folgende Beispielrichtlinie verwendet den ec2:Attribute Bedingungsschlüssel, um den Zugriff nach der primitiven Attributeigenschaft der ModifyImageAttributeAPIAktion zu filtern. Der Bedingungsschlüssel lehnt alle Anforderungen ab, die versuchen, die Beschreibung eines Images zu ändern.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "ec2:ModifyImageAttribute", "Resource": "arn:aws:ec2:us-east-1::image/ami-*", "Condition": { "StringEquals": { "ec2:Attribute": "Description" } } } ] }

ec2:ResourceID-Bedingungsschlüssel

Wenn Sie die folgenden ec2:ResourceID Bedingungsschlüssel mit den angegebenen API Aktionen verwenden, wird der Wert des Bedingungsschlüssels verwendet, um die resultierende Ressource anzugeben, die durch die API Aktion erstellt wird. ec2:ResourceIDBedingungsschlüssel können nicht verwendet werden, um eine Quellressource anzugeben, die in der API Anfrage angegeben ist. Wenn Sie einen der folgenden ec2:ResourceID Bedingungsschlüssel mit einem angegebenen Wert verwendenAPI, müssen Sie immer den Platzhalter (*) angeben. Wenn Sie einen anderen Wert angeben, wird die Bedingung zur Laufzeit immer in * aufgelöst. Um beispielsweise den ec2:ImageId Bedingungsschlüssel zusammen mit dem zu verwenden CopyImageAPI, müssen Sie den Bedingungsschlüssel wie folgt angeben:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:CopyImage", "Resource": "arn:aws:ec2:us-east-1::image/ami-*", "Condition": { "StringEquals": { ec2:ImageID": "*" } } } ] }

Wir empfehlen, die Verwendung dieser Bedingungsschlüssel bei folgenden API Aktionen zu vermeiden:

  • ec2:DhcpOptionsIDCreateDhcpOptions

  • ec2:ImageIDCopyImageCreateImage,ImportImage, und RegisterImage

  • ec2:InstanceIDRunInstances und ImportInstance

  • ec2:InternetGatewayIDCreateInternetGateway

  • ec2:NetworkAclIDCreateNetworkAcl

  • ec2:NetworkInterfaceIDCreateNetworkInterface

  • ec2:PlacementGroupNameCreatePlacementGroup

  • ec2:RouteTableIDCreateRouteTable

  • ec2:SecurityGroupIDCreateSecurityGroup

  • ec2:SnapshotIDCopySnapshotCreateSnapshot,CreateSnapshots, und ImportSnapshots

  • ec2:SubnetIDCreateSubnet

  • ec2:VolumeIDCreateVolume und ImportVolume

  • ec2:VpcIDCreateVpc

  • ec2:VpcPeeringConnectionIDCreateVpcPeeringConnection

Um den Zugriff auf der Grundlage einer bestimmten Ressource zu filternIDs, empfehlen wir, das Resource Richtlinienelement wie folgt zu verwenden.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:CopyImage", "Resource": "arn:aws:ec2:us-east-1::image/ami-01234567890abcdef" } ] }

ec2:SourceInstanceARN-Bedingungsschlüssel

Verwenden Sie diese Optionec2:SourceInstanceARN, um die Instanz anzugeben, von der aus eine Anfrage gestellt wird. ARN Dies ist ein AWS globaler Bedingungsschlüssel, was bedeutet, dass Sie ihn mit anderen Diensten als Amazon verwenden könnenEC2. Eine Beispielrichtlinie finden Sie in Beispiel: Erlauben Sie einer bestimmten Instanz, Ressourcen in anderen AWS Diensten anzuzeigen.

Steuern Sie den Zugriff mithilfe des attributbasierten Zugriffs

Wenn Sie eine IAM Richtlinie erstellen, die Benutzern die Erlaubnis zur Nutzung von EC2 Ressourcen erteilt, können Sie Taginformationen in das Condition Element der Richtlinie aufnehmen, um den Zugriff anhand von Tags zu steuern. Dies wird als attributebasierte Zugriffskontrolle () bezeichnet. ABAC ABACbietet eine bessere Kontrolle darüber, welche Ressourcen ein Benutzer ändern, verwenden oder löschen kann. Weitere Informationen finden Sie unter Wozu ABAC dient es AWS?

Beispielsweise können Sie eine Richtlinie erstellen, die es Benutzern ermöglicht, eine Instance zu beenden, aber die Aktion verweigert, wenn die Instance über den environment=production-Tag (Markierungen) verfügt. Dazu verwenden Sie den aws:ResourceTag-Bedingungsschlüssel, um den Zugriff auf die Ressource basierend auf den der Ressource zugewiesenen Tags (Markierung) zu erlauben oder zu verweigern.

"StringEquals": { "aws:ResourceTag/environment": "production" }

Informationen darüber, ob eine EC2 API Amazon-Aktion die Zugriffskontrolle mithilfe des aws:ResourceTag Bedingungsschlüssels unterstützt, finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für Amazon EC2. Beachten Sie, dass die Describe-Aktionen keine Berechtigungen auf Ressourcenebene unterstützen, sodass sie in einer separaten Anweisung ohne Bedingungen angegeben werden müssen.

IAMRichtlinien finden Sie beispielsweise unterBeispielrichtlinien zur Zugangskontrolle im Amazon EC2 API.

Wenn Sie Benutzern den Zugriff zu Ressourcen auf der Grundlage von Tags (Markierungen) gewähren oder verweigern, müssen Sie daran denken, Benutzern explizit das Hinzufügen und Entfernen dieser Tags (Markierungen) von den jeweiligen Ressourcen unmöglich zu machen. Andernfalls können Benutzer möglicherweise Ihre Einschränkungen umgehen und sich Zugriff auf eine Ressource verschaffen, indem sie ihre Tags (Markierungen) modifizieren.

Gewähren von Berechtigungen für Benutzer, Gruppen und Rollen

Um Zugriff zu gewähren, fügen Sie Ihren Benutzern, Gruppen oder Rollen Berechtigungen hinzu:

Prüfen, ob Benutzer über die erforderlichen Berechtigungen verfügen

Nachdem Sie eine IAM Richtlinie erstellt haben, empfehlen wir Ihnen, zu überprüfen, ob sie Benutzern die erforderlichen Berechtigungen zur Nutzung der jeweiligen API Aktionen und Ressourcen gewährt, bevor Sie die Richtlinie in die Produktionsumgebung aufnehmen.

Erstellen Sie zunächst einen Benutzer zu Testzwecken und fügen Sie dann die IAM Richtlinie, die Sie erstellt haben, dem Testbenutzer bei. Anschließend initiieren Sie mit dem Testbenutzer eine Anforderung.

Wenn die EC2 Amazon-Aktion, die Sie testen, eine Ressource erstellt oder ändert, sollten Sie die Anfrage mit dem DryRun Parameter stellen (oder den AWS CLI Befehl mit der --dry-run Option ausführen). In diesem Fall schließt der Aufruf zwar die Autorisierungsprüfung, aber nicht die Operation ab. Beispielsweise können Sie prüfen, ob ein Benutzer eine bestimmte Instance beenden kann, ohne sie tatsächlich abzuschließen. Sofern der Testbenutzer über die erforderlichen Berechtigungen verfügt, gibt die Anforderung DryRunOperation zurück. Andernfalls wird UnauthorizedOperation zurückgegeben.

Falls die Richtlinie dem Benutzer nicht die erwarteten Berechtigungen erteilt oder zu viele Berechtigungen gewährt, können Sie die Richtlinie entsprechend anpassen und erneut testen, bis Sie die gewünschten Ergebnisse erhalten.

Wichtig

Es kann einige Minuten dauern, bis Richtlinienänderungen wirksam werden. Daher wird empfohlen, fünf Minuten verstreichen zu lassen, bevor Sie die aktualisierte Richtlinie testen.

Bei einer fehlgeschlagenen Autorisierungsprüfung gibt die Anforderung eine codierte Nachricht mit Diagnoseinformationen zurück. Sie können die Nachricht mit der Aktion DecodeAuthorizationMessage decodieren. Weitere Informationen finden Sie DecodeAuthorizationMessagein der AWS Security Token Service APIReferenz und decode-authorization-messagein der AWS CLI Befehlsreferenz.