View a markdown version of this page

Crittografia degli eventi su un bus di eventi personalizzato - Amazon EventBridge

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Crittografia degli eventi su un bus di eventi personalizzato

Un bus crittografa tutto ciò che memorizza: payload degli eventi, metadati degli eventi, filtri per gli abbonati e configurazione del target degli abbonati. Per impostazione predefinita, utilizza una chiave AWS proprietaria e non si configura nulla. Per crittografare un bus con la tua AWS KMS chiave, imposta invece EncryptionConfiguration.KmsKeyIdentifier quando crei o aggiorni il bus, ad esempioaws eventsv2 create-event-bus --name orders --encryption-configuration KmsKeyIdentifier=arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab, e aggiungi le tre istruzioni Scrivere la politica chiave alla policy della chiave.

Scelta della chiave che crittografa un bus

Ometti EncryptionConfiguration e EventBridge crittografa il bus con AES a 256 bit con una chiave proprietaria. AWS Non puoi visualizzare o gestire quella chiave, il suo utilizzo non appare nei tuoi CloudTrail log, non costa nulla, non viene conteggiato nelle tue AWS KMS quote e la ruota mensilmente. AWS DescribeEventBusrestituisce no EncryptionConfiguration per un autobus del genere. Per ulteriori informazioni, consulta la pagina chiavi di proprietàAWS nella Guida per gli sviluppatori di AWS KMS .

Imposta EncryptionConfiguration.KmsKeyIdentifier e EventBridge crittografa il bus con la chiave gestita dal cliente. Quindi controlli la politica della chiave, la rotazione, la disabilitazione e l'eliminazione e vedi ogni utilizzo della chiave. CloudTrail La chiave comporta la tariffa AWS KMS mensile della chiave e i costi di richiesta. Poiché EventBridge crittografa e decrittografa gli eventi localmente con una chiave branch memorizzata nella cache (vediIn che modo l'autobus utilizza la tua chiave), effettua alcune AWS KMS richieste per bus per finestra di cache più rotazione; il numero di richieste non aumenta con il volume degli eventi. Per ulteriori informazioni, consulta Prezzi di AWS KMS.

KmsKeyIdentifieraccetta un ID chiave, un ARN chiave, un nome alias come, o un alias ARN. alias/orders EventBridge qualifica un ID chiave o un nome alias nudo nel tuo account e nella tua regione, quindi una chiave in un altro account deve essere denominata in base al relativo ARN completo. Un alias viene convertito nella sua chiave quando crei o aggiorni il bus e le risposte di creazione e descrizione restituiscono quell'ARN chiave. Re-pointing l'alias in seguito non modifica la chiave utilizzata da un bus. La chiave deve essere una chiave di crittografia simmetrica (SYMMETRIC_DEFAULTutilizzo della chiaveENCRYPT_DECRYPT); EventBridge rifiuta le chiavi asimmetriche e HMAC. Una chiave multiregionale funziona come una normale chiave: assegna un nome alla replica nella regione del bus, perché non replica né EventBridge i dati né il materiale chiave tra le regioni. Sono supportate le chiavi con materiale chiave importato e le chiavi in un archivio chiavi esterno.

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

La chiave crittografa i payload degli eventi e i metadati conservati dal bus, le copie conservate per ciascun abbonato durante la consegna, i filtri per gli abbonati e la configurazione di destinazione. Quattro elementi non sono crittografati con la tua chiave, perché sono EventBridge necessari per instradare e cercare gli eventi: il nome del bus, l'ARN e l'ID dell'account; l'ID del gruppo di eventi che ordina la consegna FIFO, quindi non inserire dati sensibili; l'ID di deduplicazione, che viene EventBridge memorizzato come hash unidirezionale; e i risultati delle partite e i numeri di sequenza interni. I servizi di archiviazione crittografano quelli inattivi con le proprie chiavi.

In che modo l'autobus utilizza la tua chiave

