

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 au repos : comment utiliser les clés gérées par le client pour chiffrer des tables dans Amazon Keyspaces
<a name="encryption.customermanaged"></a>

Vous pouvez utiliser la console ou les instructions CQL AWS KMS key pour spécifier les nouvelles tables et mettre à jour les clés de chiffrement des tables existantes dans Amazon Keyspaces. La rubrique suivante explique comment implémenter des clés gérées par le client pour les tables nouvelles et existantes. 

**Topics**
+ [Conditions préalables : créer une clé gérée par le client en utilisant AWS KMS et octroyer des autorisations à Amazon Keyspaces](#encryption.createCMKMS)
+ [Étape 3 : Spécifier une clé gérée par le client pour une nouvelle table](#encryption.tutorial-creating)
+ [Étape 4 : Mettre à jour la clé de chiffrement d'une table existante](#encryption.tutorial-update)
+ [Étape 5 : Utiliser le contexte de chiffrement Amazon Keyspaces dans les journaux](#encryption-context)
+ [Étape 6 : Configuration de la surveillance avec AWS CloudTrail](#encryption-cmk-trail)

## Conditions préalables : créer une clé gérée par le client en utilisant AWS KMS et octroyer des autorisations à Amazon Keyspaces
<a name="encryption.createCMKMS"></a>

Avant de protéger une table Amazon Keyspaces avec une [clé gérée par le client](encryption.howitworks.md#customer-managed), vous devez d'abord créer la clé dans AWS Key Management Service (AWS KMS), puis autoriser Amazon Keyspaces à utiliser cette clé.

### Étape 1 : Créez une clé gérée par le client à l'aide de AWS KMS
<a name="encryption-create-key"></a>

Pour créer une clé gérée par le client à utiliser pour protéger une table Amazon Keyspaces, vous pouvez suivre les étapes décrites dans [Création de clés KMS de chiffrement symétriques](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) à l'aide de la console ou de l'API. AWS 

### Étape 2 : Autoriser l'utilisation de votre clé gérée par le client
<a name="encryption-authz"></a>

Avant de pouvoir choisir une [clé gérée par le client](encryption.howitworks.md#customer-managed) pour protéger une table Amazon Keyspaces, les politiques relatives à cette clé gérée par le client doivent autoriser Amazon Keyspaces à l'utiliser en votre nom. Vous avez un contrôle total sur les politiques et les autorisations relatives à la clé gérée par le client. Vous pouvez fournir ces autorisations dans une [politique de clé](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html), une [politique IAM](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html) ou un [octroi](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html).

Amazon Keyspaces n'a pas besoin d'autorisation supplémentaire pour utiliser la valeur par défaut [Clé détenue par AWS](encryption.howitworks.md#keyspaces-owned)afin de protéger les tables Amazon Keyspaces de votre compte. AWS 

Les rubriques suivantes expliquent comment configurer les autorisations requises à l'aide de politiques et d'autorisations IAM qui autorisent les tables Amazon Keyspaces à utiliser une clé gérée par le client.

**Topics**
+ [Politique clé concernant les clés gérées par le client](#encryption-customer-managed-policy)
+ [Exemple de politique de clé](#encryption-customer-managed-policy-sample)
+ [Utiliser des subventions pour autoriser Amazon Keyspaces](#encryption-grants)

#### Politique clé concernant les clés gérées par le client
<a name="encryption-customer-managed-policy"></a>

Lorsque vous sélectionnez une [clé gérée par le client](encryption.howitworks.md#customer-managed) pour protéger une table Amazon Keyspaces, Amazon Keyspaces obtient l'autorisation d'utiliser la clé gérée par le client au nom du principal qui effectue la sélection. Ce principal, qu'il s'agisse d'un utilisateur ou d'un rôle, doit disposer des autorisations requises par Amazon Keyspaces sur la clé gérée par le client. 

Amazon Keyspaces requiert au minimum les autorisations suivantes sur une clé gérée par le client :
+ [kms:Encrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html)
+ [kms:Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)
+ [kms : ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html) \$1 (pour kms: ReEncryptFrom et kms:ReEncryptTo)
+ kms : GenerateDataKey \$1 (pour [kms : GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) et [kms : GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html))
+ [km : DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)
+ [km : CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)

#### Exemple de politique de clé
<a name="encryption-customer-managed-policy-sample"></a>

Par exemple, l’exemple de stratégie de clé suivant fournit uniquement les autorisations requises. La politique a les effets suivants :
+ Permet à Amazon Keyspaces d'utiliser la clé gérée par le client dans le cadre d'opérations cryptographiques et de créer des subventions, mais uniquement lorsqu'elle agit pour le compte des responsables du compte autorisés à utiliser Amazon Keyspaces. Si les principaux responsables spécifiés dans la déclaration de politique ne sont pas autorisés à utiliser Amazon Keyspaces, l'appel échoue, même s'il provient du service Amazon Keyspaces. 
+ La clé de ViaService condition [kms :](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-via-service) autorise les autorisations uniquement lorsque la demande provient d'Amazon Keyspaces au nom des principaux acteurs répertoriés dans la déclaration de politique. Ces principals ne peuvent pas appeler ces opérations directement. Notez que la commande valeur `kms:ViaService`, `cassandra.*.amazonaws.com`, possède un astérisque (\$1) dans la position Région. Amazon Keyspaces a besoin d'une autorisation pour être indépendant de tout particulier. Région AWS
+ Permet aux administrateurs de clés gérés par le client (utilisateurs qui peuvent assumer le `db-team` rôle) d'accéder en lecture seule à la clé gérée par le client et de révoquer les autorisations, y compris celles [dont Amazon Keyspaces a besoin](#encryption-grants) pour protéger la table.
+ Permet à Amazon Keyspaces d'accéder en lecture seule à la clé gérée par le client. Dans ce cas, Amazon Keyspaces peut appeler ces opérations directement. Il n'est pas obligé d'agir pour le compte du principal d'un compte.

Avant d'utiliser un exemple de politique clé, remplacez les exemples de principes par des principes réels provenant de votre. Compte AWS

```
{
  "Id": "key-policy-cassandra",
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid" : "Allow access through Amazon Keyspaces for all principals in the account that are authorized to use Amazon Keyspaces",
      "Effect": "Allow",
      "Principal": {"AWS": "arn:aws:iam::111122223333:user/db-lead"},
      "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:DescribeKey",
        "kms:CreateGrant"
      ],
      "Resource": "*",      
      "Condition": { 
         "StringLike": {
           "kms:ViaService" : "cassandra.*.amazonaws.com"
         }
      }
    },
    {
      "Sid":  "Allow administrators to view the customer managed key and revoke grants",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/db-team"
       },
      "Action": [
        "kms:Describe*",
        "kms:Get*",
        "kms:List*",
        "kms:RevokeGrant"
      ],
      "Resource": "*"
    }
  ]
}
```

#### Utiliser des subventions pour autoriser Amazon Keyspaces
<a name="encryption-grants"></a>

Outre les politiques clés, Amazon Keyspaces utilise des autorisations pour définir des autorisations sur une clé gérée par le client. Pour visualiser les octrois sur une clé gérée par le client dans votre compte, utilisez l'opération [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html). Amazon Keyspaces n'a pas besoin de subventions, ni d'autorisations supplémentaires, pour utiliser le [Clé détenue par AWS](encryption.howitworks.md#keyspaces-owned)afin de protéger votre table.

Amazon Keyspaces utilise les autorisations d'octroi lorsqu'il effectue des tâches de maintenance du système en arrière-plan et de protection continue des données. Il utilise également des octrois pour générer les clés de table.

Chaque octroi est spécifique à une table. Si le compte inclut plusieurs tables chiffrées sous la même clé gérée par le client, chaque type de table est attribué à chaque table. La subvention est limitée par le contexte de [chiffrement Amazon Keyspaces](https://docs.aws.amazon.com/kms/latest/developerguide/encryption-context.html), qui inclut le nom de la table et Compte AWS l'ID. La subvention inclut l'autorisation de [retirer la subvention](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html) si elle n'est plus nécessaire. 

Pour créer les subventions, Amazon Keyspaces doit être autorisé à appeler `CreateGrant` au nom de l'utilisateur qui a créé la table cryptée.

La politique de clé peut également permettre au compte de [révoquer l'octroi](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html) sur la clé gérée par le client. Toutefois, si vous révoquez l'autorisation sur une table cryptée active, Amazon Keyspaces ne sera pas en mesure de protéger et de gérer la table.

## Étape 3 : Spécifier une clé gérée par le client pour une nouvelle table
<a name="encryption.tutorial-creating"></a>

Suivez ces étapes pour spécifier la clé gérée par le client sur une nouvelle table à l'aide de la console Amazon Keyspaces ou du CQL.

### Création d'une table chiffrée à l'aide d'une clé gérée par le client (console)
<a name="encryption.tutorial-console"></a>

1. [Connectez-vous à la AWS Management Console console Amazon Keyspaces et ouvrez-la chez https://console.aws.amazon.com/keyspaces/ vous.](https://console.aws.amazon.com/keyspaces/home)

1. Dans le panneau de navigation, choisissez **Tables**, puis **Create table (Créer une table)**.

1. Sur la page **Créer une table**, dans la section **Détails de la table**, sélectionnez un espace de touche et attribuez un nom à la nouvelle table.

1. Dans la section **Schéma**, créez le schéma de votre table.

1. Dans la section **Paramètres du tableau**, choisissez **Personnaliser les paramètres**.

1. Passez aux **paramètres de chiffrement**.

   Au cours de cette étape, vous devez sélectionner les paramètres de chiffrement de la table. 

   Dans la section **Chiffrement au repos** AWS KMS key, sous **Choisir une** clé KMS, **choisissez l'option Choisir une autre clé KMS (avancée)**, puis dans le champ de recherche, choisissez AWS KMS key ou entrez un nom de ressource Amazon (ARN).
**Note**  
Si la clé que vous avez sélectionnée n'est pas accessible ou ne dispose pas des autorisations requises, consultez la section [Résolution des problèmes d'accès à la clé](https://docs.aws.amazon.com/kms/latest/developerguide/policy-evaluation.html) dans le Guide du AWS Key Management Service développeur.

1. Choisissez **Créer** pour créer la table chiffrée. 

### Création d'une nouvelle table à l'aide d'une clé gérée par le client pour le chiffrement au repos (CQL)
<a name="encryption.tutorial-cql"></a>

Pour créer une nouvelle table qui utilise une clé gérée par le client pour le chiffrement au repos, vous pouvez utiliser l'`CREATE TABLE`instruction comme indiqué dans l'exemple suivant. Assurez-vous de remplacer l'ARN de la clé par un ARN pour une clé valide avec des autorisations accordées à Amazon Keyspaces.

```
CREATE TABLE my_keyspace.my_table(id bigint, name text, place text STATIC, PRIMARY KEY(id, name)) WITH CUSTOM_PROPERTIES = {
        'encryption_specification':{
                'encryption_type': 'CUSTOMER_MANAGED_KMS_KEY', 
                'kms_key_identifier':'arn:aws:kms:eu-west-1:5555555555555:key/11111111-1111-111-1111-111111111111'
            }
    };
```

Si vous recevez un`Invalid Request Exception`, vous devez confirmer que la clé gérée par le client est valide et qu'Amazon Keyspaces dispose des autorisations requises. Pour vérifier que la clé a été correctement configurée, consultez la section [Résolution des problèmes d'accès à la clé](https://docs.aws.amazon.com/kms/latest/developerguide/policy-evaluation.html) dans le Guide du AWS Key Management Service développeur. 

## Étape 4 : Mettre à jour la clé de chiffrement d'une table existante
<a name="encryption.tutorial-update"></a>

Vous pouvez également utiliser la console Amazon Keyspaces ou le CQL pour modifier les clés de chiffrement d'une table existante entre une clé KMS gérée par le client Clé détenue par AWS et une clé KMS gérée par le client à tout moment.

### Mettre à jour une table existante avec la nouvelle clé gérée par le client (console)
<a name="encryption.tutorial-update-console"></a>

1. [Connectez-vous à la AWS Management Console console Amazon Keyspaces et ouvrez-la chez https://console.aws.amazon.com/keyspaces/ vous.](https://console.aws.amazon.com/keyspaces/home)

1.  Dans le volet de navigation, choisissez **Tables**.

1. Choisissez le tableau que vous souhaitez mettre à jour, puis cliquez sur l'onglet **Paramètres supplémentaires**.

1. Dans la section **Chiffrement au repos**, choisissez **Gérer le chiffrement** pour modifier les paramètres de chiffrement de la table.

   Sous **Choisir une AWS KMS key**, choisissez l'option **Choisir une autre clé KMS (avancée)**, puis dans le champ de recherche, choisissez une AWS KMS key ou entrez un Amazon Resource Name (ARN).
**Note**  
Si la clé que vous avez sélectionnée n'est pas valide, consultez la section [Résolution des problèmes d'accès aux clés](https://docs.aws.amazon.com/kms/latest/developerguide/policy-evaluation.html) dans le Guide du AWS Key Management Service développeur.

   Vous pouvez également choisir un Clé détenue par AWS pour une table chiffrée à l'aide d'une clé gérée par le client.

1. Choisissez **Enregistrer les modifications** pour enregistrer les modifications apportées au tableau. 

### Mettre à jour la clé de chiffrement utilisée pour une table existante
<a name="encryption.tutorial-update-cql"></a>

Pour modifier la clé de chiffrement d'une table existante, vous devez utiliser l'`ALTER TABLE`instruction pour spécifier une clé gérée par le client pour le chiffrement au repos. Assurez-vous de remplacer l'ARN de la clé par un ARN pour une clé valide avec des autorisations accordées à Amazon Keyspaces.

```
ALTER TABLE my_keyspace.my_table WITH CUSTOM_PROPERTIES = {     
              'encryption_specification':{ 
                      'encryption_type': 'CUSTOMER_MANAGED_KMS_KEY', 
                      'kms_key_identifier':'arn:aws:kms:eu-west-1:5555555555555:key/11111111-1111-111-1111-111111111111'     
                  } 
         };
```

Si vous recevez un`Invalid Request Exception`, vous devez confirmer que la clé gérée par le client est valide et qu'Amazon Keyspaces dispose des autorisations requises. Pour vérifier que la clé a été correctement configurée, consultez la section [Résolution des problèmes d'accès à la clé](https://docs.aws.amazon.com/kms/latest/developerguide/policy-evaluation.html) dans le Guide du AWS Key Management Service développeur. 

Pour rétablir l'option de chiffrement par défaut de la clé de chiffrement au repos avec Clés détenues par AWS, vous pouvez utiliser l'`ALTER TABLE`instruction comme indiqué dans l'exemple suivant.

```
ALTER TABLE my_keyspace.my_table WITH CUSTOM_PROPERTIES = {
                'encryption_specification':{
                      'encryption_type' : 'AWS_OWNED_KMS_KEY' 
                    } 
         };
```

## Étape 5 : Utiliser le contexte de chiffrement Amazon Keyspaces dans les journaux
<a name="encryption-context"></a>

Un [contexte de chiffrement](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html) est un ensemble de paires clé-valeur qui contiennent des données non secrètes arbitraires. Lorsque vous incluez un contexte de chiffrement dans une demande de chiffrement de données, lie AWS KMS cryptographiquement le contexte de chiffrement aux données chiffrées. Pour déchiffrer les données, vous devez transmettre le même contexte de chiffrement. 

Amazon Keyspaces utilise le même contexte de chiffrement dans toutes les opérations AWS KMS cryptographiques. Si vous utilisez une [clé gérée par le client](encryption.howitworks.md#customer-managed) pour protéger votre table Amazon Keyspaces, vous pouvez utiliser le contexte de chiffrement pour identifier l'utilisation de la clé gérée par le client dans les dossiers d'audit et les journaux. Il apparaît également en texte clair dans les journaux, tels que dans logs for [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)et [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html). 

Dans ses demandes adressées à AWS KMS, Amazon Keyspaces utilise un contexte de chiffrement comportant trois paires clé-valeur.

```
"encryptionContextSubset": {
    "aws:cassandra:keyspaceName": "my_keyspace",
    "aws:cassandra:tableName": "mytable"
    "aws:cassandra:subscriberId": "111122223333"
}
```
+ **Keyspace** : la première paire clé-valeur identifie l'espace clé qui inclut la table cryptée par Amazon Keyspaces. La clé est `aws:cassandra:keyspaceName`. La valeur est le nom du keyspace.

  ```
  "aws:cassandra:keyspaceName": "<keyspace-name>"
  ```

  Par exemple :

  ```
  "aws:cassandra:keyspaceName": "my_keyspace"
  ```
+ **Table** — La deuxième paire clé-valeur identifie la table cryptée par Amazon Keyspaces. La clé est `aws:cassandra:tableName`. La valeur correspond au nom de la table.

  ```
  "aws:cassandra:tableName": "<table-name>"
  ```

  Par exemple :

  ```
  "aws:cassandra:tableName": "my_table"
  ```
+ **Compte** — La troisième paire clé-valeur identifie le. Compte AWS La clé est `aws:cassandra:subscriberId`. La valeur correspond à l’ID de compte.

  ```
  "aws:cassandra:subscriberId": "<account-id>"
  ```

  Par exemple :

  ```
  "aws:cassandra:subscriberId": "111122223333"
  ```

## Étape 6 : Configuration de la surveillance avec AWS CloudTrail
<a name="encryption-cmk-trail"></a>

Si vous utilisez une [clé gérée par le client](encryption.howitworks.md#customer-managed) pour protéger vos tables Amazon Keyspaces, vous pouvez utiliser AWS CloudTrail les journaux pour suivre les demandes qu'Amazon Keyspaces envoie en votre nom. AWS KMS 

Les `CreateGrant` demandes `GenerateDataKey``DescribeKey`,`Decrypt`, et sont abordées dans cette section. En outre, Amazon Keyspaces utilise une [RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html)opération pour supprimer une autorisation lorsque vous supprimez une table. 

**Note**  
Lorsque vous travaillez avec Amazon Keyspaces, certaines opérations peuvent générer des CloudTrail événements dont le `invokedBy` champ est égal à. `dynamodb.amazonaws.com` Cela est attendu et se produit car Amazon Keyspaces s'intègre à Amazon DynamoDB pour fournir son service.

**GenerateDataKey**  
Amazon Keyspaces crée une clé de table unique pour chiffrer les données au repos. Il envoie une *[GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)*demande AWS KMS qui spécifie la clé KMS de la table.   
L’événement qui enregistre l’opération `GenerateDataKey` est similaire à l’exemple d’événement suivant. L'utilisateur est le compte du service Amazon Keyspaces. Les paramètres incluent l'Amazon Resource Name (ARN) de la clé gérée par le client, un spécificateur de clé qui nécessite une clé de 256 bits et le [contexte de chiffrement](#encryption-context) qui identifie l'espace clé, la table et le. Compte AWS  

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AWSService",
        "invokedBy": "AWS Internal"
    },
    "eventTime": "2021-04-16T04:56:05Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "GenerateDataKey",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "AWS Internal",
    "userAgent": "AWS Internal",
    "requestParameters": {
        "keySpec": "AES_256",
        "encryptionContext": {
            "aws:cassandra:keyspaceName": "my_keyspace",
            "aws:cassandra:tableName": "my_table",
            "aws:cassandra:subscriberId": "123SAMPLE012"
        },
        "keyId": "arn:aws:kms:eu-west-1:5555555555555:key/11111111-1111-111-1111-111111111111"
    },
    "responseElements": null,
    "requestID": "5e8e9cb5-9194-4334-aacc-9dd7d50fe246",
    "eventID": "49fccab9-2448-4b97-a89d-7d5c39318d6f",
    "readOnly": true,
    "resources": [
        {
            "accountId": "123SAMPLE012",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:eu-west-1:5555555555555:key/11111111-1111-111-1111-111111111111"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "eventCategory": "Management",
    "recipientAccountId": "123SAMPLE012",
    "sharedEventID": "84fbaaf0-9641-4e32-9147-57d2cb08792e"
}
```

**DescribeKey**  
Amazon Keyspaces utilise une [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)opération pour déterminer si la clé KMS que vous avez sélectionnée existe dans le compte et dans la région.   
L’événement qui enregistre l’opération `DescribeKey` est similaire à l’exemple d’événement suivant. L'utilisateur est le compte du service Amazon Keyspaces. Les paramètres incluent l'ARN de la clé gérée par le client et un spécificateur de clé qui nécessite une clé de 256 bits.  

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "AIDAZ3FNIIVIZZ6H7CFQG",
        "arn": "arn:aws:iam::123SAMPLE012:user/admin",
        "accountId": "123SAMPLE012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "userName": "admin",
        "sessionContext": {
            "sessionIssuer": {},
            "webIdFederationData": {},
            "attributes": {
                "mfaAuthenticated": "false",
                "creationDate": "2021-04-16T04:55:42Z"
            }
        },
        "invokedBy": "AWS Internal"
    },
    "eventTime": "2021-04-16T04:55:58Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "DescribeKey",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "AWS Internal",
    "userAgent": "AWS Internal",
    "requestParameters": {
        "keyId": "arn:aws:kms:eu-west-1:5555555555555:key/11111111-1111-111-1111-111111111111"
    },
    "responseElements": null,
    "requestID": "c25a8105-050b-4f52-8358-6e872fb03a6c",
    "eventID": "0d96420e-707e-41b9-9118-56585a669658",
    "readOnly": true,
    "resources": [
        {
            "accountId": "123SAMPLE012",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:eu-west-1:5555555555555:key/11111111-1111-111-1111-111111111111"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "eventCategory": "Management",
    "recipientAccountId": "123SAMPLE012"
}
```

**Decrypt**  
Lorsque vous accédez à une table Amazon Keyspaces, Amazon Keyspaces doit déchiffrer la clé de la table afin de pouvoir déchiffrer les clés situées en dessous dans la hiérarchie. Il déchiffre ensuite les données de la table. Pour déchiffrer la clé de table, Amazon Keyspaces envoie [une](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) demande AWS KMS de déchiffrement indiquant la clé KMS de la table.  
L’événement qui enregistre l’opération `Decrypt` est similaire à l’exemple d’événement suivant. L'utilisateur principal est Compte AWS celui qui accède à la table. Les paramètres incluent la clé de table cryptée (sous forme de blob de texte chiffré) et le [contexte de chiffrement](#encryption-context) qui identifie la table et le. Compte AWS AWS KMS déduit l'ID de la clé gérée par le client à partir du texte chiffré.   

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AWSService",
        "invokedBy": "AWS Internal"
    },
    "eventTime": "2021-04-16T05:29:44Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "Decrypt",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "AWS Internal",
    "userAgent": "AWS Internal",
    "requestParameters": {
        "encryptionContext": {
            "aws:cassandra:keyspaceName": "my_keyspace",
            "aws:cassandra:tableName": "my_table",
            "aws:cassandra:subscriberId": "123SAMPLE012"
        },
        "encryptionAlgorithm": "SYMMETRIC_DEFAULT"
    },
    "responseElements": null,
    "requestID": "50e80373-83c9-4034-8226-5439e1c9b259",
    "eventID": "8db9788f-04a5-4ae2-90c9-15c79c411b6b",
    "readOnly": true,
    "resources": [
        {
            "accountId": "123SAMPLE012",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:eu-west-1:5555555555555:key/11111111-1111-111-1111-111111111111"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "eventCategory": "Management",
    "recipientAccountId": "123SAMPLE012",
    "sharedEventID": "7ed99e2d-910a-4708-a4e3-0180d8dbb68e"
}
```

**CreateGrant**  
Lorsque vous utilisez une [clé gérée par le client](encryption.howitworks.md#customer-managed) pour protéger votre table Amazon Keyspaces, Amazon Keyspaces utilise des [subventions](#encryption-grants) pour permettre au service d'effectuer des tâches continues de protection, de maintenance et de durabilité des données. Ces subventions ne sont pas requises sur [Clés détenues par AWS](encryption.howitworks.md#keyspaces-owned).  
Les subventions créées par Amazon Keyspaces sont spécifiques à une table. Le principal de la [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)demande est l'utilisateur qui a créé la table.   
L’événement qui enregistre l’opération `CreateGrant` est similaire à l’exemple d’événement suivant. Les paramètres incluent l'ARN de la clé gérée par le client pour la table, le principal du bénéficiaire et le principal sortant (le service Amazon Keyspaces), ainsi que les opérations couvertes par la subvention. Elle inclut également une contrainte qui exige que toutes les opérations de chiffrement utilisent le [contexte de chiffrement](#encryption-context) spécifié.  

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "AIDAZ3FNIIVIZZ6H7CFQG",
        "arn": "arn:aws:iam::arn:aws:kms:eu-west-1:5555555555555:key/11111111-1111-111-1111-111111111111:user/admin",
        "accountId": "arn:aws:kms:eu-west-1:5555555555555:key/11111111-1111-111-1111-111111111111",
        "accessKeyId": "AKIAI44QH8DHBEXAMPLE",
        "userName": "admin",
        "sessionContext": {
            "sessionIssuer": {},
            "webIdFederationData": {},
            "attributes": {
                "mfaAuthenticated": "false",
                "creationDate": "2021-04-16T04:55:42Z"
            }
        },
        "invokedBy": "AWS Internal"
    },
    "eventTime": "2021-04-16T05:11:10Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "CreateGrant",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "AWS Internal",
    "userAgent": "AWS Internal",
    "requestParameters": {
        "keyId": "a7d328af-215e-4661-9a69-88c858909f20",
        "operations": [
            "DescribeKey",
            "GenerateDataKey",
            "Decrypt",
            "Encrypt",
            "ReEncryptFrom",
            "ReEncryptTo",
            "RetireGrant"
        ],
        "constraints": {
            "encryptionContextSubset": {
                "aws:cassandra:keyspaceName": "my_keyspace",
                "aws:cassandra:tableName": "my_table",
                "aws:cassandra:subscriberId": "123SAMPLE012"
            }
        },
        "retiringPrincipal": "cassandratest.us-east-1.amazonaws.com",
        "granteePrincipal": "cassandratest.us-east-1.amazonaws.com"
    },
    "responseElements": {
        "grantId": "18e4235f1b07f289762a31a1886cb5efd225f069280d4f76cd83b9b9b5501013"
    },
    "requestID": "b379a767-1f9b-48c3-b731-fb23e865e7f7",
    "eventID": "29ee1fd4-28f2-416f-a419-551910d20291",
    "readOnly": false,
    "resources": [
        {
            "accountId": "123SAMPLE012",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:eu-west-1:5555555555555:key/11111111-1111-111-1111-111111111111"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "eventCategory": "Management",
    "recipientAccountId": "123SAMPLE012"
}
```