Verwendung der IAM Versicherungsbedingungen bei Amazon EventBridge - Amazon EventBridge

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.

Verwendung der IAM Versicherungsbedingungen bei Amazon EventBridge

Um Berechtigungen zu erteilen, verwenden Sie die IAM Richtliniensprache in einer Richtlinienerklärung, um die Bedingungen anzugeben, unter denen eine Richtlinie wirksam werden soll. Beispielsweise kann festgelegt werden, dass eine Richtlinie erst ab einem bestimmten Datum gilt.

Eine Bedingung in einer Richtlinie besteht aus Schlüssel-Wert-Paaren. Bedingungsschlüssel unterscheiden nicht zwischen Groß- und Kleinschreibung.

Wenn Sie mehrere Bedingungen oder Schlüssel in einer einzigen Bedingung angeben, müssen alle Bedingungen und Schlüssel erfüllt sein, um eine Genehmigung EventBridge zu erteilen. Wenn Sie eine einzelne Bedingung mit mehreren Werten für einen Schlüssel angeben, wird die Genehmigung EventBridge erteilt, wenn einer der Werte erfüllt ist.

Sie können Platzhalter oder Richtlinienvariablen verwenden, wenn Sie Bedingungen angeben. Weitere Informationen finden Sie unter Richtlinienvariablen im IAMBenutzerhandbuch. Weitere Informationen zur Angabe von Bedingungen in einer IAM Richtliniensprache finden Sie unter Bedingung im IAMBenutzerhandbuch.

Standardmäßig können IAM Benutzer und Rollen nicht auf die Ereignisse in Ihrem Konto zugreifen. Um auf Ereignisse zugreifen zu können, muss ein Benutzer für die PutRule API Aktion autorisiert sein. Wenn ein IAM Benutzer oder eine Rolle für die events:PutRule Aktion autorisiert ist, kann er/sie eine Regel erstellen, die bestimmten Ereignissen entspricht. Damit die Regel jedoch nützlich ist, muss der Benutzer auch über Berechtigungen für die events:PutTargets Aktion verfügen, denn wenn Sie möchten, dass die Regel mehr kann als nur eine CloudWatch Metrik zu veröffentlichen, müssen Sie einer Regel auch ein Ziel hinzufügen.

Sie können in der Richtlinienerklärung eines IAM Benutzers oder einer Rolle eine Bedingung angeben, die es dem Benutzer oder der Rolle ermöglicht, eine Regel zu erstellen, die nur einem bestimmten Satz von Quellen und Ereignistypen entspricht. Zum Gewähren von Zugriff auf bestimmte Quellen und Ereignistypen verwenden Sie die Bedingungsschlüssel events:source und events:detail-type.

Ebenso können Sie in der Richtlinienerklärung eines IAM Benutzers oder einer Rolle eine Bedingung angeben, die es dem Benutzer oder der Rolle ermöglicht, eine Regel zu erstellen, die nur einer bestimmten Ressource in Ihren Konten entspricht. Zum Gewähren von Zugriff auf eine bestimmte Ressource verwenden Sie den Bedingungsschlüssel events:TargetArn.

Das folgende Beispiel ist eine Richtlinie, die es Benutzern ermöglicht, auf alle Ereignisse mit Ausnahme von EC2 Amazon-Ereignissen zuzugreifen, EventBridge indem sie eine Deny-Anweisung für die PutRule API Aktion verwenden.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyPutRuleForAllEC2Events", "Effect": "Deny", "Action": "events:PutRule", "Resource": "*", "Condition": { "StringEquals": { "events:source": "aws.ec2" } } } ] }

EventBridge Bedingungsschlüssel

Die folgende Tabelle zeigt die Bedingungsschlüssel sowie Schlüssel- und Wertepaare, die Sie in einer Richtlinie in verwenden können EventBridge.

Bedingungsschlüssel Schlüssel-Wert-Paar Bewertungstypen

aws: SourceAccount

Das Konto, in dem die von aws:SourceArn angegebene Regel vorhanden ist.

Account Id, Null

war: SourceArn

