View a markdown version of this page

Ereignisse auf einem Custom Event Bus verschlüsseln - 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.

Ereignisse auf einem Custom Event Bus verschlüsseln

Ein Bus verschlüsselt alles, was er speichert: Event-Payloads, Event-Metadaten, Abonnentenfilter und Abonnenten-Zielkonfiguration. Standardmäßig verwendet er einen eigenen Schlüssel, AWS und Sie konfigurieren nichts. Um stattdessen einen Bus mit Ihrem eigenen AWS KMS Schlüssel zu verschlüsseln, legen Sie dies beispielsweise EncryptionConfiguration.KmsKeyIdentifier aws eventsv2 create-event-bus --name orders --encryption-configuration KmsKeyIdentifier=arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab beim Erstellen oder Aktualisieren des Busses fest und fügen Sie die drei Anweisungen Das Schreiben der wichtigsten Richtlinie zur Schlüsselrichtlinie hinzu.

Wählen Sie den Schlüssel, der einen Bus verschlüsselt

Lassen Sie den Bus EncryptionConfiguration weg und EventBridge verschlüsselt ihn mit 256-Bit-AES unter einem eigenen Schlüssel. AWS Sie können diesen Schlüssel weder einsehen noch verwalten, seine Verwendung erscheint nicht in Ihren CloudTrail Protokollen, er kostet nichts, er wird nicht auf Ihre AWS KMS Kontingente angerechnet und AWS er wechselt monatlich. DescribeEventBusgibt EncryptionConfiguration für einen solchen Bus nein zurück. Weitere Informationen finden Sie unter AWS -eigene Schlüssel im AWS KMS -Entwicklerhandbuch.

Legt den Bus mit Ihrem vom Kunden verwalteten Schlüssel fest EncryptionConfiguration.KmsKeyIdentifier und EventBridge verschlüsselt ihn. Sie kontrollieren dann die Schlüsselrichtlinie, Rotation, Deaktivierung und Löschung, und Sie sehen jede Verwendung des Schlüssels. CloudTrail Für den Schlüssel fallen die AWS KMS monatliche Schlüsselgebühr und die Anforderungsgebühren an. Da Ereignisse lokal unter einem zwischengespeicherten Branch-Schlüssel EventBridge verschlüsselt und entschlüsselt werden (sieheWie benutzt der Bus deinen Schlüssel), werden pro Bus und Cache-Fenster plus Rotation einige AWS KMS Anfragen gestellt. Die Anzahl der Anfragen wächst nicht mit Ihrem Eventvolumen. Weitere Informationen finden Sie unter AWS KMS Preise.

KmsKeyIdentifierakzeptiert eine Schlüssel-ID, einen Schlüssel-ARN, einen Aliasnamen wie alias/orders oder einen Alias-ARN. EventBridge qualifiziert eine bloße Schlüssel-ID oder einen Aliasnamen in Ihrem Konto und Ihrer Region. Daher muss ein Schlüssel in einem anderen Konto mit seinem vollständigen Schlüssel-ARN benannt werden. Ein Alias wird in seinen Schlüssel aufgelöst, wenn Sie den Bus erstellen oder aktualisieren, und die Antworten zum Erstellen und Beschreiben geben diesen Schlüssel-ARN zurück. Re-pointing Der Alias ändert später nicht den Schlüssel, den ein Bus verwendet. Bei dem Schlüssel muss es sich um einen symmetrischen Verschlüsselungsschlüssel (SYMMETRIC_DEFAULT, SchlüsselverwendungENCRYPT_DECRYPT) handeln. Asymmetrische Schlüssel und EventBridge HMAC-Schlüssel werden abgelehnt. Ein Schlüssel für mehrere Regionen funktioniert wie ein gewöhnlicher Schlüssel: Benennen Sie das Replikat in der Region des Busses, da weder Ihre Daten noch Ihr Schlüsselmaterial EventBridge regionsübergreifend repliziert werden. Schlüssel mit importiertem Schlüsselmaterial und Schlüssel in einem externen Schlüsselspeicher werden unterstützt.

