View a markdown version of this page

Einen benutzerdefinierten Event Bus mit anderen Konten teilen - 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.

Einen benutzerdefinierten Event Bus mit anderen Konten teilen

Um einem anderen Konto die Veröffentlichung auf Ihrem Bus zu ermöglichen, Abonnenten daran anzuhängen oder Eventquellen daran anzuhängen, teilen Sie den Bus mit AWS Resource Access Manager (AWS RAM) und wählen Sie eine der vier verwalteten Berechtigungen. Teilen Sie beispielsweise den orders Bus mit einem Konto, das 444455556666 verwendetAWSRAMEventBridgeEventBusV2SubscribeOnly, und dieses Konto kann Abonnenten auf dem Bus erstellen. Schreiben Sie stattdessen eine Ressourcenrichtlinie auf den Bus, wenn Sie eine expliziteDeny, einen Bedingungsschlüssel oder eine Zuweisung benötigen, für die keine verwaltete Berechtigung gilt. Für das andere Konto sind in seinen eigenen Identitätsrichtlinien immer noch dieselben Aktionen erforderlich, da beide Seiten dies zulassen müssen.

Voraussetzungen für die gemeinsame Nutzung eines Busses

  • Der Bus muss Ihnen gehören. Ein Verbraucherkonto kann sich einen Bus nicht weiter teilen.

  • Um Inhalte ohne Einladung mit Konten in Ihrer Organisation zu teilen, aktivieren Sie die Option Teilen mit AWS Organizations in AWS RAM. Wenn Sie Inhalte mit einem Konto außerhalb Ihrer Organisation teilen möchten, muss das Konto die Einladung zur gemeinsamen Nutzung der Ressource annehmen, bevor es den Bus nutzen kann.

  • Der Bus und die Abonnenten des Verbrauchers befinden sich in derselben Region und Partition. Ein Verbraucher veröffentlicht Inhalte für den Bus und erstellt dort Abonnenten in der Region des Busses.

Einen Bus teilen

Wir empfehlen AWS RAM eine Ressourcenrichtlinie, die Sie selbst verfassen. AWS RAM gibt dir einen Ort, an dem du sehen und widerrufen kannst, was du geteilt hast. Es arbeitet mit AWS Organizations und schreibt die AWS_RAM Ressourcenrichtlinien für den Bus für dich. Erstellen Sie eine Ressourcenfreigabe, die den Bus-ARN, die Benutzerkonten oder Organisationseinheiten und eine der vier AWS verwalteten Berechtigungen für den Busressourcentyp benennt, jeweils unterarn:aws:ram::aws:permission/name.

Verwaltete BerechtigungWas kann das Verbraucherkonto
AWSRAMEventBridgeEventBusV2PublishOnlyVeröffentlichen Sie im Bus
AWSRAMEventBridgeEventBusV2SubscribeOnlyVerbinde Abonnenten mit dem Bus
AWSRAMEventBridgeEventBusV2EventSourceAccessFügen Sie Ereignisquellen hinzu, aktualisieren Sie sie und beschreiben Sie den Bus
AWSRAMEventBridgeEventBusV2FullAccessVeröffentlichen Sie mit einer der APIs, beschreiben Sie den Bus und erstellen, aktualisieren und löschen Sie seine eigenen Abonnenten und Ereignisquellen
aws ram create-resource-share \ --name orders-bus-share \ --resource-arns arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef \ --principals 444455556666 \ --permission-arns arn:aws:ram::aws:permission/AWSRAMEventBridgeEventBusV2SubscribeOnly

Um weniger als eine verwaltete Berechtigung zu gewähren oder einen Bedingungsschlüssel hinzuzufügen, verfassen Sie eine vom AWS RAM Kunden verwaltete Berechtigung. AWS RAM lehnt eine Aktion ab, die nur einen Busbesitzer benennt. Liest eine Berechtigung zusammen mit der AWS RAM GetPermission Operation zurück, anstatt von der genauen Aktionsliste auszugehen.

Die gemeinsame Nutzung eines Busses aufheben

Um die gemeinsame Nutzung zu beenden, entfernen Sie den Bus oder den Principal aus der Ressourcenfreigabe oder löschen Sie die gemeinsame Nutzung. EventBridgeautorisiert einen Abonnenten oder eine Ereignisquelle bei der Erstellung, sodass ein Abonnent, den der Verbraucher erstellt hat, während die Freigabe aktiv war, auch dann weiterverbreitet, wenn Sie die gemeinsame Nutzung aufgehoben haben. Um es zu beenden, widerrufen Sie es mitRevokeResource; siehe. Einen Abonnenten oder eine Ereignisquelle sperren Der Verbraucher kann keine Beiträge mehr veröffentlichen oder neue Abonnenten erstellen, sobald die Aktie nicht mehr verfügbar ist.

Arbeiten Sie mit einem Bus, der mit Ihnen geteilt wird

Ein Bus, der mit deinem Konto geteilt wird, erscheint in deinen ListEventBuses Ergebnissen mit dem Konto des Besitzers in seinem ARN, und du nutzt ihn mit diesem ARN in der Region des Busses. Was du auf dem Bus erstellst, gehört dir: Wenn du Abonnenten auf dem gemeinsam genutzten Bus auflistest, siehst du nur deine eigenen Abonnenten, während der Busbesitzer sie alle sieht. Wenn Sie sich einen Bus teilen, wird nur dieser Bus angezeigt. Sie sehen nie die anderen Busse des Besitzers. Sie können den Bus nicht aktualisieren oder löschen, seine Ressourcenrichtlinie nicht ändern oder ihn für andere Benutzer freigeben, und Sie können nicht auf einen Abonnenten einwirken, der einem anderen Konto gehört. Der Busbesitzer kann alle Ihre Abonnenten oder Eventquellen mit denen Sie verbunden sind, zurückziehenRevokeResource. Eine gesperrte Ressource wird dauerhaft beendet und Sie können sie nur löschen.

Fakturierung und Messung

Für die gemeinsame Nutzung eines Busses fallen keine eigenen Kosten an. Veröffentlichung, Versand und Aufbewahrung werden wie auf der EventBridge Amazon-Preisseite beschrieben in Rechnung gestellt. Der Busbesitzer kann das Liefervolumen pro Kundenkonto in den EgressBytes Kennzahlen EventsDelivered und der SubscriberAccount Dimension sehen; sieheBeobachtbarkeit für den Custom Event Bus: Metriken, Protokolle und CloudTrail.

Schreiben Sie eine benutzerdefinierte Ressourcenrichtlinie

Ein Event-Bus ist die einzige Custom Event Bus-Ressource, die eine Ressourcenrichtlinie akzeptiert; alle anderen Ressourcen-ARN werden EventBridge abgelehnt. Ein Bus enthält zwei benannte Richtlinien. defaultist die, die Sie schreiben, einschließlich Deny der vollständigen IAM-Richtliniensprache. AWS_RAMwurde nur von Ihren Ressourcenanteilen geschrieben AWS RAM und spiegelt Ihre Ressourcenanteile wider. EventBridge wertet sowohl aus, wenn es einen Anrufer von einem anderen Konto aus autorisiert, als auch ein explizites Deny In überschreibt eines Allow der anderen Accounts. Wenn ein kontoübergreifender Anrufer abgelehnt wird und die von Ihnen verfasste Richtlinie ihn offenbar zulässt, lesen Sie die andere Richtlinie.

Die folgende default Richtlinie für den orders Bus ermöglicht es dem Konto, Teilnehmer 444455556666 zuzuordnen und den Bus zu lesen, aber sonst nichts.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPartnerAccountToSubscribe", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:root" }, "Action": [ "events:CreateSubscriber", "events:DescribeEventBus" ], "Resource": "arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef" } ] }

Verwalten Sie die Richtlinien mit PutResourcePolicyGetResourcePolicy,DeleteResourcePolicy, undListResourcePolicies. Jeder nimmt den Bus-ARN auf--resource-arn, und jeder reagiert, default wenn Sie ihn weglassen--policy-name. Sie können weder schreiben noch löschenAWS_RAM: Die Benennung schlägt fehl mitAccessDeniedException. GetResourcePolicyschlägt fehl, ResourceNotFoundException wenn die benannte Richtlinie nicht existiert, und gibt kein leeres Dokument zurück. Behandeln Sie das also als keine Richtlinie. Ein Bus, den Sie nur über einen Bus gemeinsam genutzt haben, AWS RAM hat keine default Richtlinie, also get-resource-policy ohne --policy-name gibt diesen Fehler zurück. Übergeben Sie diese Option--policy-name AWS_RAM, um die AWS RAM geschriebene Richtlinie zu lesen. ListResourcePoliciesgibt nur Richtliniennamen und Revisions-IDs zurück, niemals Dokumente. Um ein Schreiben oder Löschen von Bedingungen abhängig zu machen, geben Sie die aktuelle Version der Richtlinie ein. Bei --expected-revision-id einer Nichtübereinstimmung schlägt der Vorgang fehl. ConflictException Ein default Richtliniendokument kann bis zu 20 KB groß sein; eine größere Richtlinie schlägt fehl. PolicyLengthExceededException Dieses Kontingent kann unter Dienstkontingente angepasst werden.

EventBridge lehnt eine default Richtlinie ab, die öffentlichen Zugriff gewähren würdePublicPolicyException, und fügt sie nicht hinzu. Diese Prüfung ist immer aktiviert. Eine Aussage ist öffentlich zugänglich, wenn der Hauptbenutzer ein Platzhalter ist und keine Bedingung die Anrufer auf bestimmte Konten oder Hauptbenutzer beschränkt. Eine Bedingung für den Inhalt einer Veranstaltung, z. B.events:source, identifiziert den Anrufer nicht. Eine Bedingung wie z. aws:PrincipalOrgID B. Eine Richtlinie, die Sie verfassen AWS RAM, ist für Sie unsichtbar. Sie müssen sie also selbst verfolgen.

Ereignisse, die ohne einen Veröffentlichungsaufruf eintreffen

Ereignisse kommen auch ohne Direkt PutEvents - oder PutRawEvents Anruf auf einem Bus an: von einer Ereignisquelle oder von einer Regel oder einem Teilnehmer auf einem anderen Bus, dessen Ziel dieser Bus ist. Eine Ereignisquelle wird einmal autorisiert, wenn Sie sie erstellen, und nichts wird erneut überprüft, wenn Ereignisse eintreffen, sodass eine Busrichtlinie diesen Verkehr danach nicht filtern kann. Siehe Ereignisquellen für einen benutzerdefinierten Event-Bus. Eine Regel oder ein Abonnent, den Sie selbst auf einen Bus verweisen, wird bei der Aufnahme unter der von Ihnen angegebenen Rolle einmal für jedes Ereignis autorisiert. EventBridge wählt die Aktion pro Ereignis aus: events:PutEvents für ein echtes AWS Service- oder Partnerereignis und events:PutRawEvents für ein Ereignis, das Sie selbst initiiert haben. Sie können die verwendete Aktion nicht auswählen. Daher müssen einem Forwarder, der beide Arten von Ereignissen über einen Pfad überträgt, beide Aktionen gewährt werden, und zwar in der Identitätsrichtlinie der Rolle und in der Ressourcenrichtlinie des Zielbusses. Wenn nur eine gewährt wird, wird der halbe Stream verweigert.