View a markdown version of this page

Chiffrement au repos pour les OpenTelemetry métriques - Amazon CloudWatch

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

Qu'est-ce qu'un CloudWatch ensemble de données

OpenTelemetry Les métriques (OTel) que vous envoyez à Amazon CloudWatch sont stockées dans une ressource appelée Dataset. 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. Le format de l'ARN du jeu de données est le suivant :

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

Pour consulter la configuration de chiffrement actuelle de votre jeu de données, utilisez l'GetDatasetAPI :

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 AWS clé propre.

Options de chiffrement au repos

CloudWatch chiffre toujours les données de l'ensemble de données au repos. Par défaut, CloudWatch chiffre toutes les données au repos à 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 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 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.

Comment CloudWatch utilise une clé gérée par le client pour le chiffrement des ensembles de données

Important

Le chiffrement par clé géré par le client s'applique à l'defaultensemble 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'defaultensemble de données, CloudWatch utilise 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 de politique clés. CloudWatch n'utilise pas de privilèges ni de rôles IAM pour accéder à votre AWS KMS clé.

CloudWatch ne met pas en cache les clés de données. Cependant, CloudWatch les kms:Decrypt réponses sont mises en cache pendant 15 minutes au 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

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) dont l'utilisation est ENCRYPT_DECRYPT. Les touches asymétriques ne sont pas prises en charge.

  • Multi-Region les clés ne sont pas prises en charge.

  • La clé doit être identique à celle de 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 de clé et les ID de clé ne sont pas pris en charge.

Configuration des autorisations de politique clés

Pour utiliser une clé gérée par le client avec CloudWatch Dataset, la politique de clé 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, d'une portée CloudWatch ViaService et d'un contexte de cryptage, comme indiqué dans la AllowCallerDecrypt déclaration ci-dessous. Remplacez-le YourApplicationRole par le rôle IAM utilisé pour appeler les API du CloudWatch jeu de données.

Exemple 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 Stratégies clés AWS KMS dans le Guide du AWS Key Management Service développeur.

Pour associer une clé gérée par le client à un ensemble de données

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

Pour associer une clé gérée par le client à l'aide de l' AWS interface de ligne de commande, 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

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

Pour remplacer la clé gérée par le client, appelez AssociateDatasetKmsKey à nouveau avec un nouvel ARN de clé. L'appelant doit être kms:Decrypt autorisé à utiliser à la fois la touche actuelle et la nouvelle touche. CloudWatch commence à utiliser la nouvelle clé pour les opérations de chiffrement suivantes.

Note

Si la clé actuellement associée a été supprimée, est en cours de suppression, est en attente d'importation, n'est pas disponible ou a été désactivée, CloudWatch aucune kms:Decrypt autorisation n'est requise sur la clé actuelle et la rotation se poursuit. Si la clé était uniquement désactivée, envisagez de la réactiver plutôt que de la faire pivoter, car la réactivation permet de CloudWatch reprendre le déchiffrement des données métriques existantes chiffrées avec cette clé.

Pour supprimer la clé gérée par le client

Pour supprimer la clé gérée par le client et revenir au chiffrement AWS par clé propriétaire, appelezDisassociateDatasetKmsKey. L'appelant doit disposer d'une kms:Decrypt autorisation sur la clé actuellement associée.

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

Si la clé actuellement associée a été supprimée, est en cours de suppression, est en attente d'importation, n'est pas disponible ou a été désactivée, CloudWatch aucune kms:Decrypt autorisation n'est requise sur cette clé et la dissociation se poursuit. Si la clé a été uniquement désactivée, pensez à la réactiver au lieu de la dissocier, car la réactivation permet de reprendre le déchiffrement CloudWatch de vos données métriques existantes.

Important

Une fois que vous avez dissocié une clé gérée par le client, il reste une fenêtre d'application de 3 heures pendant laquelle une kms:Decrypt autorisation est CloudWatch toujours requise pour la clé précédemment associée. Ne désactivez ni ne supprimez la clé pendant cette fenêtre.