Quando configuri una chiave gestita dal cliente, EventBridge crea una chiave di filiale per il bus: una chiave intermedia, archiviata in una tabella gestita dal servizio e racchiusa nella tua AWS KMS chiave, seguendo il portachiavi gerarchico AWS Encryption SDK. EventBridge ricava una chiave dati dalla chiave di filiale per ogni evento, quindi crittografa e decrittografa gli eventi localmente senza una chiamata per evento. AWS KMS

  • Quando si pubblica un evento, lo EventBridge crittografa con la chiave di derivazione del bus prima di scriverlo nell'archivio.

  • Quando EventBridge invia un evento, lo decodifica per valutare i filtri e inviarlo. Il destinatario riceve l'evento decrittografato; la crittografia presso la destinazione è responsabilità del servizio di destinazione.

  • EventBridge memorizza nella cache la chiave di diramazione per un massimo di 15 minuti. Quando la cache scade, richiama kms:Decrypt la tua chiave per estrarre nuovamente la chiave di filiale.

  • EventBridge crea una nuova versione della chiave di filiale circa ogni 30 giorni e mantiene le versioni precedenti, in modo che gli eventi scritti in precedenza rimangano leggibili per il periodo di conservazione del bus.

EventBridge raggiunge la tua chiave su due percorsi e la policy chiave deve consentirli entrambi. Per i controlli eseguiti mentre la chiamata API è in corso, utilizza le credenziali dell'utente, inoltrate dalla chiamata. Per il lavoro che svolge dopo il ritorno della chiamata, ad esempio la consegna degli eventi e la gestione della chiave di filiale, funge da principale del events.amazonaws.com servizio, poiché le credenziali dell'utente non sono più disponibili.

Scrivere la politica chiave

Aggiungi tre dichiarazioni alla policy chiave: una che consente ai titolari di convalidare la chiave, una che consente loro di superare i controlli EventBridge di accesso con le proprie credenziali e una per il events.amazonaws.com responsabile del servizio. Ogni AWS KMS richiesta effettuata EventBridge su un bus contiene la chiave di contesto di crittografia aws:events:event-busv2:arn con l'ARN del bus, su entrambi i percorsi di accesso, quindi la seconda e la terza istruzione sono limitate a un bus. Un bus ARN termina con un suffisso che viene EventBridge generato al momento della creazione, quindi abbinalo a un suffisso finale. StringLike /* Conserva anche le tue dichiarazioni amministrative chiave nella polizza. Sostituisci l'account, la regione, il ruolo e il nome del bus nell'esempio seguente.

{ "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/*" } } } ] }

AllowKeyValidationThroughEventBridgeconsente ai committenti di convalidare la chiave quando creano o aggiornano un bus. EventBridge chiama kms:DescribeKey con le tue credenziali per confermare che la chiave esiste, è simmetrica e è abilitata. DescribeKeynon richiede alcun contesto di crittografia, quindi questa dichiarazione non ne ha; la kms:ViaService limita alle richieste che arrivano. EventBridge

AllowKeyUseThroughEventBridgeautorizza i controlli di accesso EventBridge eseguiti con le tue credenziali prima di accettare una configurazione di chiave e prima di scrivere o leggere dati crittografati per te, in modo che tu non possa configurare una chiave che il lavoro asincrono successivo del servizio non possa utilizzare. I controlli sono a AWS KMS secco: autorizzano ma non crittografano e decrittografano nulla. Vengono fatturati come AWS KMS richieste standard e vengono conteggiati nelle quote di richieste; consulta Verifica delle autorizzazioni nella Guida per gli sviluppatori. AWS KMS AWS KMS Ogni operazione verifica le azioni eseguite dal lavoro successivo:

  • CreateEventBuscon una chiave gestita dal cliente controllakms:GenerateDataKeyWithoutPlaintext, kms:ReEncryptFrom kms:ReEncryptTokms:Decrypt, e le azioni eseguite dalla creazione di una chiave ramificata e dalle successive letture.

  • UpdateEventBusche modifica i controlli chiave kms:Decrypt sulla chiave corrente kms:Encrypt e kms:Decrypt sulla nuova chiave.

  • PutEventse PutRawEvents su un autobus con un controllo delle chiavi gestito dal clientekms:Decrypt. Un produttore che non è in grado di rileggere gli eventi dell'autobus non può nemmeno scriverli. Senza di essa, la chiamata di pubblicazione non riesce con l'AccessDeniedExceptionassegnazione dei nomi. KMS_ACCESS_DENIED

  • CreateSubscribere UpdateSubscriber controllakms:Decrypt, perché la configurazione dell'abbonato è crittografata con la chiave bus.

Quindi questa dichiarazione deve coprire ogni ruolo che crea o aggiorna il bus, lo pubblica o crea abbonati su di esso. Principal Elenca gli ARN del ruolo o nomina il principale principale dell'account per delegare la decisione alle politiche IAM del tuo account.

