

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 pour les OpenTelemetry métriques
<a name="cmk-encryption"></a>

## Qu'est-ce qu'un CloudWatch ensemble de données
<a name="cmk-encryption-dataset-overview"></a>

OpenTelemetry Les métriques (OTel) que vous envoyez à Amazon CloudWatch sont stockées dans une ressource appelée ensemble de données. Chacun Compte AWS possède un `default` ensemble de données dans chaque région où se trouvent toutes les métriques de l'OTel. Le `default` jeu de données est le seul jeu de données pris en charge. Vous ne pouvez pas créer de jeux de données supplémentaires.

Les ensembles de données peuvent être chiffrés et étiquetés comme les autres AWS ressources. L'ARN du jeu de données a le format suivant :

`arn:{{{partition}}}:cloudwatch:{{{region}}}:{{{account-id}}}:dataset/default`

Pour consulter la configuration de chiffrement actuelle de votre ensemble de données, utilisez l'`GetDataset`API :

```
aws cloudwatch get-dataset \
    --dataset-identifier default
```

Si une clé gérée par le client est associée à l'ensemble de données, la réponse inclut l'ARN de la clé. Si aucune clé gérée par le client n'est associée, l'ensemble de données est chiffré avec une clé AWS détenue.

## Options de chiffrement au repos
<a name="cmk-encryption-options"></a>

CloudWatch chiffre toujours les données de l'ensemble de données au repos. Par défaut, CloudWatch chiffre toutes les données inactives à l'aide de clés AWS détenues. Il n'est pas nécessaire de prendre des mesures pour protéger vos données à l'aide de clés que vous AWS possédez. Pour plus d’informations, consultez [AWS owned keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk) dans le Guide du développeur AWS Key Management Service .

Si vous souhaitez gérer les clés utilisées pour chiffrer les données de votre ensemble de données, vous pouvez utiliser une clé gérée par le client dans AWS Key Management Service (AWS KMS). Pour plus d'informations, consultez la section [Clés gérées par le client](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) dans le Guide du AWS Key Management Service développeur.

Lorsque vous utilisez une clé gérée par le client, AWS KMS des frais s'appliquent. Pour plus d’informations sur la tarification, consultez [Tarification d’AWS Key Management Service](https://aws.amazon.com/kms/pricing/).

## Comment CloudWatch utilise une clé gérée par le client pour le chiffrement des ensembles de données
<a name="cmk-encryption-how-it-works"></a>

**Important**  
Le chiffrement par clé géré par le client s'applique à l'`default`ensemble de données. Le `default` jeu de données est le seul jeu de données pris en charge. Vous ne pouvez pas créer de jeux de données supplémentaires.

Lorsque vous associez une clé gérée par le client à l'`default`ensemble de données CloudWatch, utilisez la clé pour chiffrer toutes les données métriques OTel stockées dans cet ensemble de données.

CloudWatch utilise le principal de service (`cloudwatch.amazonaws.com`) directement avec les autorisations politiques clés. CloudWatch n'utilise pas de licences ou de rôles IAM pour accéder à votre AWS KMS clé.

CloudWatch ne met pas en cache les clés de données. Toutefois, met en CloudWatch cache `kms:Decrypt` les réponses pendant 15 minutes maximum. Les modifications apportées à une politique clé peuvent prendre jusqu'à 15 minutes pour prendre effet.

CloudWatch utilise le contexte de chiffrement suivant pour toutes les opérations AWS KMS cryptographiques :
+ Clé : `aws:cloudwatch:arn`
+ Valeur : `arn:{{{partition}}}:cloudwatch:{{{region}}}:{{{account-id}}}:dataset/default`

## Configuration d'une clé gérée par le client pour Dataset
<a name="cmk-encryption-key-requirements"></a>

La AWS KMS clé que vous utilisez avec CloudWatch Dataset doit répondre aux exigences suivantes :
+ La clé doit être une clé de chiffrement symétrique (SYMMETRIC\_DEFAULT) utilisant la clé ENCRYPT\_DECRYPT. Les touches asymétriques ne sont pas prises en charge.
+ Multi-Region les touches ne sont pas prises en charge.
+ La clé doit être identique à l' Région AWS ensemble de données.
+ Vous devez spécifier la clé en tant qu'ARN de clé entièrement qualifié. Les alias et identifiants de clé ne sont pas pris en charge.

## Configuration des autorisations stratégiques clés
<a name="cmk-encryption-permissions"></a>

Pour utiliser une clé gérée par le client avec CloudWatch Dataset, la politique en matière de clés doit CloudWatch autoriser l'utilisation de la clé. L'exemple de politique clé suivant accorde CloudWatch les autorisations nécessaires et inclut une protection adjointe confuse.

L'appelant qui associe ou utilise l'ensemble de données doit disposer d'une `kms:Decrypt` autorisation, limitée au contexte de chiffrement CloudWatch `ViaService` et de cryptage, comme indiqué dans la `AllowCallerDecrypt` déclaration ci-dessous. Remplacez {{YourApplicationRole}} par le rôle IAM utilisé pour appeler les API du CloudWatch jeu de données.

