

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 un détecteur d'anomalie et ses résultats avec AWS KMS
<a name="LogsAnomalyDetection-KMS"></a>

Les données des détecteurs d'anomalies sont toujours cryptées dans les CloudWatch journaux. Par défaut, CloudWatch Logs utilise le chiffrement côté serveur pour les données au repos. Comme alternative, vous pouvez utiliser AWS Key Management Service ce cryptage. Si c'est le cas, le chiffrement est effectué à l'aide d'une AWS KMS clé. Le chiffrement à l'aide AWS KMS est activé au niveau du détecteur d'anomalies, en associant une clé KMS à un détecteur d'anomalie. 

**Important**  
CloudWatch Logs ne prend en charge que les clés KMS symétriques. N'utilisez pas de clé asymétrique pour chiffrer les données de vos groupes de journaux. 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-anomaly"></a>
+ Pour effectuer les étapes suivantes, vous devez disposer des autorisations suivantes : `kms:CreateKey`, `kms:GetKeyPolicy` et `kms:PutKeyPolicy`.
+ Une fois que vous avez associé ou dissocié une clé d'un détecteur d'anomalie, l'opération peut prendre jusqu'à cinq minutes pour 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.

### Étape 1 : Création d'une AWS KMS clé
<a name="create-cmk-anomaly"></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": "key-default-1",
        "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/key-default-1",
        "AWSAccountId": "123456789012",
        "EncryptionAlgorithms": [
            "SYMMETRIC_DEFAULT"
        ]
    }
}
```

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

Par défaut, toutes les AWS KMS clés 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é KMS. Au cours de 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é KMS est stockée.

En tant que bonne pratique, nous vous recommandons de limiter l'utilisation de la clé KMS aux seuls AWS comptes ou détecteurs d'anomalies 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é au compte spécifié, mais elle peut être utilisée pour n'importe quel détecteur d'anomalie.

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

****  

```
    {
    "Version":"2012-10-17",		 	 	 
    "Id": "key-default-1",
    "Statement": [
        {
            "Sid": "EnableIAMUserPermissions",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": "kms:*",
            "Resource": "*"
        },
        {
            "Sid": "AllowCloudWatchLogsEncryption",
            "Effect": "Allow",
            "Principal": {
                "Service": "logs.us-east-1.amazonaws.com"
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:GenerateDataKey*"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "StringLike": {
                    "kms:EncryptionContext:aws:logs:arn": "arn:aws:logs:us-east-1:123456789012:anomaly-detector:*"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:logs:us-east-1:123456789012:anomaly-detector:*"
                }
            }
        },
        {
            "Sid": "AllowCloudWatchLogsDescribeKey",
            "Effect": "Allow",
            "Principal": {
                "Service": "logs.us-east-1.amazonaws.com"
            },
            "Action": "kms:DescribeKey",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                }
            }
        },
        {
            "Sid": "AllowCloudWatchLogsReEncryption",
            "Effect": "Allow",
            "Principal": {
                "Service": "logs.us-east-1.amazonaws.com"
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "StringLike": {
                    "kms:EncryptionContext:aws-crypto-ec:aws:logs:arn": "arn:aws:logs:us-east-1:123456789012:anomaly-detector:*"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:logs:us-east-1:123456789012:anomaly-detector:*"
                }
            }
        },
        {
            "Sid": "AllowCloudWatchLogsDescribeKeyForReEncryption",
            "Effect": "Allow",
            "Principal": {
                "Service": "logs.us-east-1.amazonaws.com"
            },
            "Action": "kms:DescribeKey",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                }
            }
        }
    ]
}
```

------

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 à un détecteur d'anomalies
<a name="associate-cmk"></a>

Vous pouvez associer une clé KMS à un détecteur d'anomalies lorsque vous la créez dans la console ou à l'aide du AWS CLI ou APIs.

#### Étape 4 : Dissocier la clé d'un détecteur d'anomalie
<a name="disassociate-cmk"></a>

Une fois qu'une clé a été associée à un détecteur d'anomalie, vous ne pouvez pas la mettre à jour. La seule façon de retirer la clé est de supprimer le détecteur d'anomalie, puis de le recréer.