

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Chiffrement des événements sur un bus d'événements personnalisé
<a name="eb-custom-bus-encryption"></a>

Un bus chiffre tout ce qu'il stocke : les charges utiles des événements, les métadonnées des événements, les filtres d'abonnés et la configuration de la cible des abonnés. Par défaut, il utilise une clé AWS propriétaire et vous ne configurez rien. Pour crypter un bus avec votre propre AWS KMS clé, définissez le `EncryptionConfiguration.KmsKeyIdentifier` moment où vous créez ou mettez à jour le bus, par exemple`aws eventsv2 create-event-bus --name orders --encryption-configuration KmsKeyIdentifier=arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`, et ajoutez les trois instructions [Rédaction de la politique clé](#eb-custom-bus-encryption-key-policy) à la politique de clé.

## Choix de la clé qui chiffre un bus
<a name="eb-custom-bus-encryption-at-rest"></a>

Omet `EncryptionConfiguration` et EventBridge chiffre le bus avec un AES 256 bits sous une clé propre. AWS Vous ne pouvez ni consulter ni gérer cette clé, son utilisation n'apparaît pas dans vos CloudTrail journaux, elle ne coûte rien, elle n'est pas prise en compte dans vos AWS KMS quotas et elle fait l'objet d'une AWS rotation mensuelle. `DescribeEventBus`renvoie non `EncryptionConfiguration` pour un tel bus. Pour plus d’informations, consultez [Clés détenues par AWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk) dans le *Guide du développeur AWS KMS *.

Configurez `EncryptionConfiguration.KmsKeyIdentifier` et EventBridge chiffrez le bus à l'aide de la clé gérée par votre client. Vous contrôlez ensuite la politique des touches, la rotation, la désactivation et la suppression, et vous pouvez voir toutes les utilisations de la clé. CloudTrail La clé entraîne des frais de clé AWS KMS mensuels et des frais de demande. Comme il EventBridge chiffre et déchiffre les événements localement à l'aide d'une clé de branche mise en cache (voir[Comment le bus utilise votre clé](#eb-custom-bus-encryption-branch-key)), il effectue quelques AWS KMS requêtes par bus et par fenêtre de cache, plus la rotation ; le nombre de demandes n'augmente pas avec le volume de vos événements. Pour en savoir plus, consultez [Pricing AWS KMS](https://aws.amazon.com/kms/pricing/) (Tarification).

`KmsKeyIdentifier`accepte un ID de clé, un ARN de clé, un nom d'alias tel que`alias/orders`, ou un alias ARN. EventBridge qualifie un identifiant de clé simple ou un nom d'alias dans votre compte et votre région, de sorte qu'une clé d'un autre compte doit être nommée par son ARN de clé complète. Un alias est résolu avec sa clé lorsque vous créez ou mettez à jour le bus, et les réponses de création et de description renvoient l'ARN de cette clé. Re-pointing l'alias later ne modifie pas la clé utilisée par un bus. La clé doit être une clé de chiffrement symétrique (`SYMMETRIC_DEFAULT`utilisation de la clé`ENCRYPT_DECRYPT`) ; EventBridge rejette les clés asymétriques et HMAC. Une clé multirégion fonctionne comme une clé ordinaire : nommez la réplique dans la région du bus, car elle ne EventBridge reproduit ni vos données ni votre matériel clé d'une région à l'autre. Les clés contenant du matériel clé importé et les clés stockées dans un magasin de clés externe sont prises en charge.

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

Votre clé chiffre les charges utiles et les métadonnées des événements que le bus conserve, les copies conservées pour chaque abonné lors de la diffusion, ainsi que les filtres d'abonnés et la configuration de la cible. Quatre éléments ne sont pas chiffrés avec votre clé, car elle en EventBridge a besoin pour acheminer et rechercher des événements : le nom du bus, l'ARN et l'identifiant du compte ; l'identifiant du groupe d'événements qui commande la livraison FIFO, donc n'y insérez pas de données sensibles ; l'ID de déduplication, qui est stocké sous forme de hachage unidirectionnel ; et EventBridge les résultats des correspondances internes et les numéros de séquence. Les services de stockage chiffrent les données au repos avec leurs propres clés.

## Comment le bus utilise votre clé
<a name="eb-custom-bus-encryption-branch-key"></a>

Lorsque vous configurez une clé gérée par le client, vous EventBridge créez une clé de * branche * pour le bus : une clé intermédiaire, stockée dans une table gérée par les services et encapsulée par votre AWS KMS clé, conformément au trousseau de clés hiérarchique du SDK AWS [ Encryption. ](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/use-hierarchical-keyring.html) EventBridge dérive une clé de données à partir de la clé de branche pour chaque événement, de sorte qu'il chiffre et déchiffre les événements localement sans appel par événement. AWS KMS 
+ Lorsque vous publiez un événement, le EventBridge chiffre sous la clé de branche du bus avant de l'enregistrer dans le stockage.
+ Lors EventBridge de la diffusion d'un événement, il le déchiffre pour évaluer les filtres et le diffuser. La cible reçoit l'événement déchiffré ; le chiffrement de la cible relève de la responsabilité du service cible.
+ EventBridge met en cache la clé de branche en mémoire pendant 15 minutes maximum. Lorsque le cache expire, il fait appel `kms:Decrypt` à votre clé pour déballer à nouveau la clé de branche.
+ EventBridge crée une nouvelle version de clé de branche environ tous les 30 jours et conserve les anciennes versions, de sorte que les événements écrits précédemment restent lisibles pendant la période de conservation du bus.

EventBridge atteint votre clé par deux voies, et la politique clé doit autoriser les deux. Pour les vérifications qu'il exécute pendant que votre appel d'API est en cours, il utilise vos informations d'identification, transférées depuis l'appel. Pour les tâches qu'il effectue après le retour de l'appel, telles que la diffusion des événements et la gestion de la clé de succursale, il agit en tant que `events.amazonaws.com` responsable du service, car vos informations d'identification ne sont plus disponibles.

## Rédaction de la politique clé
<a name="eb-custom-bus-encryption-key-policy"></a>

Ajoutez trois instructions à la politique de clé : une qui permet à vos responsables de valider la clé, une qui leur permet de réussir les contrôles d'accès EventBridge avec leurs informations d'identification et une pour le principal de `events.amazonaws.com` service. Chaque AWS KMS demande EventBridge fait qu'un bus transporte la clé de contexte de chiffrement `aws:events:event-busv2:arn` avec l'ARN du bus, sur les deux chemins d'accès, de sorte que les deuxième et troisième instructions sont limitées à un bus. Un ARN de bus se termine par un suffixe qui est EventBridge généré lors de sa création, alors `StringLike` associez-le à une fin. `/*` Conservez également vos propres relevés administratifs clés dans la politique. Remplacez le compte, la région, le rôle et le nom du bus dans l'exemple suivant.

```
{
    "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`permet à vos administrateurs de valider la clé lorsqu'ils créent ou mettent à jour un bus. EventBridge appelle `kms:DescribeKey` avec vos informations d'identification pour confirmer que la clé existe, qu'elle est symétrique et qu'elle est activée. `DescribeKey`ne prend aucun contexte de chiffrement, donc cette instruction n'en a aucun ; elle la `kms:ViaService` limite aux requêtes qui arrivent EventBridge.

`AllowKeyUseThroughEventBridge`autorise les contrôles d'accès exécutés avec vos informations d'identification avant qu' EventBridge il n'accepte une configuration de clé et avant qu'il n'écrive ou ne lise des données cryptées pour vous, de sorte que vous ne puissiez pas configurer une clé que le travail asynchrone ultérieur du service ne pourra pas utiliser. Les contrôles sont aléatoires AWS KMS  : ils autorisent mais ne chiffrent rien et ne déchiffrent rien. Elles sont facturées comme des AWS KMS demandes standard et sont prises en compte dans vos quotas de AWS KMS demandes ; voir [ Tester vos autorisations ](https://docs.aws.amazon.com/kms/latest/developerguide/testing-permissions.html) dans le Guide * du *AWS KMS développeur. Chaque opération vérifie les actions que son travail ultérieur effectue :
+ `CreateEventBus`avec une clé gérée par le client qui vérifie`kms:GenerateDataKeyWithoutPlaintext`, `kms:ReEncryptFrom` `kms:ReEncryptTo``kms:Decrypt`, et les actions effectuées lors de la création d'une clé de branche et de sa lecture ultérieure.
+ `UpdateEventBus`qui modifie les vérifications de touches `kms:Decrypt` sur la clé actuelle `kms:Encrypt` et `kms:Decrypt` sur la nouvelle clé.
+ `PutEvents`et `PutRawEvents` dans un bus avec un système de contrôle des clés géré par le client`kms:Decrypt`. Un producteur qui ne peut pas relire les événements du bus ne peut pas non plus les écrire. Sans cela, l'appel de publication échoue avec la `AccessDeniedException` dénomination`KMS_ACCESS_DENIED`.
+ `CreateSubscriber`et `UpdateSubscriber` vérifiez`kms:Decrypt`, car la configuration de l'abonné est cryptée sous la clé de bus.

Cette déclaration doit donc couvrir tous les rôles qui créent ou mettent à jour le bus, y publient ou y créent des abonnés. `Principal` Répertoriez les ARN des rôles ou nommez le principal racine du compte pour déléguer la décision aux politiques IAM de votre compte.

`AllowEventBridgeServicePrincipal`autorise l'exécution du travail EventBridge en tant que service une fois votre appel terminé. `kms:GenerateDataKeyWithoutPlaintext``kms:ReEncryptFrom`, et `kms:ReEncryptTo` créez la clé de branche du bus et ses nouvelles versions lors de la rotation. `kms:Decrypt`décapsule la clé de branche pour transmettre des événements, charger la configuration des abonnés et renvoyer une configuration déchiffrée lors des appels de description. `kms:Decrypt`avec `kms:Encrypt` réenroule la clé de branche lorsque vous changez la clé du bus.

La clé peut se trouver sur un autre compte, par exemple un compte de sécurité central. Insérez les trois instructions dans la politique de cette clé, en indiquant les rôles du compte de bus en tant que principal des deux premiers et l'ARN de bus du compte de bus dans les valeurs du contexte de chiffrement. Les rôles du compte de bus nécessitent également des politiques d'identité IAM qui autorisent les mêmes AWS KMS actions sur l'ARN clé, car l' AWS KMS accès entre comptes nécessite une autorisation des deux côtés. Nommez la clé par son ARN complet.

## Définition de la politique clé pour un seul bus
<a name="eb-custom-bus-encryption-scope"></a>

Pour limiter une instruction à un seul bus, activez-la`kms:EncryptionContext:aws:events:event-busv2:arn`. Avant que le bus n'existe, `StringLike` utilisez-le avec une traînée`/*`, comme indiqué dans la politique précédente. Pour un bus existant, vous pouvez faire correspondre l'ARN exact avec lequel il est `DescribeEventBus` renvoyé`StringEquals`. Chaque demande faite à l'aide de vos informations d'identification est également `kms:ViaService` renseignée`events.{{region}}.amazonaws.com`, de sorte que vous pouvez restreindre l'utilisation de la clé par EventBridge vos mandants uniquement.

Les requêtes effectuées EventBridge en tant que principal de service sont `aws:SourceArn` acheminées avec l'ARN du bus et `aws:SourceAccount` avec le compte du bus. Ajoutez-les pour `AllowEventBridgeServicePrincipal` que EventBridge vous puissiez utiliser votre clé uniquement pour vos propres bus.

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

Les opérations de publication et de diffusion individuelles utilisent la clé de branche mise en cache et ne revérifient pas la politique de clé par événement. Un changement de politique clé, y compris un changement qui supprime EventBridge l'accès, prend effet sur le traitement des données d'un bus lorsque la clé de branche mise en cache expire, dans les 15 minutes.

## Changer ou retirer la clé d'un bus
<a name="eb-custom-bus-encryption-change"></a>

Appelez `UpdateEventBus` pour déplacer un bus de la clé AWS détenue à une clé gérée par le client, d'une clé gérée par le client à une autre ou pour revenir à la clé AWS détenue. Pour revenir à la clé AWS possédée, envoyez `EncryptionConfiguration` present et empty, as`--encryption-configuration '{}'`. Si vous l'omettez `EncryptionConfiguration` complètement, le bus conserve sa clé actuelle.

Le bus entre `UPDATING` alors qu'il EventBridge réenroule la clé de branche sous la nouvelle clé, puis revient à. `ACTIVE` La clé de branche elle-même ne change pas, donc ne EventBridge recrase aucun événement stocké, la modification s'effectue rapidement quel que soit le contenu du bus et les événements précédemment écrits restent lisibles quel que soit l'état de l'ancienne clé. Une fois que `DescribeEventBus` le bus `ACTIVE` avec la nouvelle clé est affiché, vous pouvez désactiver l'ancienne clé.

S'il EventBridge ne peut pas utiliser la nouvelle clé, le bus s'installe `UPDATE_FAILED` et continue à fonctionner avec sa clé précédente : il accepte et transmet toujours les événements, et `DescribeEventBus` continue de signaler l'ancienne clé. La clé défaillante ne devient jamais la clé de bus. Appelez `UpdateEventBus` à nouveau avec une clé utilisable, ou la même clé après avoir défini sa politique, et le bus repart`ACTIVE`. Un bus dont la création échoue sur la clé s'installe en `CREATE_FAILED` `StateReason` nommant le AWS KMS refus ; cet état n'accepte que`DeleteEventBus`, et `UpdateEventBus` est rejeté avec un message indiquant les états qu'il accepte,`[ACTIVE, UPDATE_FAILED]`. Corrigez la politique clé, supprimez le bus, puis créez-le à nouveau. Pour les États-Unis, voir[Les états des bus et ce que chacun autorise](eb-custom-bus-create.md#eb-custom-bus-lifecycle-states).

Si vous activez la rotation [ automatique des touches ](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html) sur votre clé, le support AWS KMS fait pivoter le support derrière le même ARN de clé. La clé de branche reste encapsulée par le matériau qui l'a encapsulée en dernier, et la version de clé de branche suivante, créée environ tous les 30 jours, utilise le matériau actuel. Ainsi, une AWS KMS rotation atteint votre bus dans un délai d'environ un mois.

## Quand la clé devient inutilisable
<a name="eb-custom-bus-encryption-key-unusable"></a>

Si vous désactivez la clé, planifiez sa suppression ou supprimez l'accès à celle-ci, le bus continue EventBridge de fonctionner jusqu'à ce que la clé de branche mise en cache expire, dans les 15 minutes. La publication sur le bus échoue alors en raison d'une erreur d' AWS KMS accès, et la livraison est interrompue. EventBridge ne supprime pas les événements qu'il a déjà acceptés et ne les envoie pas dans des files d'attente réservées aux lettres mortes ; il les met en attente et les réessaie, car un échec d'accès à une clé est une condition que vous pouvez corriger. Lorsque vous rétablissez l'accès, la publication et la diffusion reprennent d'elles-mêmes. Aucun événement n'est perdu à moins que la panne ne dure plus longtemps que la période de rétention du bus.

La suppression de la clé est définitive. Après avoir AWS KMS supprimé la clé configurée sur un bus, il n'est plus EventBridge possible de déballer la clé de branche du bus et chaque événement encore stocké sur le bus est illisible pendant le reste de sa période de conservation. Désactivez d'abord la touche, confirmez l'effet, puis planifiez la suppression ; voir [ Suppression de AWS KMS clés ](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html) dans le Guide du *AWS KMS développeur*. `DeleteEventBus`n'a pas besoin de la clé : elle réussit lorsque la clé est désactivée ou supprimée.

## Surveillance de l'utilisation des clés dans CloudTrail
<a name="eb-custom-bus-encryption-cloudtrail"></a>

Chaque demande adressée EventBridge à la clé gérée de votre client est enregistrée dans CloudTrail ; voir [ Journalisation des appels AWS KMS d'API avec CloudTrail](https://docs.aws.amazon.com/kms/latest/developerguide/logging-using-cloudtrail.html). Le tableau suivant répertorie les événements à prévoir.


| `eventName` | Lorsque | Identité de l'appel | 
| --- | --- | --- | 
| DescribeKey | Validation des clés lors de la création et de la mise à jour | Votre directeur, par l'intermédiaire de EventBridge | 
| Decrypt, EncryptGenerateDataKeyWithoutPlaintext, ReEncrypt (fonctionnement à sec) | Vérifications d'accès lors de la création et de la mise à jour du bus, de la publication et de la création et de la mise à jour des | Votre directeur, par l'intermédiaire de EventBridge | 
| GenerateDataKeyWithoutPlaintext, ReEncrypt | Création de la clé de branche lors de la création du bus et rotation de la clé de branche environ tous les 30 jours | events.amazonaws.com | 
| Decrypt | Déballage de la clé de branche à l'expiration du cache : diffusion de l'événement, chargement de la configuration de l'abonné, description des appels | events.amazonaws.com | 
| Decrypt et Encrypt | Réencapsulation de la clé de branche en cas de UpdateEventBus changement de clé | events.amazonaws.com | 

CloudTrail enregistre un `ReEncrypt` appel comme un seul événement ; les `kms:ReEncryptTo` autorisations `kms:ReEncryptFrom` et les deux l'autorisent. Une entrée exécutée à sec qui indique qu'il s'`DryRunOperationException`agit d'un contrôle d'accès réussi, et non d'un défaut de configuration ; une entrée qui s'affiche `AccessDeniedException` signifie que l'appelant n'a pas l'autorisation requise. Le `requestParameters.encryptionContext` de chaque entrée est inclus dans `aws:events:event-busv2:arn` l'ARN de votre bus. Les entrées de clé de branche contiennent également les champs du trousseau de clés hiérarchique : `branch-key-id` (l'ARN du bus) `type``create-time`,`tablename`,`hierarchy-version`, et`kms-arn`. Per-event le chiffrement et le déchiffrement utilisent des clés de données dérivées localement de la clé de branche mise en cache, de sorte que les événements individuels n'apparaissent pas dans. CloudTrail

## Chiffrement en transit
<a name="eb-custom-bus-encryption-transit"></a>

Tous les appels d'API Custom Event Bus sont adressés à un point de terminaison HTTPS`eventsv2.{{region}}.amazonaws.com`, et chaque demande doit être signée avec vos informations d'identification. Un point de terminaison FIPS est disponible là où vous en avez besoin. `eventsv2-fips.{{region}}.amazonaws.com` Pour la protection des EventBridge données en général, voir[EventBridge Sécurité Amazon](eb-security.md).