

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
<a name="eb-custom-bus-encryption"></a>

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 esempio`aws 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](#eb-custom-bus-encryption-key-policy) alla policy della chiave.

## Scelta della chiave che crittografa un bus
<a name="eb-custom-bus-encryption-at-rest"></a>

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 `DescribeEventBus`restituisce no `EncryptionConfiguration` per un autobus del genere. Per ulteriori informazioni, consulta la pagina [chiavi di proprietàAWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk) 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 (vedi[In che modo l'autobus utilizza la tua chiave](#eb-custom-bus-encryption-branch-key)), 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](https://aws.amazon.com/kms/pricing/).

`KmsKeyIdentifier`accetta 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_DEFAULT`utilizzo della chiave`ENCRYPT_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
<a name="eb-custom-bus-encryption-branch-key"></a>

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[. ](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/use-hierarchical-keyring.html) 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
<a name="eb-custom-bus-encryption-key-policy"></a>

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

`AllowKeyValidationThroughEventBridge`consente 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. `DescribeKey`non richiede alcun contesto di crittografia, quindi questa dichiarazione non ne ha; la `kms:ViaService` limita alle richieste che arrivano. EventBridge

`AllowKeyUseThroughEventBridge`autorizza 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](https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html) *AWS KMS * Ogni operazione verifica le azioni eseguite dal lavoro successivo:
+ `CreateEventBus`con una chiave gestita dal cliente controlla`kms:GenerateDataKeyWithoutPlaintext`, `kms:ReEncryptFrom` `kms:ReEncryptTo``kms:Decrypt`, e le azioni eseguite dalla creazione di una chiave ramificata e dalle successive letture.
+ `UpdateEventBus`che modifica i controlli chiave `kms:Decrypt` sulla chiave corrente `kms:Encrypt` e `kms:Decrypt` sulla nuova chiave.
+ `PutEvents`e `PutRawEvents` su un autobus con un controllo delle chiavi gestito dal cliente`kms: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'`AccessDeniedException`assegnazione dei nomi. `KMS_ACCESS_DENIED`
+ `CreateSubscriber`e `UpdateSubscriber` controlla`kms: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.

`AllowEventBridgeServicePrincipal`autorizza il lavoro svolto EventBridge come servizio dopo il completamento della chiamata. `kms:GenerateDataKeyWithoutPlaintext``kms:ReEncryptFrom`, e `kms:ReEncryptTo` crea la chiave di diramazione del bus e le sue nuove versioni a rotazione. `kms:Decrypt`decomprime la chiave di ramo per fornire eventi, caricare la configurazione dell'abbonato e restituire la configurazione decrittografata nelle chiamate di descrizione. `kms:Decrypt`with `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
<a name="eb-custom-bus-encryption-scope"></a>

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` con`events.{{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
<a name="eb-custom-bus-encryption-change"></a>

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 a`ACTIVE`. 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, vedere[Stati degli autobus e cosa ciascuno consente](eb-custom-bus-create.md#eb-custom-bus-lifecycle-states).

Se abiliti la rotazione [ automatica dei tasti ](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html) 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
<a name="eb-custom-bus-encryption-key-unusable"></a>

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. ](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html) *AWS KMS * `DeleteEventBus`non ha bisogno della chiave: ha successo quando la chiave viene disabilitata o eliminata.

## Monitoraggio dell'uso della chiave in CloudTrail
<a name="eb-custom-bus-encryption-cloudtrail"></a>

Ogni richiesta EventBridge effettuata alla chiave gestita dal cliente viene registrata in CloudTrail; vedi [ Registrazione delle chiamate AWS KMS API con CloudTrail](https://docs.aws.amazon.com/kms/latest/developerguide/logging-using-cloudtrail.html). 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.encryptionContext`ARN 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
<a name="eb-custom-bus-encryption-transit"></a>

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](eb-security.md)