**Example Politique clé pour le chiffrement des CloudWatch ensembles de données**  

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowCloudWatchDatasetDescribeKey",
            "Effect": "Allow",
            "Principal": {
                "Service": "cloudwatch.amazonaws.com"
            },
            "Action": "kms:DescribeKey",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "{{account-id}}"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:cloudwatch:{{region}}:{{account-id}}:dataset/default"
                }
            }
        },
        {
            "Sid": "AllowCloudWatchDatasetEncryption",
            "Effect": "Allow",
            "Principal": {
                "Service": "cloudwatch.amazonaws.com"
            },
            "Action": [
                "kms:GenerateDataKey",
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "{{account-id}}",
                    "kms:EncryptionContext:aws:cloudwatch:arn": "arn:aws:cloudwatch:{{region}}:{{account-id}}:dataset/default"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:cloudwatch:{{region}}:{{account-id}}:dataset/default"
                }
            }
        },
        {
            "Sid": "AllowCallerDecrypt",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::{{account-id}}:role/{{YourApplicationRole}}"
            },
            "Action": "kms:Decrypt",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "kms:ViaService": "cloudwatch.{{region}}.amazonaws.com",
                    "kms:EncryptionContext:aws:cloudwatch:arn": "arn:aws:cloudwatch:{{region}}:{{account-id}}:dataset/default"
                }
            }
        }
    ]
}
```

Remplacez {{account-id}} et {{region}} par vos propres valeurs.

Pour plus d'informations sur les politiques clés, consultez [la section Politiques clés](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) du Guide du AWS Key Management Service développeur. AWS KMS

## Pour associer une clé gérée par le client à un ensemble de données
<a name="cmk-encryption-associate"></a>

Utilisez l'`AssociateDatasetKmsKey`API pour associer une clé gérée par le client à un ensemble de données. Vous devez le spécifier `default` comme identifiant du jeu de données.

Pour associer une clé gérée par le client à l'aide de la AWS CLI, exécutez la commande suivante :

```
aws cloudwatch associate-dataset-kms-key \
    --dataset-name default \
    --kms-key-arn arn:aws:kms:{{region}}:{{account-id}}:key/{{key-id}}
```

## Modification ou suppression de la configuration de chiffrement
<a name="cmk-encryption-change-disassociate"></a>

Vous pouvez modifier ou supprimer la clé gérée par le client qui chiffre les données de votre ensemble de données.

### Pour modifier la clé gérée par le client
<a name="cmk-encryption-change-key"></a>

Pour remplacer la clé gérée par le client, appelez `AssociateDatasetKmsKey` à nouveau avec une nouvelle clé ARN. L'appelant doit avoir l'`kms:Decrypt`autorisation d'utiliser à la fois la clé actuelle et la nouvelle clé. CloudWatch commence à utiliser la nouvelle clé pour les opérations de chiffrement suivantes.

### Pour supprimer la clé gérée par le client
<a name="cmk-encryption-disassociate"></a>

Pour supprimer la clé gérée par le client et revenir au chiffrement AWS par clé détenue, appelez`DisassociateDatasetKmsKey`. L'appelant doit être `kms:Decrypt` autorisé à utiliser la clé actuellement associée.

```
aws cloudwatch disassociate-dataset-kms-key \
    --dataset-name default
```

**Important**  
Une fois que vous avez dissocié une clé gérée par le client, il reste un délai d'application de 3 heures pendant lequel vous devez CloudWatch toujours `kms:Decrypt` obtenir une autorisation sur la clé précédemment associée. Ne désactivez ni ne supprimez la clé pendant cette fenêtre.

Si votre clé est désactivée, vous devez la réactiver avant de pouvoir la dissocier du jeu de données.

## Délimitation des principaux accès aux politiques
<a name="cmk-encryption-scoping-access"></a>

Vous pouvez utiliser les conditions de la politique relative aux clés pour limiter l'accès à votre AWS KMS clé.

Condition du contexte de chiffrement  
Utilisez la clé de `kms:EncryptionContext:aws:cloudwatch:arn` condition pour limiter l'utilisation des clés à votre `default` ensemble de données.  

```
"Condition": {
    "StringEquals": {
        "kms:EncryptionContext:aws:cloudwatch:arn": "arn:aws:cloudwatch:{{region}}:{{account-id}}:dataset/default"
    }
}
```

Protection adjointe confuse  
Utilisez les `aws:SourceAccount` conditions `aws:SourceArn` et pour empêcher les attaques d'adjoints confus entre comptes multiples.  

```
"Condition": {
    "StringEquals": {
        "aws:SourceAccount": "{{account-id}}"
    },
    "ArnLike": {
        "aws:SourceArn": "arn:aws:cloudwatch:{{region}}:{{account-id}}:dataset/default"
    }
}
```

km : ViaService état  
Utilisez la clé de `kms:ViaService` condition pour limiter l'utilisation de la clé aux demandes provenant de CloudWatch.  

```
"Condition": {
    "StringEquals": {
        "kms:ViaService": "cloudwatch.{{region}}.amazonaws.com"
    }
}
```

## Surveillance de CloudWatch l'interaction avec AWS KMS
<a name="cmk-encryption-monitoring"></a>

Vous pouvez l' AWS CloudTrail utiliser pour suivre les demandes CloudWatch envoyées AWS KMS en votre nom. Les entrées du AWS CloudTrail journal utilisent le principal de service `cloudwatch.amazonaws.com` et une `ViaService` valeur de`cloudwatch.{{{region}}}.amazonaws.com`.

Les noms d' CloudTrail événements suivants apparaissent dans les entrées du journal pour les opérations CloudWatch de chiffrement des ensembles de données :
+ `GenerateDataKey`
+ `Encrypt`
+ `Decrypt`
+ `DescribeKey`
+ `ReEncrypt`

Chaque entrée de journal inclut le contexte de chiffrement, que vous pouvez utiliser pour identifier l'ensemble de données spécifique auquel l'opération s'applique.

Pour plus d'informations sur la surveillance de l'utilisation des AWS KMS clés, consultez la section [Surveillance AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/monitoring-overview.html) dans le guide du AWS Key Management Service développeur.