Restauration à partir d'une clé KMS supprimée ou inutilisable

Si la clé KMS gérée par le client associée à votre jeu de données est supprimée, sa suppression est programmée ou n'est plus disponible, votre jeu de données entre dans un état dégradé :

  • CloudWatch Impossible de chiffrer les nouvelles données métriques que vous publiez dans l'ensemble de données, et l'ingestion échoue.

  • CloudWatch Impossible de déchiffrer les données existantes qui ont été chiffrées avec la clé inutilisable. Les opérations de requête échouent donc.

Vos options de restauration dépendent de l'état de la clé :

  • La touche est désactivée Re-enable , la clé est entrée AWS KMS. Il s'agit de la méthode de restauration préférée car CloudWatch vous pouvez reprendre le déchiffrement de vos données métriques existantes une fois la clé réactivée.

  • La clé est en attente de suppression — Annulez la suppression de la clé AWS KMS avant l'expiration du délai d'attente. Une fois que la touche est revenue à l'état activé, les CloudWatch opérations normales sont reprises.

  • La clé a été définitivement supprimée ou est irrécupérable pour une autre raison : supprimez l'association obsolète ou passez à une nouvelle clé (voir ci-dessous). Notez que les données existantes chiffrées avec la clé supprimée sont définitivement illisibles.

Si la clé est définitivement supprimée ou irrécupérable pour une autre raison, vous pouvez supprimer l'association ou passer à une nouvelle clé sans avoir besoin d'accéder à l'ancienne clé :

Supprimer l'association de clés périmée

Appelez DisassociateDatasetKmsKey pour supprimer l'association avec la clé inutilisable. CloudWatch revient au chiffrement AWS par clé propriétaire pour les nouvelles données. Les données existantes qui ont été chiffrées avec la clé supprimée ne sont plus lisibles.

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

Passer à une nouvelle touche

Appelez AssociateDatasetKmsKey avec un nouvel ARN de clé KMS valide. CloudWatchvalide la nouvelle clé et l'associe à votre ensemble de données. L'accès à la clé précédemment associée n'est pas nécessaire. Les données existantes qui ont été chiffrées avec la clé supprimée ne sont plus lisibles, mais les nouvelles données sont chiffrées avec la nouvelle clé.

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

Réponses aux erreurs pour les clés inutilisables

Lorsque vous appelez DisassociateDatasetKmsKey ou AssociateDatasetKmsKey (trajectoire de rotation) et que la touche actuellement associée est inaccessible, CloudWatch elle ne nécessite pas d'accès à cette touche et l'opération se déroule normalement. Cela s'applique dans les cas suivants :

  • La clé a été supprimée (KMS revientNotFoundException).

  • La clé est à l'Unavailableétat PendingDeletionPendingImport, ou.

  • La clé a été désactivée.

Si vous appelez ces opérations alors que la touche est accessible mais que l'appelant n'est pas kms:Decrypt autorisé, l'opération échoue avec l'une des erreurs suivantes. Chaque message d'erreur inclut l'ID de demande KMS pour le dépannage.

ResourceNotFoundException

La clé KMS spécifiée n'existe pas. Format du message : KMS key key-arn does not exist. KMS request id: request-id.

ValidationException

La clé KMS spécifiée est dans un état inutilisable qui n'est pas toléré sur ce chemin de code. Format du message : KMS key key-arn is in an unusable state: state-description. KMS request id: request-id.

AccessDeniedException

La clé KMS spécifiée est désactivée ou l'appelant n'est pas autorisé. Format du message : KMS key key-arn is disabled. KMS request id: request-id.

Pour plus d'informations sur les états clés KMS, consultez la section États clés des AWS KMS clés dans le Guide du AWS Key Management Service développeur.

Déterminer l'accès aux politiques clés

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 de la clé à 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.

"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

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 decloudwatch.{region}.amazonaws.com.

Les noms d' CloudTrail événements suivants apparaissent dans les entrées de journal pour les opérations CloudWatch de chiffrement du jeu 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 dans le Guide du AWS Key Management Service développeur.