Die ARN Regel, die das Ereignis sendet.

ARN, Null

Ereignisse: creatorAccount

"events:creatorAccount":"creatorAccount"

Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. creatorAccount, verwenden Sie die Konto-ID für das Konto, das die Regel erstellt hat. Verwenden Sie diese Bedingung, um API Aufrufe zu Regeln von einem bestimmten Konto aus zu autorisieren.

creatorAccount, Null

events:detail-type

"events:detail-type":"detail-type "

Wo detail-type ist die Literalzeichenfolge für das Detailfeld des Ereignisses, z. B. und. "AWS API Call via CloudTrail" "EC2 Instance State-change Notification"

Detailtyp, Null

Ereignisse: Detail. eventTypeCode

"events:detail.eventTypeCode":"eventTypeCode"

Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. eventTypeCode, verwenden Sie die Literalzeichenfolge für das Detail. eventTypeCodeFeld des Ereignisses, z. B. "AWS_ABUSE_DOS_REPORT"

eventTypeCode, Null

events:detail.service

"events:detail.service":"service"

Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. service, verwenden Sie die Literalzeichenfolge für das detail.service-Feld des Ereignisses, z. B. "ABUSE"

service, Null

Ereignisse: Detail. userIdentity. principalId

"events:detail.userIdentity.principalId":"principal-id"

Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. principal-id, verwenden Sie die Literalzeichenfolge für das Detail. userIdentity. principalIdFeld des Ereignisses mit einem Detailtyp "AWS API Call via CloudTrail" wie. "AROAIDPPEZS35WEXAMPLE:AssumedRoleSessionName."

Principal-ID, Null

Ereignisse: eventBusInvocation

"events:eventBusInvocation":"boolean"

Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. boolean, verwenden Sie true, wenn eine Regel ein Ereignis an ein Ziel sendet, bei dem es sich um einen Event-Bus in einem anderen Konto handelt. Verwenden Sie false, wenn ein PutEvents API Anruf verwendet wird.

eventBusInvocation, Null

Ereignisse: ManagedBy

Wird intern von AWS Diensten verwendet. Bei einer Regel, die von einem AWS Dienst in Ihrem Namen erstellt wurde, entspricht der Wert dem Prinzipalnamen des Dienstes, der die Regel erstellt hat.

Nicht für die Verwendung in Kundenrichtlinien vorgesehen.

events:source

"events:source":"source "

Verwenden Sie source für die Literalzeichenfolge für das Quellfeld des Ereignisses, z. B. "aws.ec2" oder"aws.s3". Für weitere mögliche Werte für source, siehe die Beispielereignisse unterEreignisse von AWS Diensten bei Amazon EventBridge.

Quelle, Null

Ereignisse: TargetArn

"events:TargetArn":"target-arn "

Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. target-arn, verwenden Sie zum ARN Beispiel den Wert des Ziels für die Regel"arn:aws:lambda:*:*:function:*".

ArrayOfARN, Null

Richtlinienerklärungen für finden Sie EventBridge beispielsweise unterVerwaltung der Zugriffsberechtigungen für Ihre EventBridge Amazon-Ressourcen.

EventBridge Einzelheiten zu Rohrleitungen

EventBridge Pipes unterstützt keine zusätzlichen IAM Richtlinienbedingungsschlüssel.

Beispiel: Verwenden der Bedingung creatorAccount

Das folgende Beispiel für eine Richtlinienanweisung zeigt, wie die Bedingung creatorAccount in einer Richtlinie verwendet wird, um die Erstellung von Regeln nur zuzulassen, wenn das als creatorAccount angegebene Konto das Konto ist, das die Regel erstellt hat.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleForOwnedRules", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*", "Condition": { "StringEqualsIfExists": { "events:creatorAccount": "${aws:PrincipalAccount}" } } } ] }

Beispiel: Verwenden der Bedingung eventBusInvocation

