

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.

# Chiffrez les résultats des requêtes avec AWS Key Management Service
<a name="CloudWatchLogs-Insights-Query-Encrypt"></a>

Par défaut, CloudWatch Logs chiffre les résultats enregistrés de vos requêtes CloudWatch Logs Insights en utilisant la méthode de chiffrement côté serveur CloudWatch Logs par défaut. Vous pouvez choisir d'utiliser une AWS KMS clé pour chiffrer ces résultats à la place. Si vous associez une AWS KMS clé à vos résultats de chiffrement, CloudWatch Logs utilise cette clé pour chiffrer les résultats enregistrés de toutes les requêtes du compte. 

Si vous dissociez ultérieurement une clé des résultats de votre requête, CloudWatch Logs revient à la méthode de cryptage par défaut pour les requêtes ultérieures. Mais les requêtes exécutées alors que la clé était associée sont toujours chiffrées avec cette clé. CloudWatch Les journaux peuvent toujours renvoyer ces résultats une fois la clé KMS dissociée, car ils CloudWatch peuvent continuer à faire référence à la clé. Toutefois, si la clé est désactivée ultérieurement, CloudWatch Logs ne pourra pas lire les résultats de la requête chiffrés avec cette clé.

**Important**  
CloudWatch Logs ne prend en charge que les clés KMS symétriques. N'utilisez pas de clé asymétrique pour chiffrer vos résultats de requête. Pour plus d'informations, consultez [Utilisation des clés symétriques et asymétriques](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html).

## Restrictions
<a name="encryption-limits-queries"></a>
+ Pour effectuer les étapes suivantes, vous devez disposer des autorisations suivantes : `kms:CreateKey`, `kms:GetKeyPolicy` et `kms:PutKeyPolicy`.
+ L'association d'une clé à vos résultats de requête ou sa dissociation peut mettre jusqu'à cinq minutes à prendre effet.
+ Si vous révoquez l'accès de CloudWatch Logs à une clé associée ou si vous supprimez une clé KMS associée, vos données chiffrées dans CloudWatch Logs ne peuvent plus être récupérées.
+ Vous ne pouvez pas utiliser la CloudWatch console pour associer une clé, vous devez utiliser l'API AWS CLI or CloudWatch Logs.

## Étape 1 : Création d'un AWS KMS key
<a name="create-cmk"></a>

Pour créer une clé KMS, utilisez la commande [create-key](https://docs.aws.amazon.com/cli/latest/reference/kms/create-key.html) suivante :

```
aws kms create-key
```

La sortie contient l'ID de clé et l'Amazon Resource Name (ARN) de la clé. Voici un exemple de sortie :

```
{
    "KeyMetadata": {
        "Origin": "AWS_KMS",
        "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "Description": "",
        "KeyManager": "CUSTOMER",
        "Enabled": true,
        "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
        "KeyUsage": "ENCRYPT_DECRYPT",
        "KeyState": "Enabled",
        "CreationDate": 1478910250.94,
        "Arn": "arn:aws:kms:us-west-2:123456789012:key/6f815f63-e628-448c-8251-e40cb0d29f59",
        "AWSAccountId": "123456789012",
        "EncryptionAlgorithms": [
            "SYMMETRIC_DEFAULT"
        ]
    }
}
```

## Étape 2 : Définition des autorisations sur la clé KMS
<a name="cmk-permissions"></a>

Par défaut, toutes les clés KMS sont privées. Seul le propriétaire de la ressource peut l'utiliser pour chiffrer et déchiffrer des données. Cependant, le propriétaire de la ressource peut accorder à d'autres utilisateurs et ressources des autorisations d'accès à la clé. Avec cette étape, vous autorisez le principal du service CloudWatch Logs à utiliser la clé. Ce principal de service doit se trouver dans la même AWS région que celle où la clé est stockée.

Il est recommandé de limiter l'utilisation de la clé aux seuls AWS comptes que vous spécifiez.

Tout d'abord, enregistrez la politique par défaut pour votre clé KMS à `policy.json` l'aide de la [get-key-policy](https://docs.aws.amazon.com/cli/latest/reference/kms/get-key-policy.html)commande suivante :

```
aws kms get-key-policy --key-id key-id --policy-name default --output text > ./policy.json
```

Ouvrez le fichier `policy.json` dans un éditeur de texte et ajoutez la section en gras à partir de l'une des instructions suivantes. Séparez l'instruction existante de la nouvelle instruction par une virgule. Ces instructions utilisent `Condition` des sections pour renforcer la sécurité de la AWS KMS clé. Pour de plus amples informations, veuillez consulter [AWS KMS clés et contexte de chiffrement](encrypt-log-data-kms.md#encrypt-log-data-kms-policy).

La `Condition` section de cet exemple limite l'utilisation de la AWS KMS clé pour les résultats de la requête CloudWatch Logs Insights dans le compte spécifié.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "key-default-1",
    "Statement": [
        {
            "Sid": "Enable IAM User Permissions",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": "kms:*",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "logs.region.amazonaws.com"
            },
            "Action": [
                "kms:Encrypt*",
                "kms:Decrypt*",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:Describe*"
            ],
            "Resource": "*",
            "Condition": {
                "ArnEquals": {
                "aws:SourceArn": "arn:aws:logs:us-east-1:111122223333:query-result:*"
                },
                "StringEquals": {
                "aws:SourceAccount": "111122223333"
                }
            }
        }
    ]
}
```

------

Enfin, ajoutez la politique mise à jour à l'aide de la [put-key-policy](https://docs.aws.amazon.com/cli/latest/reference/kms/put-key-policy.html)commande suivante :

```
aws kms put-key-policy --key-id key-id --policy-name default --policy file://policy.json
```

## Étape 3 : Associer une clé KMS à vos résultats de requête
<a name="associate-cmk-query"></a>

**Pour associer la clé KMS aux résultats de la requête dans le compte**  
Utilisez la commande [disassociate-kms-key](https://docs.aws.amazon.com/cli/latest/reference/logs/disassociate-kms-key.html) comme suit :

```
aws logs associate-kms-key --resource-identifier "arn:aws:logs:region:account-id:query-result:*" --kms-key-id "key-arn"
```

## Étape 4 : Dissocier une clé des résultats de requête dans le compte
<a name="disassociate-cmk-query"></a>

Pour dissocier la clé KMS associée aux résultats de la requête, utilisez la [disassociate-kms-key](https://docs.aws.amazon.com/cli/latest/reference/logs/disassociate-kms-key.html)commande suivante :

```
aws logs disassociate-kms-key --resource-identifier "arn:aws:logs:region:account-id:query-result:*"
```