AllowEventBridgeServicePrincipalautorizza il lavoro svolto EventBridge come servizio dopo il completamento della chiamata. kms:GenerateDataKeyWithoutPlaintextkms:ReEncryptFrom, e kms:ReEncryptTo crea la chiave di diramazione del bus e le sue nuove versioni a rotazione. kms:Decryptdecomprime la chiave di ramo per fornire eventi, caricare la configurazione dell'abbonato e restituire la configurazione decrittografata nelle chiamate di descrizione. kms:Decryptwith kms:Encrypt ricompone la chiave di diramazione quando si modifica la chiave del bus.

La chiave può risiedere in un altro account, ad esempio un account di sicurezza centrale. Inserisci tutte e tre le dichiarazioni nella policy di quella chiave, con i ruoli dell'account bus come principali delle prime due e l'ARN del bus dell'account bus nei valori del contesto di crittografia. I ruoli dell'account bus richiedono anche politiche di identità IAM che consentano le stesse AWS KMS azioni sull'ARN chiave, poiché l' AWS KMS accesso tra account richiede l'autorizzazione da entrambe le parti. Assegna un nome alla chiave in base al relativo ARN completo.

Assegnazione della politica chiave a un bus

Per limitare un'istruzione a un bus, condizionala. kms:EncryptionContext:aws:events:event-busv2:arn Prima che il bus esista, usalo StringLike con un carattere finale/*, come nella politica precedente. Per un autobus esistente, puoi far corrispondere l'ARN esatto con cui DescribeEventBus ritorna. StringEquals Ogni richiesta effettuata con le tue credenziali viene compilata anche kms:ViaService conevents.region.amazonaws.com, quindi puoi limitare i tuoi principali a utilizzare solo la chiave. EventBridge

Le richieste effettuate come EventBridge committente del servizio vengono effettuate aws:SourceArn con l'ARN del bus e aws:SourceAccount con l'account del bus. Aggiungile in AllowEventBridgeServicePrincipal modo da EventBridge poter utilizzare la chiave solo per i tuoi autobus.

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

Le singole operazioni di pubblicazione e consegna utilizzano la chiave branch memorizzata nella cache e non ricontrollano la policy chiave per evento. Una modifica della politica chiave, inclusa una modifica che rimuove l'accesso, EventBridge ha effetto sulla gestione dei dati di un bus alla scadenza della chiave di filiale memorizzata nella cache, entro 15 minuti.

Modifica o rimozione della chiave su un bus

Chiama UpdateEventBus per spostare un autobus dalla chiave AWS di proprietà a una chiave gestita dal cliente, da una chiave gestita dal cliente a un'altra o di nuovo alla chiave AWS di proprietà. Per restituire la chiave AWS posseduta, invia la chiave EncryptionConfiguration presente e vuota, come--encryption-configuration '{}'. Se si omette EncryptionConfiguration completamente, il bus manterrà la chiave corrente.

Il bus entra UPDATING mentre EventBridge riavvolge la chiave di diramazione sotto la nuova chiave, quindi ritorna a. ACTIVE La chiave di derivazione in sé non cambia, quindi EventBridge cripta nuovamente nessun evento memorizzato, la modifica viene completata rapidamente qualunque cosa sia contenuta nel bus e gli eventi scritti in precedenza rimangono leggibili indipendentemente dallo stato della vecchia chiave. Una volta DescribeEventBus visualizzato il bus ACTIVE con la nuova chiave, è possibile disattivare la vecchia chiave.

Se EventBridge non è possibile utilizzare la nuova chiave, il bus si assesta UPDATE_FAILED e continua a funzionare con la chiave precedente: accetta e fornisce comunque gli eventi e DescribeEventBus continua a segnalare la vecchia chiave. La chiave guasta non diventa mai la chiave del bus. Chiama UpdateEventBus nuovamente con una chiave utilizzabile o con la stessa chiave dopo averne corretto la politica e il bus ritorna aACTIVE. Un bus la cui creazione non riesce sulla chiave viene assegnato CREATE_FAILED un StateReason nome alla AWS KMS negazione; tale stato accetta solo DeleteEventBus e UpdateEventBus viene rifiutato con un messaggio che nomina gli stati accettati. [ACTIVE, UPDATE_FAILED] Correggi la politica della chiave, elimina il bus e crealo di nuovo. Per gli stati, vedereStati degli autobus e cosa ciascuno consente.