Das eventBusInvocation gibt an, ob der Aufruf von einem kontoübergreifenden Ziel oder von einer Anfrage stammt. PutEvents API Der Wert ist true, wenn der Aufruf aus einer Regel resultiert, die ein kontoübergreifendes Ziel beinhaltet, z. B. wenn es sich bei dem Ziel um einen Event Bus in einem anderen Konto handelt. Der Wert ist falsch, wenn der Aufruf aus einer Anfrage resultiert. PutEvents API Das folgende Beispiel zeigt einen Aufruf von einem kontoübergreifenden Ziel an.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCrossAccountInvocationEventsOnly", "Effect": "Allow", "Action": "events:PutEvents", "Resource": "*", "Condition": { "BoolIfExists": { "events:eventBusInvocation": "true" } } } ] }

Beispiel: Einschränken des Zugriffs auf eine bestimmte Quelle

Die folgenden Beispielrichtlinien können an einen IAM Benutzer angehängt werden. Richtlinie A erlaubt die PutRule API Aktion für alle Ereignisse, während Richtlinie B PutRule nur zulässt, wenn das Ereignismuster der zu erstellenden Regel mit EC2 Amazon-Ereignissen übereinstimmt.

Richtlinie A: alle Ereignisse zulassen

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleForAllEvents", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*" } ] }

Richtlinie B: —Ereignisse nur von Amazon zulassen EC2

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleForAllEC2Events", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*", "Condition": { "StringEquals": { "events:source": "aws.ec2" } } } ] }

EventPattern ist ein obligatorisches Argument für PutRule. Wenn der Benutzer mit Richtlinie B PutRule mit einem Ereignismuster wie dem folgenden aufruft, gilt daher Folgendes.

{ "source": [ "aws.ec2" ] }

Die Regel würde erstellt werden, da die Richtlinie diese bestimmte Quelle zulässt, d. h. "aws.ec2". Wenn der Benutzer mit Richtlinie B jedoch PutRule mit einem Ereignismuster wie dem folgenden aufruft, wird die Erstellung der Regel abgelehnt, da die Richtlinie diese bestimmte Quelle nicht zulässt, d. h. "aws.s3".

{ "source": [ "aws.s3" ] }

Im Wesentlichen darf der Benutzer mit Richtlinie B nur eine Regel erstellen, die den Ereignissen entsprichtEC2, die von Amazon stammen. Daher darf er nur auf die Ereignisse von Amazon zugreifenEC2.

In der folgenden Tabelle finden Sie einen Vergleich von Richtlinie A und Richtlinie B.

Ereignismuster Zulässig durch Richtlinie A Zulässig durch Richtlinie B
{ "source": [ "aws.ec2" ] }

Ja

Ja

{ "source": [ "aws.ec2", "aws.s3" ] }

Ja

Nein (die Quelle aws.s3 ist nicht zulässig)

{ "source": [ "aws.ec2" ], "detail-type": [ "EC2 Instance State-change Notification" ] }

Ja

Ja

{ "detail-type": [ "EC2 Instance State-change Notification" ] }

Ja

Keine (Quelle muss angegeben werden)

Beispiel: Definieren mehrerer Quellen, die einzeln in einem Ereignismuster verwendet werden können

Die folgende Richtlinie ermöglicht es einem IAM Benutzer oder einer Rolle, eine Regel zu erstellen, bei der die Quelle entweder Amazon EC2 oder Amazon EventPattern istECS.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleIfSourceIsEC2OrECS", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*", "Condition": { "StringEquals": { "events:source": [ "aws.ec2", "aws.ecs" ] } } } ] }

Die folgende Tabelle zeigt einige Beispiele für Ereignismuster, die durch diese Richtlinie zugelassen oder abgelehnt werden.

Ereignismuster Zulässig durch die Richtlinie
{ "source": [ "aws.ec2" ] }

Ja

{ "source": [ "aws.ecs" ] }

Ja

{ "source": [ "aws.s3" ] }

Nein

{ "source": [ "aws.ec2", "aws.ecs" ] }

Nein

{ "detail-type": [ "AWS API Call via CloudTrail" ] }

Nein

Beispiel: Definieren einer Quelle und eines DetailType zur Verwendung in einem Ereignismuster

