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 données du journal dans CloudWatch Logs à l'aide de AWS Key Management Service
Les données des groupes de journaux sont toujours cryptées dans CloudWatch Logs. Par défaut, CloudWatch Logs utilise le chiffrement côté serveur avec le mode AES-GCM (Advanced Encryption Standard Galois/Counter Mode) 256 bits pour chiffrer les données des journaux au repos. En guise d'alternative, vous pouvez utiliser AWS Key Management Service pour ce chiffrement. Si c'est le cas, le chiffrement est effectué à l'aide d'une AWS KMS clé. L'utilisation du chiffrement AWS KMS est activée au niveau du groupe de journaux, en associant une clé KMS à un groupe de journaux, soit lorsque vous créez le groupe de journaux, soit après son existence.
Important
CloudWatch Les journaux prennent désormais en charge le contexte de chiffrement, en utilisant kms:EncryptionContext:aws:logs:arn
comme clé et l'ARN du groupe de journaux comme valeur de cette clé. Si vous disposez de groupes de journaux que vous avez déjà chiffrés avec une clé KMS et que vous souhaitez restreindre l'utilisation de cette clé à un seul compte et à un seul groupe de journaux, vous devez affecter une nouvelle clé KMS incluant une condition dans la politique IAM. Pour de plus amples informations, veuillez consulter AWS KMS clés et contexte de chiffrement.
Important
CloudWatch Logs prend désormais en charge kms:ViaService
ce qui permet aux journaux de passer AWS KMS des appels en votre nom. Vous devez l'ajouter à vos rôles qui appellent CloudWatch Logs soit dans votre politique clé, soit dans IAM. Pour plus d'informations, voir kms : ViaService.
Dès lors que vous associez une clé KMS à un groupe de journaux, toutes les données nouvellement ingérées pour le groupe de journaux sont chiffrées à l'aide de cette clé. Ces données sont stockées sous forme cryptée pendant toute la durée de conservation. CloudWatch Logs déchiffre ces données chaque fois qu'elles sont demandées. CloudWatch Les journaux doivent disposer d'autorisations pour la clé KMS chaque fois que des données chiffrées sont demandées.
Si vous dissociez ultérieurement une clé KMS d'un groupe de CloudWatch journaux, Logs chiffre les données nouvellement ingérées en utilisant la méthode de chiffrement par défaut de CloudWatch Logs. Toutes les données précédemment ingérées qui ont été chiffrées avec la clé KMS restent chiffrées avec la clé KMS. CloudWatch Les journaux peuvent toujours renvoyer ces données une fois la clé KMS dissociée, car CloudWatch les journaux 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 journaux 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 les données de vos groupes de journaux. Pour plus d'informations, consultez Utilisation des clés symétriques et asymétriques.
Limites
-
Pour effectuer les étapes suivantes, vous devez disposer des autorisations suivantes :
kms:CreateKey
,kms:GetKeyPolicy
etkms:PutKeyPolicy
. -
L'association et la dissociation d'une clé vis-à-vis d'un groupe de journaux peuvent mettre jusqu'à cinq minutes à être prises en compte.
-
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 associer une clé KMS à un groupe de journaux existant à l'aide de la CloudWatch console.
Étape 1 : Création d'une AWS KMS clé
Pour créer une clé KMS, utilisez la commande create-key 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
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 et le rôle de l'appelant à 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.
Il est recommandé de limiter l'utilisation de la clé KMS aux seuls AWS comptes ou groupes de journaux 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-policycommande 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.
La section Condition
de cet exemple restreint la clé à un seul ARN de groupe de journaux.
La section Condition
de cet exemple limite l'utilisation de la clé AWS KMS au compte spécifié, mais elle peut être utilisée pour n'importe quel groupe de journaux.
Ajoutez ensuite des autorisations au rôle qui appellera les CloudWatch journaux. Vous pouvez le faire en ajoutant une déclaration supplémentaire à la politique AWS KMS clé ou via IAM sur le rôle lui-même. CloudWatch Enregistre kms:ViaService
les utilisations pour passer AWS KMS des appels au nom du client. Pour plus d'informations, voir kms : ViaService.
Pour ajouter des autorisations dans la politique AWS KMS clé, ajoutez la déclaration supplémentaire suivante à votre politique clé. Si vous utilisez cette méthode, il est recommandé d'étendre la politique aux seuls rôles qui interagiront avec des groupes de journaux AWS KMS chiffrés.
{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
account_id
:role/role_name
" }, "Action": [ "kms:Encrypt", "kms:ReEncrypt*", "kms:Decrypt", "kms:GenerateDataKey*", "kms:Describe*" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "logs.region
.amazonaws.com" ] } } }
Si vous souhaitez gérer les autorisations des rôles dans IAM, vous pouvez également ajouter des autorisations équivalentes par le biais de la politique suivante. Cela peut être ajouté à une politique de rôle existante ou attaché à un rôle en tant que stratégie distincte supplémentaire. Si vous utilisez cette méthode, il est recommandé d'étendre la politique aux seules AWS KMS clés qui seront utilisées pour le chiffrement des journaux. Pour plus d'informations, consultez la section Modifier les politiques IAM.
Enfin, ajoutez la politique mise à jour à l'aide de la put-key-policycommande suivante :
aws kms put-key-policy --key-id
key-id
--policy-name default --policy file://policy.json
Étape 3 : Association d'une clé KMS à un groupe de journaux
Vous pouvez associer une clé KMS à un groupe de journaux lors de sa création, ou ultérieurement.
Pour savoir si une clé KMS est déjà associée à un groupe de journaux, utilisez la describe-log-groupscommande suivante :
aws logs describe-log-groups --log-group-name-prefix "
log-group-name-prefix
"
Si la sortie inclut un champ kmsKeyId
, le groupe de journaux est associé à la clé affichée pour la valeur de ce champ.
Pour associer la clé KMS à un groupe de journaux lors de sa création
Utilisez la commande create-log-group comme suit :
aws logs create-log-group --log-group-name
my-log-group
--kms-key-id "key-arn
"
Pour associer la clé KMS à un groupe de journaux existant
Utilisez la commande associate-kms-key comme suit :
aws logs associate-kms-key --log-group-name
my-log-group
--kms-key-id "key-arn
"
Étape 4 : Dissociation de la clé d'un groupe de journaux
Pour dissocier la clé KMS associée à un groupe de journaux, utilisez la disassociate-kms-keycommande suivante :
aws logs disassociate-kms-key --log-group-name
my-log-group
AWS KMS clés et contexte de chiffrement
Pour renforcer la sécurité de vos AWS Key Management Service clés et de vos groupes de CloudWatch journaux chiffrés, Logs intègre désormais le groupe ARNs de journaux dans le contexte de chiffrement utilisé pour chiffrer les données de vos journaux. Le contexte de chiffrement est un ensemble de paires clé-valeur qui sont utilisées comme données authentifiées supplémentaires. Le contexte de chiffrement vous permet d'utiliser les conditions de la politique IAM pour limiter l'accès à votre AWS KMS clé par AWS compte et par groupe de journaux. Pour plus d'informations, consultez Contexte de chiffrement et Éléments de politique JSON IAM : Condition.
Nous vous recommandons d'utiliser différentes clés KMS pour chacun de vos groupes de journaux chiffrés.
Si vous disposez d'un groupe de journaux déjà chiffré et que vous souhaitez le modifier afin d'utiliser une nouvelle clé KMS dédiée à celui-ci, procédez comme suit.
Pour convertir un groupe de journaux chiffré afin d'utiliser une clé KMS avec une politique la limitant à ce groupe de journaux
Saisissez la commande suivante pour trouver l'ARN de la clé actuelle du groupe de journaux :
aws logs describe-log-groups
La sortie comprend la ligne suivante. Prenez note de l'ARN. Vous devez l'utiliser à l'étape 7.
... "kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/01234567-89ab-cdef-0123-456789abcdef" ...
Saisissez la commande suivante pour créer une nouvelle clé KMS :
aws kms create-key
Entrez la commande suivante pour enregistrer la stratégie de la nouvelle clé dans un fichier
policy.json
:aws kms get-key-policy --key-id
new-key-id
--policy-name default --output text > ./policy.jsonUtilisez un éditeur de texte pour ouvrir
policy.json
et ajouter une expressionCondition
à la stratégie :Saisissez la commande suivante pour ajouter la politique mise à jour à la nouvelle clé KMS :
aws kms put-key-policy --key-id
new-key-ARN
--policy-name default --policy file://policy.jsonEntrez la commande suivante pour associer la stratégie à votre groupe de journaux :
aws logs associate-kms-key --log-group-name
my-log-group
--kms-key-idnew-key-ARN
CloudWatch Logs chiffre désormais toutes les nouvelles données à l'aide de la nouvelle clé.
Ensuite, révoquez toutes les autorisations à l'exception de
Decrypt
provenant de l'ancienne clé. Tout d'abord, saisissez la commande suivante pour récupérer l'ancienne politique :aws kms get-key-policy --key-id
old-key-ARN
--policy-name default --output text > ./policy.jsonUtilisez un éditeur de texte pour ouvrir
policy.json
et supprimer toutes les valeurs de la listeAction
, à l'exception dekms:Decrypt
Saisissez la commande suivante pour ajouter la politique mise à jour à l'ancienne clé :
aws kms put-key-policy --key-id
old-key-ARN
--policy-name default --policy file://policy.json