aws eventsv2 create-event-bus \ --name orders \ --encryption-configuration KmsKeyIdentifier=arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

Ihr Schlüssel verschlüsselt die Event-Payloads und Metadaten, die der Bus speichert, die Kopien, die für jeden Abonnenten während der Übertragung gespeichert wurden, sowie die Abonnentenfilter und die Zielkonfiguration. Vier Dinge sind nicht mit Ihrem Schlüssel verschlüsselt, da sie EventBridge benötigt werden, um Ereignisse weiterzuleiten und nachzuschlagen: der Busname, die ARN und die Konto-ID; die Eventgruppen-ID, die die FIFO-Lieferung bestellt, also geben Sie keine vertraulichen Daten hinein; die Deduplizierungs-ID, die als unidirektionaler Hash EventBridge gespeichert wird; und interne Match-Ergebnisse und Sequenznummern. Die Speicherdienste verschlüsseln die Daten, die sich im Speicher befinden, mit ihren eigenen Schlüsseln.

Wie benutzt der Bus deinen Schlüssel

Wenn Sie einen vom Kunden verwalteten Schlüssel konfigurieren, EventBridge wird ein Abzweigschlüssel für den Bus erstellt: ein Zwischenschlüssel, der in einer vom Dienst verwalteten Tabelle gespeichert und in Ihren AWS KMS Schlüssel eingeschlossen wird. Er folgt dem hierarchischen Schlüsselbund des AWS Encryption SDK. EventBridge leitet für jedes Ereignis einen Datenschlüssel aus dem Verzweigungsschlüssel ab, sodass Ereignisse lokal verschlüsselt und entschlüsselt werden, ohne dass ein Aufruf pro Ereignis erforderlich ist. AWS KMS

  • Wenn Sie ein Ereignis veröffentlichen, EventBridge verschlüsselt es unter dem Abzweigschlüssel des Busses, bevor es in den Speicher geschrieben wird.

  • Wenn EventBridge ein Ereignis übertragen wird, wird das Ereignis entschlüsselt, um Filter auszuwerten und bereitzustellen. Das Ziel empfängt das entschlüsselte Ereignis; für die Verschlüsselung am Ziel ist der Zieldienst verantwortlich.

  • EventBridge speichert den Zweigschlüssel für bis zu 15 Minuten im Speicher. Wenn der Cache abläuft, fordert er Ihren Schlüssel kms:Decrypt auf, den Zweigschlüssel erneut zu entpacken.

  • EventBridge erstellt etwa alle 30 Tage eine neue Version des Zweigschlüssels und behält die älteren Versionen bei, sodass Ereignisse, die früher geschrieben wurden, während der Aufbewahrungszeit des Busses lesbar bleiben.

EventBridge erreicht Ihren Schlüssel auf zwei Pfaden, und die Schlüsselrichtlinie muss beide zulassen. Für die Prüfungen, die während Ihres API-Aufrufs ausgeführt werden, werden Ihre Anmeldeinformationen verwendet, die vom Aufruf weitergeleitet wurden. Für die Arbeit, die es nach der Rückkehr des Aufrufs erledigt, wie z. B. das Übermitteln von Ereignissen und das Verwalten des Branch-Schlüssels, fungiert es als events.amazonaws.com Service-Principal, da Ihre Anmeldeinformationen nicht mehr verfügbar sind.

Das Schreiben der wichtigsten Richtlinie

