View a markdown version of this page

Aktionen, Ressourcen und Bedingungsschlüssel für den Custom Event Bus - 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.

Aktionen, Ressourcen und Bedingungsschlüssel für den Custom Event Bus

Verwenden Sie diese Seite, wenn Sie eine IAM-Richtlinie schreiben. Sie listet alle events: Aktionen für den Custom Event Bus auf, die Ressourcen-ARN, anhand derer jede Aktion abgeglichen wird, ob sie einem anderen Konto zugewiesen werden kann, und die Bedingungsschlüssel, die Sie hinzufügen können. Wenn Sie beispielsweise zulassen möchten, dass eine Rolle Abonnenten anhängt, deren METADATA Filternamen tenant lautenacme, gewähren events:CreateSubscriber Sie den Bus mit ForAnyValue:StringEquals eingeschalteter Bedingungevents:Metadata/tenant.

Bedingungsschlüssel

EventBridge liefert die folgenden Bedingungsschlüssel aus der Anfrage, sodass Sie eine Gewährung über die Aktion und die Ressource hinaus einschränken können. Die globalen Bedingungsschlüssel finden Sie unter AWS Globale Bedingungskontextschlüssel im IAM-Benutzerhandbuch.

BedingungsschlüsselWertGeliefert am
events:sourceDie Quelle des Ereignisses oder die Quelle, die weitergeleitet wirdPutEvents, CreateEventSource, UpdateEventSource
events:detail-typeDer Detailtyp des EreignissesPutEvents
events:Metadata/keyDie Werte, die ein METADATA Filter für diesen Schlüssel abgleichtCreateSubscriber
events:Metadata/key/MatcherexactCreateSubscriber
events:ContentFilterPresenttruewenn der Abonnent einen DATA Filter deklariertCreateSubscriber
aws:ResourceTag/keyEin Tag auf dem Bus, dem Abonnenten oder der Ereignisquelle, das überprüft wirdJede Aktion wird mit einer Ressource verglichen
aws:RequestTag/key, aws:TagKeysDie Tags in der AnfrageDie Operationen erstellen TagResource und UntagResource

Ein Metadatenschlüssel wird als Satz von Werten bereitgestellt. Ordnen Sie ihm einen Mengenoperator zu, z. ForAnyValue:StringEquals B. METADATAFilter stimmen nur exakt überein, weshalb der Matcher-Wert immer gleich ist. exact Ein DATA Filter stimmt mit beliebigem JSON überein, sodass nur sein Vorhandensein und nicht sein Inhalt offengelegt wird. UpdateEventSourceFührt die Busüberprüfung erneut aus, wobei der Wert aus der Ersatzkonfiguration events:source gesetzt ist, sodass eine Bedingung für diesen Schlüssel sowohl für eine neu angegebene als auch für eine neue Ereignisquelle gilt.

Mit der folgenden Ressourcenrichtlinie können Konten nur dann Abonnenten auf dem orders Bus 444455556666 erstellen, wenn der METADATA Filter des Abonnenten genau den Anforderungen entsprichttenant. acme Ein Abonnent ohne METADATA Filter oder ein Abonnent, der einen anderen Mandanten benennt, wird abgelehnt. EventBridge liefert einen Metadaten-Bedingungsschlüssel nur für die Felder, die ein Filter deklariert. Die Null Bedingung verhindert also, dass ein Filter, der ausgelassen wird, verweigert wird. tenant