Mit der folgenden Richtlinie werden nur Ereignisse von der aws.ec2-Quelle mit dem DetailType gleich EC2 instance state change notification zugelassen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleIfSourceIsEC2AndDetailTypeIsInstanceStateChangeNotification", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*", "Condition": { "StringEquals": { "events:source": "aws.ec2", "events:detail-type": "EC2 Instance State-change Notification" } } } ] }

Die folgende Tabelle zeigt einige Beispiele für Ereignismuster, die durch diese Richtlinie zugelassen oder abgelehnt werden.

Ereignismuster Zulässig durch die Richtlinie
{ "source": [ "aws.ec2" ] }

Nein

{ "source": [ "aws.ecs" ] }

Nein

{ "source": [ "aws.ec2" ], "detail-type": [ "EC2 Instance State-change Notification" ] }

Ja

{ "source": [ "aws.ec2" ], "detail-type": [ "EC2 Instance Health Failed" ] }

Nein

{ "detail-type": [ "EC2 Instance State-change Notification" ] }

Nein

Beispiel: Sicherstellen, dass die Quelle im Ereignismuster definiert ist

Die folgende Richtlinie ermöglicht Benutzern nur das Erstellen von Regeln mit EventPatterns, die über ein Quellfeld verfügen. Mit dieser Richtlinie kann ein IAM Benutzer oder eine Rolle keine Regel mit einer Regel erstellenEventPattern, die keine bestimmte Quelle bereitstellt.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleIfSourceIsSpecified", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*", "Condition": { "Null": { "events:source": "false" } } } ] }

Die folgende Tabelle zeigt einige Beispiele für Ereignismuster, die durch diese Richtlinie zugelassen oder abgelehnt werden.

Ereignismuster Zulässig durch die Richtlinie
{ "source": [ "aws.ec2" ], "detail-type": [ "EC2 Instance State-change Notification" ] }

Ja

{ "source": [ "aws.ecs", "aws.ec2" ] }

Ja

{ "detail-type": [ "EC2 Instance State-change Notification" ] }

Nein

Beispiel: Definieren einer Liste der zulässigen Quellen in einem Ereignismuster mit mehreren Quellen

Die folgende Richtlinie ermöglicht Benutzern das Erstellen von Regeln mit EventPatterns, die über ein Quellfeld verfügen. Jede Quelle im Ereignismuster muss Mitglied der in der Bedingung angegebenen Liste sein. Wenn Sie die Bedingung ForAllValues verwenden, müssen Sie mindestens eines der Elemente in der Bedingungsliste definieren.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleIfSourceIsSpecifiedAndIsEitherS3OrEC2OrBoth", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "events:source": [ "aws.ec2", "aws.s3" ] }, "Null": { "events:source": "false" } } } ] }

Die folgende Tabelle zeigt einige Beispiele für Ereignismuster, die durch diese Richtlinie zugelassen oder abgelehnt werden.

Ereignismuster Zulässig durch die Richtlinie
{ "source": [ "aws.ec2" ] }

Ja

{ "source": [ "aws.ec2", "aws.s3" ] }

Ja

{ "source": [ "aws.ec2", "aws.autoscaling" ] }

Nein

{ "detail-type": [ "EC2 Instance State-change Notification" ] }

Nein

Beispiel: Beschränken des PutRule-Zugriffs durch detail.service

Sie können einen IAM Benutzer oder eine Rolle darauf beschränken, Regeln nur für Ereignisse zu erstellen, die einen bestimmten Wert in dem events:details.service Feld haben. Der Wert von events:details.service ist nicht unbedingt der Name eines AWS Dienstes.

Diese Richtlinienbedingung ist hilfreich, wenn Sie mit Ereignissen arbeiten AWS Health , die sich auf Sicherheit oder Missbrauch beziehen. Durch die Verwendung dieser Richtlinienbedingung können Sie den Zugriff auf diese sensiblen Warnungen auf ausschließlich diejenigen Benutzer einschränken, die diese unbedingt sehen müssen.

Beispiel: Die folgende Richtlinie ermöglicht das Erstellen von Regeln nur für Ereignisse, in denen der Wert von events:details.service ABUSE ist.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleEventsWithDetailServiceEC2", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*", "Condition": { "StringEquals": { "events:detail.service": "ABUSE" } } } ] }