Se abiliti la rotazione automatica dei tasti sulla chiave, AWS KMS ruota il materiale di supporto dietro la stessa chiave ARN. La chiave di ramo rimane avvolta dal materiale che l'ha avvolta per ultima e la versione successiva della chiave di ramo, creata circa ogni 30 giorni, utilizza il materiale corrente. Quindi una AWS KMS rotazione raggiunge il tuo autobus entro circa un mese.

Quando la chiave diventa inutilizzabile

Se disabiliti la chiave, ne pianifichi l'eliminazione o ne rimuovi EventBridge l'accesso, il bus continua a funzionare fino alla scadenza della chiave di filiale memorizzata nella cache, entro 15 minuti. Quindi la pubblicazione sul bus non riesce con un errore di AWS KMS accesso e la consegna si interrompe. EventBridge non elimina gli eventi che ha già accettato e non li invia a code con lettera morta; li conserva e li riprova, perché un errore di accesso alla chiave è una condizione che può essere risolta. Quando ripristini l'accesso, la pubblicazione e la consegna riprendono automaticamente. Nessun evento viene perso a meno che l'interruzione non duri oltre il periodo di conservazione dell'autobus.

L'eliminazione della chiave è permanente. Dopo aver AWS KMS eliminato la chiave configurata su un bus, non è più EventBridge possibile estrarre la chiave secondaria del bus e ogni evento ancora memorizzato sul bus è illeggibile per il resto del periodo di conservazione. Disabilita prima la chiave, conferma l'effetto e solo dopo pianifica l'eliminazione; vedi AWS KMS Eliminazione delle chiavi nella Guida per gli sviluppatori. AWS KMS DeleteEventBusnon ha bisogno della chiave: ha successo quando la chiave viene disabilitata o eliminata.

Monitoraggio dell'uso della chiave in CloudTrail

Ogni richiesta EventBridge effettuata alla chiave gestita dal cliente viene registrata in CloudTrail; vedi Registrazione delle chiamate AWS KMS API con CloudTrail. La tabella seguente elenca gli eventi da aspettarsi.

eventName Quando Identità chiamante
DescribeKey Convalida delle chiavi durante la creazione e l'aggiornamento del bus Il tuo preside, tramite EventBridge
Decrypt,Encrypt,GenerateDataKeyWithoutPlaintext, ReEncrypt (corsa a secco) Controlli di accesso sulla creazione e l'aggiornamento del bus, sulla pubblicazione e sulla creazione e aggiornamento degli abbonati Il tuo preside, tramite EventBridge
GenerateDataKeyWithoutPlaintext, ReEncrypt Creazione delle chiavi di filiale alla creazione del bus e rotazione delle chiavi di filiale ogni 30 giorni circa events.amazonaws.com
Decrypt Apertura della chiave di filiale alla scadenza della cache: invio dell'evento, caricamento della configurazione dell'abbonato, descrizione delle chiamate events.amazonaws.com
Decrypt e Encrypt La chiave Branch viene ripristinata quando viene modificata la chiave UpdateEventBus events.amazonaws.com

CloudTrail registra una ReEncrypt chiamata come un evento; entrambe kms:ReEncryptFrom le kms:ReEncryptTo autorizzazioni la autorizzano. Una voce in esecuzione a secco che mostra DryRunOperationException è un controllo di accesso superato, non un errore nella configurazione; una voce che mostra AccessDeniedException significa che il chiamante non ha l'autorizzazione da controllare. L'requestParameters.encryptionContextARN di ogni ingresso è incluso nel aws:events:event-busv2:arn bus. Le voci chiave della filiale contengono anche i campi del portachiavi gerarchico: branch-key-id (l'ARN del bus),,type, create-time e. tablename hierarchy-version kms-arn Per-event la crittografia e la decrittografia utilizzano chiavi di dati derivate localmente dalla chiave di branch memorizzata nella cache, in modo che i singoli eventi non vengano visualizzati. CloudTrail

Crittografia dei dati in transito

Tutte le chiamate API Custom Event Bus vanno a un endpoint HTTPS e ogni richiesta deve essere firmata con le tue credenziali. eventsv2.region.amazonaws.com Un endpoint FIPS è disponibile dove eventsv2-fips.region.amazonaws.com ne hai bisogno. Per la protezione EventBridge dei dati in generale, vedere. EventBridge Sicurezza Amazon