{ "Version": "2012-10-17", "Statement": [ { "Sid": "SubscribeToAcmeEventsOnly", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:root" }, "Action": "events:CreateSubscriber", "Resource": "arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef", "Condition": { "Null": { "events:Metadata/tenant": "false" }, "ForAnyValue:StringEquals": { "events:Metadata/tenant": "acme" }, "StringEquals": { "events:Metadata/tenant/Matcher": "exact" } } } ] }

Aktionen und die Ressourcen, mit denen sie verglichen werden

In der folgenden Tabelle sind alle Aktionen aufgeführt, der Ressourcen-ARN, der in das Resource Element der Richtlinie eingefügt werden muss, und es wird angegeben, ob ein Busbesitzer die Aktion einem anderen Konto über eine Ressourcenrichtlinie oder einen AWS RAM Share gewähren kann. Die drei List Aktionen werden mit keiner Ressource verglichen. Gewähren Sie ihnen also Folgendes"Resource": "*".

IAM-AktionÜberprüft gegenKann auf ein anderes Konto übertragen werden
events:CreateEventBusDer Bus wird erstelltNein. Im eigenen Konto des Anrufers erstellt
events:DescribeEventBusDer BusJa
events:UpdateEventBusDer BusNein. Nur für den Busbesitzer
events:DeleteEventBusDer BusNein. Nur für den Busbesitzer
events:ListEventBusesNichts. Account-wideNein. Listet die eigenen und gemeinsam genutzten Busse des Anrufers auf
events:PutEventsDer Bus, einmal pro Eintrag in der AnfrageJa
events:PutRawEventsDer Bus, einmal pro Eintrag in der AnfrageJa
events:CreateSubscriberDer Bus und der Abonnent werden erstelltJa
events:DescribeSubscriberDer AbonnentDer Besitzer des Abonnenten autorisiert es
events:UpdateSubscriberDer AbonnentDer Besitzer des Abonnenten autorisiert es
events:DeleteSubscriberDer AbonnentDer Besitzer des Abonnenten autorisiert es
events:ListSubscribersNichts. Account-wideNein. Listet die eigenen Abonnenten des Anrufers auf
events:RevokeResourceDer BusNein. Nur für den Busbesitzer
events:CreateEventSourceDer Bus und die Ereignisquelle, die erstellt werdenJa
events:DescribeEventSourceDie EreignisquelleDer Besitzer der Eventquelle autorisiert sie
events:UpdateEventSourceDie Ereignisquelle und nochmal der BusJa, für den Buscheck
events:DeleteEventSourceDie Quelle des EreignissesDer Besitzer der Eventquelle autorisiert sie
events:ListEventSourcesNichts. Account-wideNein. Listet die eigenen Ereignisquellen des Anrufers auf
events:PutResourcePolicyDer BusNein. Nur für den Busbesitzer
events:GetResourcePolicyDer BusJa
events:DeleteResourcePolicyDer BusNein. Nur für den Busbesitzer
events:ListResourcePoliciesDer BusJa
events:TagResourceDer Bus, der Abonnent oder die in der Anfrage angegebene EreignisquelleBus: ja. Abonnent oder Ereignisquelle: sein Besitzer
events:UntagResourceDer Bus, der Abonnent oder die in der Anfrage angegebene EreignisquelleBus: ja. Abonnent oder Ereignisquelle: sein Besitzer
events:ListTagsForResourceDer Bus, der Abonnent oder die in der Anfrage angegebene EreignisquelleBus: ja. Abonnent oder Ereignisquelle: sein Besitzer

Um einen Abonnenten oder eine Ereignisquelle auf einem Bus zu erstellen, benötigt der Anrufer die Aktion sowohl auf dem Bus als auch auf der neuen Ressource. Auf diese Weise kann ein Busbesitzer in den eigenen Richtlinien des Busses entscheiden, welche Konten ihm etwas zuordnen dürfen. CreateSubscriberführt vier separate Autorisierungsprüfungen durch, und alle vier müssen dies zulassen: events:CreateSubscriber events:CreateSubscriber auf dem Bus, auf dem Teilnehmer, iam:PassRole auf der Rolle in und events:TagResource auf dem AbonnentenInvokeConfiguration.RoleArn, wenn die Anfrage Tags trägt. CreateEventSourceführt dieselben Prüfungen ohne ausiam:PassRole, da eine Ereignisquelle keine Rolle spielt.

Anmerkung

Eine Ressource, die noch nicht existiert, hat keinen vollständigen ARN. Daher verwendet eine Create-Prüfung einen ARN, der mit einem Platzhalter endet, z. B. arn:aws:events:us-east-1:111122223333:subscriber/name/* Eine Richtlinie, die auf einen Abonnenten beschränkt ist, entspricht daher nicht exakt dem Namenspräfix. Ein Create ohne Tags gibt Nein aws:ResourceTag für die neue Ressource an, sodass eine StringEquals Bedingung für diesen Schlüssel dies verweigert.

Beispiele für identitätsbasierte Richtlinien in

Ein Produzent benötigt events:PutEventsevents:PutRawEvents, oder beides, auf dem Bus ARN. Gewähren Sie die Aktion, die der aufgerufenen API entspricht. Ein Producer für einen Bus, der mit einem vom Kunden verwalteten Schlüssel verschlüsselt ist, benötigt ebenfalls Zugriff auf diesen Schlüssel; sieheEreignisse auf einem Custom Event Bus verschlüsseln. Ein Abonnentenbesitzer benötigt events:CreateSubscriber auf dem Bus und auf dem Abonnenten, iam:PassRole in der Bereitstellungsrolle und die Aktionen zum Beschreiben, Aktualisieren und Löschen von Abonnenten für die von ihm verwalteten Abonnenten. Ein Busadministrator benötigt die Aktionen zum Erstellen, Aktualisieren und Löschen von Bussen, die vier Ressourcenrichtlinienaktionen undevents:RevokeResource.

Die folgende Richtlinie ermöglicht es einem Producer, mit einer der beiden Veröffentlichungs-APIs auf einem Bus zu veröffentlichen und den Bus zu lesen, sodass er bestätigen kann, dass der Bus an ACTIVE erster Stelle steht. Die Veröffentlichung wird für jeden Eintrag in der Anfrage einmal autorisiert, und es gibt keine Teilautorisierung: Wenn ein Eintrag eine Zustandsprüfung nicht besteht, EventBridge wird die gesamte Anfrage abgelehnt, einschließlich der Einträge, die bestanden hätten.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "PublishToOrdersBus", "Effect": "Allow", "Action": [ "events:PutEvents", "events:PutRawEvents", "events:DescribeEventBus" ], "Resource": "arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef" } ] }

Tagging

Sie können einen Bus, einen Abonnenten oder eine Ereignisquelle taggen. Wird Tags beim Erstellen eines Anrufs oder bei der Verwendung TagResource und ListTagsForResource danach festgelegt. UntagResource Jede Ressource hat ihren eigenen Tagsatz, sodass das Taggen eines Busses nicht die Abonnenten oder Eventquellen, die mit dem Bus verbunden sind, taggt.

aws eventsv2 tag-resource \ --resource-arn arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef \ --tags team=payments,environment=production

Bei einer Create-Antwort werden die von Ihnen angegebenen Tags nicht wiedergegeben. Lesen Sie sie daher zurück, list-tags-for-resource wenn Sie sie bestätigen müssen. Schlüssel, die mit beginnen, aws: sind für jeden Schreibvorgang reserviert AWS und werden bei jedem Schreibvorgang zurückgewiesen, einschließlichUntagResource. Verwenden Sie die drei Tag-Aktionen in der obigen Tabelle sowie die aws:TagKeys Bedingungsschlüssel, und um Richtlinien zu schreiben, die von Tags abhängen, um zu steuern, wer taggen darf, und um Richtlinien zu schreiben aws:RequestTagaws:ResourceTag, die von Tags abhängen.