Beispiel: Beschränken des PutRule-Zugriffs durch detail.eventTypeCode

Sie können einen IAM Benutzer oder eine Rolle darauf beschränken, Regeln nur für Ereignisse zu erstellen, die einen bestimmten Wert im events:details.eventTypeCode Feld haben. Diese Richtlinienbedingung ist hilfreich, wenn Sie mit Ereignissen aus AWS Health dem Bereich Sicherheit oder Missbrauch arbeiten. Durch die Verwendung dieser Richtlinienbedingung können Sie den Zugriff auf diese sensiblen Warnungen auf ausschließlich diejenigen Benutzer einschränken, die diese unbedingt sehen müssen.

Beispiel: Die folgende Richtlinie ermöglicht das Erstellen von Regeln nur für Ereignisse, in denen der Wert von events:details.eventTypeCode AWS_ABUSE_DOS_REPORT ist.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleEventsWithDetailServiceEC2", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*", "Condition": { "StringEquals": { "events:detail.eventTypeCode": "AWS_ABUSE_DOS_REPORT" } } } ] }

Beispiel: Stellen Sie sicher, dass nur AWS CloudTrail Ereignisse für API Anrufe von einer bestimmten Person zulässig PrincipalId sind

Alle AWS CloudTrail Ereignisse haben den Namen PrincipalId des Benutzers, der den API Anruf getätigt hat, im detail.userIdentity.principalId Pfad eines Ereignisses. Mithilfe des events:detail.userIdentity.principalId Bedingungsschlüssels können Sie den Zugriff von IAM Benutzern oder Rollen auf CloudTrail Ereignisse beschränken, die von einem bestimmten Konto stammen.

"Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleOnlyForCloudTrailEventsWhereUserIsASpecificIAMUser", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*", "Condition": { "StringEquals": { "events:detail-type": [ "AWS API Call via CloudTrail" ], "events:detail.userIdentity.principalId": [ "AIDAJ45Q7YFFAREXAMPLE" ] } } } ] }

Die folgende Tabelle zeigt einige Beispiele für Ereignismuster, die durch diese Richtlinie zugelassen oder abgelehnt werden.

Ereignismuster Zulässig durch die Richtlinie
{ "detail-type": [ "AWS API Call via CloudTrail" ] }

Nein

{ "detail-type": [ "AWS API Call via CloudTrail" ], "detail.userIdentity.principalId": [ "AIDAJ45Q7YFFAREXAMPLE" ] }

Ja

{ "detail-type": [ "AWS API Call via CloudTrail" ], "detail.userIdentity.principalId": [ "AROAIDPPEZS35WEXAMPLE:AssumedRoleSessionName" ] }

Nein

Beispiel: Einschränken des Zugriffs auf Ziele

Wenn ein IAM Benutzer oder eine Rolle über die events:PutTargets entsprechende Berechtigung verfügt, kann er jedes Ziel unter demselben Konto zu den Regeln hinzufügen, auf die er zugreifen darf. Die folgende Richtlinie beschränkt Benutzer darauf, Ziele nur einer bestimmten Regel hinzuzufügen: MyRule im Konto 123456789012.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutTargetsOnASpecificRule", "Effect": "Allow", "Action": "events:PutTargets", "Resource": "arn:aws:events:us-east-1:123456789012:rule/MyRule" } ] }

Mit dem events:TargetArn-Bedingungsschlüssel legen Sie fest, welches Ziel der Regel hinzugefügt werden darf. Sie haben die Möglichkeit, Ziele nur auf Lambda-Funktionen zu beschränken (siehe folgendes Beispiel).

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutTargetsOnASpecificRuleAndOnlyLambdaFunctions", "Effect": "Allow", "Action": "events:PutTargets", "Resource": "arn:aws:events:us-east-1:123456789012:rule/MyRule", "Condition": { "ArnLike": { "events:TargetArn": "arn:aws:lambda:*:*:function:*" } } } ] }