Fügen Sie der Schlüsselrichtlinie drei Anweisungen hinzu: eine, mit der Ihre Principals den Schlüssel validieren können, eine, mit der sie die Zugriffsprüfungen EventBridge mit ihren Anmeldeinformationen bestehen können, und eine für den events.amazonaws.com Dienstprinzipal. Bei jeder AWS KMS EventBridge Anforderung, dass ein Bus den Verschlüsselungskontextschlüssel aws:events:event-busv2:arn mit dem Bus-ARN auf beiden Zugriffspfaden enthält, sind die zweite und dritte Anweisung auf einen Bus beschränkt. Ein Bus-ARN endet mit einem Suffix, das bei der Erstellung EventBridge generiert wird. Ordnen Sie es also einem Suffix StringLike und einem nachfolgenden Suffix zu. /* Behalten Sie auch Ihre eigenen wichtigen Verwaltungserklärungen in der Richtlinie bei. Ersetzen Sie das Konto, die Region, die Rolle und den Busnamen im folgenden Beispiel.

{ "Version": "2012-10-17", "Id": "eventbridge-custom-event-bus-key-policy", "Statement": [ { "Sid": "AllowKeyValidationThroughEventBridge", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:DescribeKey", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "events.us-east-1.amazonaws.com" } } }, { "Sid": "AllowKeyUseThroughEventBridge", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKeyWithoutPlaintext", "kms:ReEncryptFrom", "kms:ReEncryptTo" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "events.us-east-1.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:events:event-busv2:arn": "arn:aws:events:us-east-1:111122223333:event-busv2/orders/*" } } }, { "Sid": "AllowEventBridgeServicePrincipal", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKeyWithoutPlaintext", "kms:ReEncryptFrom", "kms:ReEncryptTo" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:events:event-busv2:arn": "arn:aws:events:us-east-1:111122223333:event-busv2/orders/*" } } } ] }

AllowKeyValidationThroughEventBridgeermöglicht es Ihren Principals, den Schlüssel zu validieren, wenn sie einen Bus erstellen oder aktualisieren. EventBridge ruft kms:DescribeKey mit Ihren Anmeldeinformationen an, um zu bestätigen, dass der Schlüssel existiert, symmetrisch ist und aktiviert ist. DescribeKeynimmt keinen Verschlüsselungskontext an, daher hat diese Anweisung keinen; kms:ViaService beschränkt ihn auf eingehende Anfragen. EventBridge

AllowKeyUseThroughEventBridgeautorisiert die Zugriffsprüfungen, die EventBridge mit Ihren Anmeldeinformationen durchgeführt werden, bevor eine Schlüsselkonfiguration akzeptiert wird und bevor verschlüsselte Daten für Sie geschrieben oder gelesen werden, sodass Sie keinen Schlüssel konfigurieren können, den die spätere, asynchrone Arbeit des Dienstes nicht verwenden kann. Bei den Prüfungen handelt es sich um AWS KMS Probeläufe: Sie autorisieren, verschlüsseln und entschlüsseln nichts. Sie werden als AWS KMS Standardanfragen abgerechnet und auf Ihre AWS KMS Anforderungskontingente angerechnet. Weitere Informationen finden Sie im Entwicklerhandbuch unter Testen Ihrer Berechtigungen. AWS KMS Bei jeder Operation werden die Aktionen überprüft, die ihre spätere Arbeit ausführt:

  • CreateEventBusbei einem vom Kunden verwalteten Schlüsselüberprüfungenkms:GenerateDataKeyWithoutPlaintext,, und kms:ReEncryptFromkms:ReEncryptTo, werden die Aktionen ausgeführtkms:Decrypt, die bei der Erstellung des Verzweigungsschlüssels und bei späteren Lesevorgängen ausgeführt werden.

  • UpdateEventBusDadurch werden die Tastenprüfungen für kms:Decrypt den aktuellen Schlüssel kms:Encrypt und für kms:Decrypt den neuen Schlüssel geändert.

  • PutEventsund PutRawEvents in einem Bus mit einem vom Kunden verwalteten Schlüsselcheckkms:Decrypt. Ein Producer, der die Ereignisse des Busses nicht zurücklesen kann, kann sie auch nicht schreiben. Ohne sie schlägt der Veröffentlichungsaufruf bei der AccessDeniedException Benennung fehlKMS_ACCESS_DENIED.

  • CreateSubscriberund UpdateSubscriber überprüfen Siekms:Decrypt, da die Abonnentenkonfiguration unter dem Busschlüssel verschlüsselt ist.

Diese Anweisung muss also jede Rolle abdecken, die den Bus erstellt oder aktualisiert, auf ihm veröffentlicht oder Abonnenten auf dem Bus erstellt. Principal Führen Sie die Rollen-ARNs auf, oder benennen Sie den Root-Principal des Kontos, um die Entscheidung an die IAM-Richtlinien in Ihrem Konto zu delegieren.

AllowEventBridgeServicePrincipalautorisiert die Ausführung der Arbeit, während der Service nach Abschluss Ihres Anrufs EventBridge ausgeführt wird. kms:GenerateDataKeyWithoutPlaintextkms:ReEncryptFrom, und kms:ReEncryptTo erstellen Sie bei Rotation den Abzweigschlüssel des Busses und seine neuen Versionen. kms:Decryptentpackt den Branch-Schlüssel, um Ereignisse auszusenden, die Teilnehmerkonfiguration zu laden und bei Describe-Aufrufen die entschlüsselte Konfiguration zurückzugeben. kms:Decryptmit kms:Encrypt umschließt den Abzweigschlüssel neu, wenn Sie den Schlüssel des Busses ändern.

Der Schlüssel kann in einem anderen Konto gespeichert werden, z. B. in einem zentralen Sicherheitskonto. Fügen Sie alle drei Anweisungen in die Richtlinie dieses Schlüssels ein, wobei die Rollen des Buskontos die Prinzipale der ersten beiden sind und der Bus-ARN des Buskontos in den Werten für den Verschlüsselungskontext enthalten ist. Für die Rollen des Buskontos sind außerdem IAM-Identitätsrichtlinien erforderlich, die dieselben AWS KMS Aktionen für den Schlüssel-ARN zulassen, da für den kontoübergreifenden AWS KMS Zugriff eine Genehmigung auf beiden Seiten erforderlich ist. Benennen Sie den Schlüssel anhand seines vollständigen Schlüssel-ARN.

Festlegung des Geltungsbereichs der Schlüsselrichtlinie auf einen Bus

Um eine Anweisung auf einen Bus zu beschränken, müssen Sie sie auf eine Bedingung beschränken. kms:EncryptionContext:aws:events:event-busv2:arn Bevor der Bus existiert, verwenden Sie StringLike ihn wie in der vorherigen Richtlinie mit einem nachfolgenden /* Text. Für einen vorhandenen Bus können Sie den genauen ARN, der DescribeEventBus zurückgegeben wird, mit StringEquals abgleichen. Jede Anfrage, die mit Ihren Anmeldeinformationen gestellt wird, wird auch kms:ViaService mit aufgefülltevents.region.amazonaws.com, sodass Sie Ihre Principals darauf beschränken können, den Schlüssel ausschließlich über EventBridge das System zu verwenden.

Anfragen, die EventBridge als Service-Principal gestellt werden, werden aws:SourceArn mit dem Bus-ARN und aws:SourceAccount dem Buskonto übertragen. Fügen Sie sie hinzu, AllowEventBridgeServicePrincipal damit Sie Ihren Schlüssel nur für Ihre eigenen Busse verwenden EventBridge können.

"Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:events:us-east-1:111122223333:event-busv2/orders/*" } }

Einzelne Veröffentlichungs- und Bereitstellungsvorgänge verwenden den zwischengespeicherten Branch-Schlüssel und überprüfen die Schlüsselrichtlinie nicht für jedes Ereignis erneut. Eine wichtige Änderung der Richtlinie, einschließlich einer Änderung, die den Zugriff EventBridge sperrt, wird auf die Datenverarbeitung eines Busses wirksam, wenn der zwischengespeicherte Abzweigschlüssel innerhalb von 15 Minuten abläuft.

Den Schlüssel an einem Bus ändern oder entfernen

Rufen Sie anUpdateEventBus, um einen Bus AWS vom eigenen Schlüssel auf einen vom Kunden verwalteten Schlüssel, von einem Kunden zum anderen oder zurück zum AWS eigenen Schlüssel zu bewegen. Um zum AWS eigenen Schlüssel zurückzukehren, senden Sie eine EncryptionConfiguration Geschenkkarte mit einem leeren Text als--encryption-configuration '{}'. EncryptionConfigurationGanz weglassen und der Bus behält seinen aktuellen Schlüssel.

Der Bus fährt einUPDATING, EventBridge wickelt den Abzweigschlüssel erneut unter den neuen Schlüssel und kehrt dann zurück zu. ACTIVE Der Abzweigschlüssel selbst ändert sich nicht, daher werden keine gespeicherten Ereignisse EventBridge neu verschlüsselt. Die Änderung wird schnell abgeschlossen, egal, was der Bus enthält, und zuvor geschriebene Ereignisse bleiben unabhängig vom Zustand des alten Schlüssels lesbar. Sobald der Bus ACTIVE mit dem neuen Schlüssel DescribeEventBus angezeigt wird, können Sie den alten Schlüssel deaktivieren.

Wenn der neue Schlüssel EventBridge nicht verwendet werden kann, gewöhnt sich der Bus an UPDATE_FAILED und arbeitet mit seinem vorherigen Schlüssel weiter: Er akzeptiert und übermittelt weiterhin Ereignisse und meldet DescribeEventBus weiterhin den alten Schlüssel. Der ausgefallene Schlüssel wird niemals zum Bustaste. Rufen Sie UpdateEventBus erneut mit einem verwendbaren Schlüssel an, oder mit demselben Schlüssel, nachdem Sie die Richtlinie festgelegt haben, und der Bus kehrt zuACTIVE. Ein Bus, dessen Erstellung CREATE_FAILED mit dem Schlüssel fehlschlägt, gibt eine StateReason Benennung der AWS KMS Ablehnung ab; dieser Zustand akzeptiert nur und UpdateEventBus wird mit einer Meldung zurückgewiesenDeleteEventBus, in der die Zustände benannt werden, die er akzeptiert,. [ACTIVE, UPDATE_FAILED] Korrigieren Sie die Schlüsselrichtlinie, löschen Sie den Bus und erstellen Sie ihn erneut. Informationen zu den Bundesstaaten finden Sie unterBus-Status und was jeder erlaubt.

Wenn Sie die automatische Schlüsselrotation auf Ihrem Schlüssel aktivieren, AWS KMS dreht sich das Trägermaterial hinter demselben Schlüssel-ARN. Der Zweigschlüssel bleibt von dem Material umhüllt, mit dem er zuletzt umwickelt wurde, und die nächste Zweigschlüsselversion, die etwa alle 30 Tage erstellt wird, verwendet das aktuelle Material. Eine AWS KMS Rotation erreicht Ihren Bus also innerhalb von etwa einem Monat.

Wenn der Schlüssel unbrauchbar wird

Wenn Sie den Schlüssel deaktivieren, seine Löschung einplanen oder ihm den Zugriff darauf entziehen EventBridge, funktioniert der Bus weiter, bis sein zwischengespeicherter Abzweigschlüssel innerhalb von 15 Minuten abläuft. Dann schlägt die Veröffentlichung auf dem Bus mit einem AWS KMS Zugriffsfehler fehl und die Übertragung wird unterbrochen. EventBridge löscht die Ereignisse nicht, die es bereits akzeptiert hat, und sendet sie nicht in Warteschlangen, in denen keine Nachrichten mehr gelesen werden. Es hält sie zurück und versucht es erneut, weil ein Schlüsselzugriffsfehler eine Bedingung ist, die Sie beheben können. Wenn Sie den Zugriff wiederherstellen, werden Veröffentlichung und Versand von selbst wieder aufgenommen. Kein Ereignis ist verloren, es sei denn, der Ausfall überschreitet die Aufbewahrungszeit des Busses.

Das Löschen des Schlüssels ist dauerhaft. Nach dem AWS KMS Löschen des auf einem Bus konfigurierten Schlüssels EventBridge kann der Abzweigschlüssel des Busses nicht mehr ausgepackt werden, und jedes Ereignis, das noch auf dem Bus gespeichert ist, ist für den Rest der Aufbewahrungsdauer nicht lesbar. Deaktivieren Sie zuerst den Schlüssel, bestätigen Sie den Effekt und planen Sie erst dann den Löschvorgang. Weitere Informationen finden Sie im Entwicklerhandbuch unter Löschen von AWS KMS Schlüsseln. AWS KMS DeleteEventBusbenötigt den Schlüssel nicht: Es ist erfolgreich, wenn der Schlüssel deaktiviert oder gelöscht wird.

Überwachung der Verwendung von Schlüsseln in CloudTrail

Jede Anfrage an EventBridge Ihren vom Kunden verwalteten Schlüssel wird in aufgezeichnet CloudTrail; siehe Protokollieren von AWS KMS API-Aufrufen mit CloudTrail. In der folgenden Tabelle sind die zu erwartenden Ereignisse aufgeführt.

eventName Wann Identität aufrufen
DescribeKey Schlüsselvalidierung beim Erstellen und Aktualisieren des Busses Ihr Schulleiter, durch EventBridge
Decrypt, EncryptGenerateDataKeyWithoutPlaintext, ReEncrypt (Probelauf) Zugriffsprüfungen für das Erstellen und Aktualisieren von Bussen, Veröffentlichen und Erstellen und Aktualisieren durch Abonnenten Ihr Schulleiter, durch EventBridge
GenerateDataKeyWithoutPlaintext, ReEncrypt Erstellung des Filialschlüssels bei Buserstellung und Rotation der Filialschlüssel etwa alle 30 Tage events.amazonaws.com
Decrypt Der Zweigschlüssel wird entpackt, wenn der Cache abläuft: Zustellung von Ereignissen, Laden der Abonnentenkonfiguration, Beschreibung von Anrufen events.amazonaws.com
Decrypt und Encrypt Umschließen des Zweigschlüssels, wenn der Schlüssel UpdateEventBus geändert wird events.amazonaws.com

CloudTrail zeichnet einen ReEncrypt Anruf als ein Ereignis auf; beide kms:ReEncryptTo Berechtigungen kms:ReEncryptFrom und autorisieren ihn. Ein Testlaufeintrag, der angezeigt DryRunOperationException wird, ist eine bestandene Zugriffsprüfung, kein Fehler in Ihrer Konfiguration. Ein Eintrag, der angezeigt wird, AccessDeniedException bedeutet, dass dem Anrufer die geprüfte Berechtigung fehlt. Bei requestParameters.encryptionContext jedem Eintrag ist in Ihrem Bus die aws:events:event-busv2:arn ARN enthalten. In den Zweigschlüsseleinträgen befinden sich auch die Felder des Hierarchischen branch-key-id Schlüsselbunds: (der Bus-ARN)type,create-time, tablenamehierarchy-version, und. kms-arn Per-event Bei der Verschlüsselung und Entschlüsselung werden Datenschlüssel verwendet, die lokal aus dem zwischengespeicherten Zweigschlüssel abgeleitet wurden, sodass einzelne Ereignisse darin nicht vorkommen. CloudTrail

Verschlüsselung während der Übertragung

Alle Custom Event Bus API-Aufrufe gehen an einen HTTPS-Endpunkteventsv2.region.amazonaws.com, und jede Anfrage muss mit Ihren Anmeldeinformationen signiert werden. Ein FIPS-Endpunkt ist dort verfügbareventsv2-fips.region.amazonaws.com, wo Sie ihn benötigen. Allgemeine EventBridge Informationen zum Datenschutz finden Sie unterEventBridge Amazon-Sicherheit.