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üssel | Wert | Geliefert am |
|---|---|---|
events:source | Die Quelle des Ereignisses oder die Quelle, die weitergeleitet wird | PutEvents, CreateEventSource, UpdateEventSource |
events:detail-type | Der Detailtyp des Ereignisses | PutEvents |
events:Metadata/ | Die Werte, die ein METADATA Filter für diesen Schlüssel abgleicht | CreateSubscriber |
events:Metadata/ | exact | CreateSubscriber |
events:ContentFilterPresent | truewenn der Abonnent einen DATA Filter deklariert | CreateSubscriber |
aws:ResourceTag/ | Ein Tag auf dem Bus, dem Abonnenten oder der Ereignisquelle, das überprüft wird | Jede Aktion wird mit einer Ressource verglichen |
aws:RequestTag/, aws:TagKeys | Die Tags in der Anfrage | Die 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 gegen | Kann auf ein anderes Konto übertragen werden |
|---|---|---|
events:CreateEventBus | Der Bus wird erstellt | Nein. Im eigenen Konto des Anrufers erstellt |
events:DescribeEventBus | Der Bus | Ja |
events:UpdateEventBus | Der Bus | Nein. Nur für den Busbesitzer |
events:DeleteEventBus | Der Bus | Nein. Nur für den Busbesitzer |
events:ListEventBuses | Nichts. Account-wide | Nein. Listet die eigenen und gemeinsam genutzten Busse des Anrufers auf |
events:PutEvents | Der Bus, einmal pro Eintrag in der Anfrage | Ja |
events:PutRawEvents | Der Bus, einmal pro Eintrag in der Anfrage | Ja |
events:CreateSubscriber | Der Bus und der Abonnent werden erstellt | Ja |
events:DescribeSubscriber | Der Abonnent | Der Besitzer des Abonnenten autorisiert es |
events:UpdateSubscriber | Der Abonnent | Der Besitzer des Abonnenten autorisiert es |
events:DeleteSubscriber | Der Abonnent | Der Besitzer des Abonnenten autorisiert es |
events:ListSubscribers | Nichts. Account-wide | Nein. Listet die eigenen Abonnenten des Anrufers auf |
events:RevokeResource | Der Bus | Nein. Nur für den Busbesitzer |
events:CreateEventSource | Der Bus und die Ereignisquelle, die erstellt werden | Ja |
events:DescribeEventSource | Die Ereignisquelle | Der Besitzer der Eventquelle autorisiert sie |
events:UpdateEventSource | Die Ereignisquelle und nochmal der Bus | Ja, für den Buscheck |
events:DeleteEventSource | Die Quelle des Ereignisses | Der Besitzer der Eventquelle autorisiert sie |
events:ListEventSources | Nichts. Account-wide | Nein. Listet die eigenen Ereignisquellen des Anrufers auf |
events:PutResourcePolicy | Der Bus | Nein. Nur für den Busbesitzer |
events:GetResourcePolicy | Der Bus | Ja |
events:DeleteResourcePolicy | Der Bus | Nein. Nur für den Busbesitzer |
events:ListResourcePolicies | Der Bus | Ja |
events:TagResource | Der Bus, der Abonnent oder die in der Anfrage angegebene Ereignisquelle | Bus: ja. Abonnent oder Ereignisquelle: sein Besitzer |
events:UntagResource | Der Bus, der Abonnent oder die in der Anfrage angegebene Ereignisquelle | Bus: ja. Abonnent oder Ereignisquelle: sein Besitzer |
events:ListTagsForResource | Der Bus, der Abonnent oder die in der Anfrage angegebene Ereignisquelle | Bus: 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/ Eine Richtlinie, die auf einen Abonnenten beschränkt ist, entspricht daher nicht exakt dem Namenspräfix. Ein Create ohne Tags gibt Nein name/*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.