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 des données au repos dans AWS IoT Core
Par défaut, toutes les AWS IoT Core données au repos sont chiffrées à l'aide de clés AWS détenues. AWS IoT Core prend également en charge les clés symétriques gérées par le client depuis AWS Key Management Service (AWS KMS). Avec les clés gérées par le client, vous pouvez créer, posséder et gérer les AWS KMS clés de votre AWS compte. AWS IoT Core utilisera vos clés KMS pour chiffrer vos données au repos. Vous avez le contrôle total de ces clés KMS, y compris la création et la gestion de leurs politiques clés. Vous pouvez également configurer des politiques IAM pour les rôles qui accèdent AWS KMS afin de contrôler les autorisations relatives à ces clés.
AWS clés possédées
AWS les clés détenues sont un ensemble de clés KMS qu'un AWS service possède et gère pour être utilisées dans plusieurs AWS comptes. AWS les services peuvent utiliser des clés AWS détenues pour protéger vos données. Par défaut, AWS IoT Core chiffre les données au repos à l'aide de clés AWS détenues. Ces clés sont gérées par le service. Vous ne pouvez pas afficher, gérer ou utiliser les clés que vous AWS possédez. Il n'est toutefois pas nécessaire de prendre des mesures pour protéger ces clés.
Pour plus d'informations sur les clés AWS détenues, consultez la section Clés AWS détenues dans le Guide du AWS Key Management Service développeur.
Clés gérées par le client
Les clés gérées par le client sont des clés KMS de votre AWS compte que vous créez, possédez et gérez. Vous avez le contrôle total de ces AWS KMS clés, y compris la création et la gestion de leurs politiques clés. Vous pouvez également configurer des politiques IAM pour les rôles qui accèdent AWS KMS afin de contrôler les autorisations relatives à ces clés. Vous pouvez configurer AWS IoT Core l'utilisation de clés KMS gérées par le client pour chiffrer vos données.
Pour plus d’informations sur les clés gérées par le client, consultez Clés gérées par le client dans le Guide du développeur AWS Key Management Service .
Pour activer les clés gérées par le client AWS IoT Core, procédez comme suit :
Rubriques
Étape 1 : Créer une clé gérée par le client
Vous pouvez créer une clé symétrique gérée par le client à l'aide de la AWS KMS console ou des commandes AWS KMS CLI. Le keySpec must SYMMETRIC_DEFAULT et le keyUsage must êtreENCRYPT_DECRYPT.
Note
AWS IoT Core ne prend en charge que AWS KMS les SYMMETRIC_DEFAULT clés avec des spécifications et une utilisation des ENCRYPT_DECRYPT clés pour les clés gérées par le client.
Voici un exemple de AWS CLI commande permettant de créer une clé KMS qui peut être utilisée AWS IoT Core pour les clés gérées par le client.
aws kms create-key --key-spec SYMMETRIC_DEFAULT --key-usage ENCRYPT_DECRYPT --region us-west-2
Voici un exemple de sortie de la commande.
{ "KeyMetadata": { "AWSAccountId": "111122223333", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": "2024-09-19T11:45:23.982000-07:00", "Enabled": true, "Description": "", "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "Origin": "AWS_KMS", "KeyManager": "CUSTOMER", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "KeySpec": "SYMMETRIC_DEFAULT", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "MultiRegion": false } }
Pour plus d'informations, consultez la section Création d'une clé symétrique gérée par le client dans le Guide du AWS Key Management Service développeur.
Stratégie de clé
Lorsque vous créez une clé gérée par le client, vous pouvez spécifier une politique de clé. Les stratégies de clés contrôlent l’accès à votre clé gérée par le client. Chaque clé gérée par le client doit avoir exactement une stratégie de clé, qui contient des instructions qui déterminent les personnes pouvant utiliser la clé et comment elles peuvent l’utiliser. Pour plus d'informations, consultez les principales politiques du Guide du AWS Key Management Service développeur.
AWS IoT Core utilise un rôle IAM dans votre compte pour accéder à votre clé gérée par le client. Si vous utilisez une politique de clé personnalisée, assurez-vous que le rôle IAM créé sur cette clé dispose des autorisations suivantes :
kms:DescribeKeykms:Decryptkms:Encryptkms:GenerateDataKeyWithoutPlaintextkms:ReEncryptTokms:ReEncryptFrom
Étape 2 : Création d'un rôle IAM à attribuer AWS IoT Core autorisations d'utilisation de la clé KMS
AWS IoT Core Pour utiliser la clé KMS que vous avez créée pour chiffrer vos données au repos, vous devez également créer un rôle IAM dans votre compte, qui AWS IoT Core peut supposer d'accéder à la clé KMS.
Le rôle doit respecter la politique de confiance suivante pour AWS IoT Core pouvoir assumer le rôle.
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:iot:us-west-2:111122223333:*" } } } }
Assurez-vous que les politiques IAM associées au rôle IAM disposent des autorisations suivantes sur la clé KMS :
kms:DescribeKeykms:Decryptkms:Encryptkms:GenerateDataKeyWithoutPlaintextkms:ReEncryptTokms:ReEncryptFrom
Voici un exemple de politique IAM avec les autorisations requises pour les clés gérées par le client.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowIoTToAccessKMSResource", "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:Decrypt", "kms:Encrypt", "kms:ReEncryptTo", "kms:ReEncryptFrom", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": [ "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" ], "Condition": { "StringEquals": { "kms:EncryptionContext:aws-crypto-ec:vendor": "iot.amazonaws.com" } } } ] }
Pour plus d'informations, voir Créer un rôle pour déléguer des autorisations à un utilisateur IAM dans le Guide de l'Gestion des identités et des accès AWS utilisateur.
Étape 3 : Optez pour les clés gérées par le client dans AWS IoT Core
Après avoir effectué toutes les étapes précédentes, exécutez la commande update-encryption-configuration CLI pour vous inscrire à l'aide des clés gérées par le client AWS IoT Core. Lorsque vous optez pour les clés gérées par le client, toutes les AWS IoT Core ressources de votre AWS compte sont cryptées à l'aide de la AWS KMS clé spécifiée.
-
Pour activer les clés gérées par le client lors de AWS IoT Core l'utilisation AWS CLI, exécutez la commande
update-encryption-configurationCLI.aws iot update-encryption-configuration --encryption-type "CUSTOMER_MANAGED_KMS_KEY" \ --kms-access-role-arn "arn:aws:iam::111122223333:role/myrole" \ --kms-key-arn "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" --region us-west-2 -
Pour vérifier que les clés gérées par le client AWS IoT Core sont AWS CLI utilisées, exécutez la commande
describe-encryption-configurationCLI :aws iot describe-encryption-configuration --region us-west-2Si vous avez activé les clés gérées par le client dans AWS IoT Core, le résultat peut ressembler à ce qui suit :
{ "encryptionType": "CUSTOMER_MANAGED_KMS_KEY", "kmsKeyArn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "kmsAccessRoleArn": "arn:aws:iam::111122223333:role/myrole", "configurationDetails": { "configurationStatus": "HEALTHY" }, "lastModifiedDate": "2024-09-26T22:01:02.365000-07:00" }Le
lastModifiedDatechamp indique la date à laquelle la configuration de chiffrement a été mise à jour pour la dernière fois.Si vous n'avez pas activé les clés gérées par le client, le résultat peut ressembler à ce qui suit :
{ "encryptionType": "AWS_OWNED_KMS_KEY", "lastModifiedDate": "2024-09-26T22:01:02.365000-07:00" }
Étape 4 : autorisations supplémentaires requises pour AWS IoT Core opérations sur le plan de contrôle
Une fois que vous avez activé les clés gérées par le client, toutes les AWS IoT Core ressources appartenant à votre AWS compte sont cryptées à l'aide de la clé KMS fournie. Toutes les opérations du plan de contrôle nécessitent désormais que l'appelant dispose d'kms:Decryptautorisations sur la clé KMS en plus des autorisations requises pour l'opération spécifique sur la AWS IoT Core ressource. Si l'appelant n'a pas d'kms:Decryptautorisation et qu'il effectue un appel d'API nécessitant le chiffrement ou le déchiffrement des données (par exemple,GetPolicy), il recevra un. UnauthorizedException
Par exemple, lorsque vous appelezGetPolicy, vous avez besoin des deux iot:GetPolicy et kms:Decrypt des autorisations sur votre clé KMS gérée par le client pour que l'appel d'API réussisse.
Note
Lorsque vous mettez à jour des utilisateurs ou des rôles IAM afin d'accorder des AWS KMS autorisations sur la clé utilisée pour votre configuration de chiffrement, assurez-vous que la politique de clé KMS accorde également les autorisations requises aux utilisateurs ou rôles IAM respectifs.
AWS KMS autorisations pour UpdateEncryptionConfiguration
L'appel d'UpdateEncryptionConfigurationAPI nécessite les AWS KMS autorisations suivantes sur la clé KMS pour pouvoir accéder aux clés gérées par le client ou modifier la configuration des clés :
kms:DescribeKeykms:Decryptkms:Encryptkms:GenerateDataKeyWithoutPlaintextkms:ReEncryptTokms:ReEncryptFrom
AWS KMS autorisations pour toutes les autres API du plan de contrôle
La plupart des API du plan de contrôle nécessitent kms:Decrypt des autorisations lorsque les clés gérées par le client sont activées. Certaines API ne nécessitent toutefois pas ces autorisations supplémentaires :
- API ne nécessitant pas d' AWS KMS autorisations
-
Les
Delete*APIList*et ne font pas partie de ce compartiment. Les clients peuvent toujours invoquer n'importe quelle APIList*ou une API du plan deDelete*contrôle et ces appels d'API aboutiront même si l'appelant n'kms:Decrypten a pas l'autorisation. Ces appels d'API aboutiront même si la clé gérée par votre client n'est pas saineList*et queDelete*les API n'effectuent aucun déchiffrement.API List* : toutes les opérations de référencement (par exemple,,
ListThingsListPolicies,ListCertificates)API Supprimer* : toutes les opérations de suppression (par exemple,,
DeleteThing,DeletePolicy)DeleteCertificate
Étape 5 : Gestion des clés
AWS IoT Core vérifie périodiquement la configuration des clés gérées par le client pour s'assurer que les opérations de chiffrement et de déchiffrement ne sont pas affectées. Ces contrôles de santé sont exécutés toutes les minutes et vérifient AWS IoT Core la capacité de l'utilisateur à accéder à la AWS KMS clé et au rôle IAM associé et à les utiliser pour les opérations de chiffrement et de déchiffrement.
- SAIN
-
AWS IoT Core peut accéder à la AWS KMS clé avec succès via le rôle IAM spécifié et effectuer des encryption/decryption opérations. Tous les composants fonctionnent correctement.
- NON SAIN
-
AWS IoT Core Impossible d'accéder à la AWS KMS clé ou de l'utiliser. Cela empêche de nouvelles opérations de chiffrement et peut avoir un impact sur les fonctionnalités du service. Le
errorCodechamp indique si le problème est lié à la clé ou au rôle IAM.
Les actions des clients qui peuvent avoir un impact sur leur état de santé
Plusieurs actions du client peuvent faire passer l'état de santé clé de HEALTHY à UNHEALTHY :
- Key-related actions
-
Supprimer une AWS KMS clé : lorsque vous planifiez la suppression d'une clé, son
Pending deletionstatut est défini et ne peut pas être utilisée.Désactivation d'une AWS KMS clé — Lorsque vous désactivez une clé KMS, elle ne peut plus être utilisée pour les opérations de chiffrement/déchiffrement
Clé de planification pour la suppression — La clé devient inutilisable une fois la suppression terminée
Modification de la politique relative aux clés — Suppression des autorisations d' AWS IoT Core accès nécessaires
Modification des autorisations d'utilisation des clés — Restriction AWS KMS des actions requises
- Actions liées aux rôles IAM
-
Suppression du rôle IAM : AWS IoT Core impossible d'assumer le rôle pour accéder à la clé
Modification des autorisations de rôle — Suppression AWS KMS des autorisations requises de la politique de rôle
Modifier la politique de confiance — Empêcher le AWS IoT Core service de jouer son rôle
Ajouter des conditions restrictives — Conditions qui AWS IoT Core empêchent l'utilisation du rôle
- Account-level actions
-
Cross-account modifications de l'accès aux clés — Modification des autorisations pour les clés de différents comptes
Politiques de contrôle des services (SCP) : Organization-level politiques qui limitent AWS KMS l'accès
Account-level Politiques IAM : politiques qui annulent ou entrent en conflit avec l'accès par clé
Important
Toute modification des AWS KMS clés, des rôles IAM ou des politiques utilisés par AWS IoT Core doit d'abord être testée dans les environnements de développement. Surveillez de près l'état de santé des clés après avoir apporté des modifications afin de vous assurer que les AWS IoT Core fonctionnalités ne sont pas affectées.
Mettre à jour la configuration de chiffrement
Mettez à jour votre configuration de chiffrement AWS IoT Core pour passer d'une clé gérée par le client à une autre, ou entre les clés AWS détenues et les clés gérées par le client.
Pour modifier la configuration en utilisant une autre clé gérée par le client, procédez comme suit :
-
Créez une nouvelle clé gérée par le client en suivant les étapes décrites dansÉtape 1 : Créer une clé gérée par le client.
-
Mettez à jour votre politique de rôle IAM afin d'inclure des autorisations pour les anciennes et les nouvelles clés pendant la période de mise à jour.
-
Mettez à jour votre configuration de chiffrement pour utiliser la nouvelle clé :
aws iot update-encryption-configuration --encryption-type "CUSTOMER_MANAGED_KMS_KEY" \ --kms-access-role-arn "arn:aws:iam::111122223333:role/myrole" \ --kms-key-arn "arn:aws:kms:us-west-2:111122223333:key/new-key-id"
Pour modifier la configuration des clés gérées par le client vers des clés AWS détenues, procédez comme suit :
aws iot update-encryption-configuration --encryption-type "AWS_OWNED_KMS_KEY"
Note
Lors de la mise à jour de la configuration de chiffrement pour les nouvelles clés gérées par le client, assurez-vous que les anciennes et les nouvelles clés restent accessibles pour que l'opération réussisse.
Scénarios de défaillance courants et impacts
Le tableau suivant décrit les scénarios de défaillance courants lorsque des clés sont supprimées ou désactivées :
| Scénario | Impact immédiat | Long-term Conséquences |
|---|---|---|
|
Clé désactivée |
Toutes les nouvelles encryption/decryption opérations échouent immédiatement |
Interruption de service jusqu'à ce que la clé soit réactivée ou remplacée |
|
Clé dont la suppression est prévue |
L'état de la clé passe à En attente de suppression et toutes les encryption/decryption opérations échoueront |
Panne de service automatique une fois la suppression terminée |
|
Clé supprimée définitivement |
Défaillance immédiate et permanente de toutes les opérations |
Perte de données permanente et impossibilité de récupérer les données cryptées |
|
Politique clé modifiée de manière incorrecte |
AWS IoT Core perd les autorisations d'accès à la clé |
Pannes de service jusqu'à ce que la politique soit corrigée |
|
Rôle IAM supprimé |
AWS IoT Core Impossible d'assumer le rôle de clé d'accès |
Défaillance complète du service de chiffrement |
|
Le rôle IAM n'est pas correctement modifié |
AWS IoT Core Impossible d'assumer le rôle ou d'utiliser le rôle pour accéder à la clé |
Pannes de service jusqu'à ce que le rôle IAM soit corrigé |
Prévention et bonnes pratiques
Pour éviter la suppression ou la désactivation accidentelles des clés et minimiser le risque de pannes de service :
- Mettre en œuvre des politiques de cycle de vie
-
Établissez des procédures claires pour la création, la rotation et le retrait des clés. Documentez quelles clés sont utilisées par quelles AWS IoT Core ressources et tenez à jour un inventaire des clés actives.
- Utiliser les politiques IAM pour limiter la suppression de clés
-
Créez des politiques IAM qui empêchent les utilisateurs non autorisés de supprimer ou de désactiver des clés de chiffrement critiques. Utilisez des conditions pour demander une approbation supplémentaire pour les opérations de suppression de clés.
- Activer la CloudTrail journalisation
-
Surveillez toutes les opérations AWS KMS clés CloudTrail pour détecter les activités de gestion des clés non autorisées ou accidentelles. Configurez des alertes en cas de suppression de clé, de désactivation ou de modification de politique.
- Testez les procédures de remplacement des clés
-
Testez régulièrement vos procédures de remplacement des clés dans des environnements hors production afin de vous assurer de pouvoir vous remettre rapidement des défaillances liées aux clés.
- Maintenez les sauvegardes des clés
-
Bien que vous ne puissiez pas exporter de matériel AWS KMS clé, conservez des enregistrements détaillés des principaux ARN, des politiques et des AWS IoT Core configurations associées afin de faciliter le remplacement rapide des clés si nécessaire.
- Surveillez l'état de santé principal
-
Surveillez en permanence la
CMK.Healthmétrique et configurez des alertes automatisées pour les principaux changements de l'état de santé. Mettez en œuvre des réponses automatisées pour résoudre rapidement les principaux problèmes liés à ce problème.
Important
Testez toujours les principales procédures de mise à jour dans les environnements de développement avant de les implémenter en production. Disposez d'un plan de restauration documenté et assurez-vous que les principales procédures de remplacement peuvent être exécutées rapidement en cas d'urgence.
Étape 6 : Surveillance de l'état de santé des principaux
Dans le cadre des contrôles AWS IoT Core périodiques, des CloudWatch métriques et des journaux sont émis pour fournir une visibilité sur l'état de santé de la configuration des clés gérées par le client.
AWS IoT Core émet la CMK.Health métrique CloudWatch au moins une fois par minute. La métrique fournit des informations sur l'état de santé des clés gérées par le client utilisées AWS IoT Core pour chiffrer et déchiffrer vos données.
La CMK.Health métrique peut avoir les valeurs suivantes :
La valeur est la
1suivante : AWS IoT Core est capable d'utiliser les clés de chiffrement avec succès pour chiffrer et déchiffrer vos données.La valeur est la
0suivante : AWS IoT Core ne peut pas utiliser les clés de chiffrement pour chiffrer et déchiffrer vos données.
AWS IoT Core émet également des journaux AWS IoT V2 lorsque l'état de santé des clés de chiffrement change. Ces journaux fournissent des informations supplémentaires sur la mise à jour de l'état de santé. Pour consulter ces journaux, vous devez activer les journaux AWS IoT V2. Les HEALTHY journaux sont émis au INFO niveau, et les UNHEALTHY journaux sont émis au ERROR niveau. Pour plus d'informations sur les niveaux de journalisation, voir Niveaux de journalisation.
Les exemples suivants sont des entrées de CloudWatch journal émises par AWS IoT Core pour indiquer la mise à jour de l'état de santé des clés gérées par le client.
Pour suivre efficacement les principaux changements de l'état de santé et y répondre :
-
Configurez CloudWatch des alarmes pour la
CMK.Healthmétrique :aws cloudwatch put-metric-alarm --region us-west-2 \ --alarm-name "IoTCore-CMK-Health-Alert" \ --alarm-description "Alert when IoT Core CMK health is unhealthy" \ --metric-name "CMK.Health" \ --namespace "AWS/IoT" \ --statistic "Minimum" \ --period 300 \ --evaluation-periods 1 \ --threshold 1 \ --comparison-operator "LessThanThreshold" \ --alarm-actions "arn:aws:sns:us-west-2:111122223333:iot-alerts" -
Activez la journalisation AWS IoT V2 pour capturer les événements de modification de l'état de santé détaillés avec des codes d'erreur et des messages.
-
Vérifiez l'état de la configuration pour résoudre les problèmes :
aws iot describe-encryption-configuration --region us-west-2 -
Examinez le statut UNSHEALTHY en examinant le
errorCodechamp :KMS_KEY_VALIDATION_ERROR— Problème lié à la AWS KMS clé (désactivée, supprimée ou problèmes de politique)ROLE_VALIDATION_ERROR— Problème lié au rôle IAM (suppression, problèmes de politique ou problèmes de confiance)
De la mauvaise santé à la santé
Lorsque l'état des clés de chiffrement est mis à jour de UNHEALTHY àHEALTHY, AWS IoT Core émet un message de journal AWS IoT V2 au format suivant.
{ "timestamp": "2017-08-10 15:37:23.476", "logLevel": "INFO", "traceId": "8421693b-f4f0-4e4a-9235-0cff8bab897d", "accountId": "111122223333", "status": "SUCCESS", "cmkStatus": "HEALTHY", "kmsKeyArn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "kmsAccessRoleArn": "arn:aws:iam::111122223333:role/myrole", "eventType": "CmkHealthCheck" }
Du sain au mauvais pour la santé
Lorsque l'état des clés de chiffrement est mis à jour de HEALTHY àUNHEALTHY, AWS IoT Core émet un message de journal AWS IoT V2 au format suivant.
{ "timestamp": "2017-08-10 15:37:23.476", "logLevel": "ERROR", "traceId": "8421693b-f4f0-4e4a-9235-0cff8bab897d", "accountId": "111122223333", "status": "FAILURE", "cmkStatus": "UNHEALTHY", "errorCode": "KMS_KEY_VALIDATION_ERROR / ROLE_VALIDATION_ERROR", "errorMessage": "Error message on why there was a failure", "kmsKeyArn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "kmsAccessRoleArn": "arn:aws:iam::111122223333:role/myrole", "eventType": "CmkHealthCheck" }
Avertissement
Lorsque l'état de santé devient UNHEALTHY critique, AWS IoT Core les opérations échouent immédiatement. Dans ce cas, passez en revue vos configurations clés, vos autorisations de rôle IAM et vos politiques. Surveillez la CMK.Health métrique pour détecter les changements de statut. Si les opérations continuent d'échouer après avoir revu vos configurations, contactez votre responsable de compte ou le centre de AWS support
Surveillance de l'état de rotation des clés des branches
AWS IoT Core utilise une structure de clé hiérarchique pour chiffrer vos données. Au sommet de cette hiérarchie se trouve votre AWS KMS clé (la clé gérée par le client que vous configurez). En dessous, se trouvent AWS IoT Core les clés de branche, c'est-à-dire les clés internes dérivées de votre AWS KMS clé. AWS IoT Core utilise ensuite ces clés de branche pour générer des clés d'encapsulation uniques, qui effectuent le chiffrement et le déchiffrement effectifs de vos données. Cette approche en couches limite la portée d'une clé unique et suit les meilleures pratiques de AWS chiffrement. AWS IoT Core gère les clés de branche en tant que détail d'implémentation interne, distinct de votre rotation des AWS KMS clés, qui AWS KMS gère directement. Pour plus d'informations, voir Faire pivoter votre clé de branche active.
AWS IoT Core fait alterner les clés des succursales chaque année en tant que meilleure pratique de sécurité. La rotation crée une nouvelle version de clé de branche active tout en préservant les versions précédentes pour déchiffrer les données existantes. Cette rotation nécessite l'kms:Encryptautorisation du rôle IAM associé à la configuration des clés gérées par le client. AWS IoT Core émet la CMK.BranchKeyRotationHealth métrique CloudWatch une fois par minute pour indiquer si votre rôle AWS KMS d'accès dispose des autorisations requises pour la rotation.
La CMK.BranchKeyRotationHealth métrique peut avoir les valeurs suivantes :
La valeur est la suivante
1: Le rôle AWS KMS d'accès dispose de l'kms:Encryptautorisation requise et la rotation des clés de branche peut se dérouler normalement.La valeur est la suivante
0: Le rôle AWS KMS d'accès n'a pas l'kms:Encryptautorisation requise et la rotation des clés de branche ne peut pas être effectuée. Vos opérations de déchiffrement existantes continueront de fonctionner normalement, mais AWS IoT Core vous ne pourrez pas alterner les clés de vos succursales tant que l'autorisation ne sera pas rétablie. Ajoutezkms:Encryptà votre rôle AWS KMS d'accès pour réactiver la rotation. Pour obtenir la liste complète des autorisations requises, consultez la section Politique relative aux clés.
Note
Une valeur de 0 n'indique pas une interruption de vos AWS IoT Core opérations en cours. Vos données restent cryptées et accessibles. Cependant, vous devez mettre à jour rapidement les autorisations de votre rôle d' AWS KMS accès afin de vous assurer que les clés de branche peuvent être remplacées dans les délais prévus.
Pour être averti lorsque la rotation des touches de branche ne peut pas avoir lieu, configurez une CloudWatch alarme pour la CMK.BranchKeyRotationHealth métrique :
aws cloudwatch put-metric-alarm --region us-west-2 \ --alarm-name "IoTCore-CMK-BranchKeyRotationHealth-Alert" \ --alarm-description "Alert when IoT Core branch key rotation health is degraded" \ --metric-name "CMK.BranchKeyRotationHealth" \ --namespace "AWS/IoT" \ --statistic "Minimum" \ --period 300 \ --evaluation-periods 1 \ --threshold 1 \ --comparison-operator "LessThanThreshold" \ --alarm-actions "arn:aws:sns:us-west-2:111122223333:iot-alerts"
AWS CloudTrail events
Vous pouvez également surveiller AWS IoT Core l'utilisation de la clé KMS pour les opérations de chiffrement et de déchiffrement. AWS IoT Core effectueraDescribeKey, DecryptReEncrypt, et GenerateDataKeyWithoutPlaintext des opérations sur votre clé KMS pour crypter/déchiffrer les données appartenant à votre AWS compte stockées au repos.
Il y a CloudTrail des événements pour DescribeKeyDecrypt,ReEncrypt, etGenerateDataKeyWithoutPlaintext. Ces événements surveillent AWS KMS les opérations appelées AWS IoT Core à accéder aux données chiffrées par la clé gérée par votre client.
Exemple de déchiffrement
{ "eventVersion": "1.09", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "*********************", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "userName": "*****" }, "attributes": { "creationDate": "2024-09-16T20:23:39Z", "mfaAuthenticated": "false" } }, "invokedBy": "iot.amazonaws.com" }, "eventTime": "2024-09-16T20:32:48Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "iot.amazonaws.com", "userAgent": "iot.amazonaws.com", "requestParameters": { "encryptionContext": { "kms-arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "aws-crypto-ec:vendor": "iot.amazonaws.com", "branch-key-id": "111122223333", "type": "branch:ACTIVE" }, "encryptionAlgorithm": "SYMMETRIC_DEFAULT", "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, "responseElements": null, "requestID": "1afb6d98-8388-455d-8b48-e62c9e0cf7f4", "eventID": "b59a5f16-0d98-46d8-a590-0e040a48b39b", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }