Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Datenverschlüsselung im Ruhezustand in AWS IoT Core
Standardmäßig werden alle AWS IoT Core Daten im Ruhezustand mit AWS eigenen Schlüsseln verschlüsselt. AWS IoT Core unterstützt auch symmetrische, vom Kunden verwaltete Schlüssel von AWS Key Management Service (AWS KMS). Mit vom Kunden verwalteten Schlüsseln können Sie die AWS KMS Schlüssel in Ihrem AWS Konto erstellen, besitzen und verwalten. AWS IoT Core verwendet Ihre KMS-Schlüssel, um Ihre Daten im Ruhezustand zu verschlüsseln. Sie haben die volle Kontrolle über diese KMS-Schlüssel, einschließlich der Erstellung und Verwaltung ihrer wichtigsten Richtlinien. Sie können auch IAM-Richtlinien für die Rollen konfigurieren, die Zugriff darauf haben, AWS KMS um die Berechtigungen für diese Schlüssel zu kontrollieren.
AWS eigene Schlüssel
AWS Eigene Schlüssel sind eine Sammlung von KMS-Schlüsseln, die ein AWS Dienst besitzt und verwaltet, sodass sie in mehreren AWS Konten verwendet werden können. AWS Dienste können AWS eigene Schlüssel verwenden, um Ihre Daten zu schützen. AWS IoT Core Verschlüsselt ruhende Daten standardmäßig mit AWS eigenen Schlüsseln. Diese Schlüssel werden vom Dienst verwaltet. Sie können AWS eigene Schlüssel nicht anzeigen, verwalten oder verwenden. Sie müssen jedoch keine Maßnahmen ergreifen, um diese Schlüssel zu schützen.
Weitere Informationen zu AWS eigenen Schlüsseln finden Sie unter AWS Eigene Schlüssel im AWS Key Management Service Entwicklerhandbuch.
Kundenverwaltete Schlüssel
Von Kunden verwaltete Schlüssel sind KMS-Schlüssel in Ihrem AWS Konto, die Sie erstellen, besitzen und verwalten. Sie haben die volle Kontrolle über diese AWS KMS Schlüssel, einschließlich der Erstellung und Verwaltung ihrer wichtigsten Richtlinien. Sie können auch IAM-Richtlinien für die Rollen konfigurieren, die Zugriff darauf haben, AWS KMS um die Berechtigungen für diese Schlüssel zu kontrollieren. Sie können so konfigurieren AWS IoT Core , dass Ihre Daten mithilfe von kundenverwalteten KMS-Schlüsseln verschlüsselt werden.
Weitere Informationen über kundenverwaltete Schlüssel finden Sie unter Kundenverwaltete Schlüssel im AWS Key Management Service Developer Guide.
Gehen Sie wie folgt vor, um sich für vom Kunden verwaltete Schlüssel anzumelden: AWS IoT Core
Schritt 1: Erstellen eines kundenverwalteten Schlüssels
Sie können einen symmetrischen, vom Kunden verwalteten Schlüssel mithilfe der AWS KMS Konsole oder der AWS KMS CLI-Befehle erstellen. Das keySpec
muss sein SYMMETRIC_DEFAULT
und das keyUsage
muss sein. ENCRYPT_DECRYPT
Anmerkung
AWS IoT Core unterstützt nur AWS KMS Schlüssel mit SYMMETRIC_DEFAULT
Schlüsselspezifikation und ENCRYPT_DECRYPT
Schlüsselverwendung für vom Kunden verwaltete Schlüssel.
Im Folgenden finden Sie einen AWS CLI Beispielbefehl zum Erstellen eines KMS-Schlüssels, der zusammen mit AWS IoT Core vom Kunden verwalteten Schlüsseln verwendet werden kann.
aws kms create-key --key-spec SYMMETRIC_DEFAULT --key-usage ENCRYPT_DECRYPT --region us-west-2
Im Folgenden finden Sie ein Beispiel für die Ausgabe des Befehls.
{ "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 } }
Weitere Informationen finden Sie unter Creating a symmetric customer managed key im AWS Key Management Service Developer Guide.
Schlüsselrichtlinie
Bei der Erstellung eines vom Kunden verwalteten Schlüssels können Sie eine Schlüsselrichtlinie angeben. Schlüsselrichtlinien steuern den Zugriff auf den vom Kunden verwalteten Schlüssel. Jeder vom Kunden verwaltete Schlüssel muss über genau eine Schlüsselrichtlinie verfügen, die aussagt, wer den Schlüssel wie verwenden kann. Weitere Informationen finden Sie unter Wichtige Richtlinien im AWS Key Management Service Entwicklerhandbuch.
AWS IoT Core verwendet eine IAM-Rolle in Ihrem Konto, um auf Ihren vom Kunden verwalteten Schlüssel zuzugreifen. Wenn Sie eine benutzerdefinierte Schlüsselrichtlinie verwenden, stellen Sie sicher, dass die für diesen Schlüssel erstellte IAM-Rolle über die folgenden Berechtigungen verfügt:
kms:DescribeKey
kms:Decrypt
kms:Encrypt
kms:GenerateDataKeyWithoutPlaintext
kms:ReEncryptTo
kms:ReEncryptFrom
Schritt 2: Erstellen Sie eine IAM-Rolle, um AWS IoT Core Berechtigungen zur Verwendung des KMS-Schlüssels zu erteilen
AWS IoT Core Um den von Ihnen erstellten KMS-Schlüssel zur Verschlüsselung Ihrer Daten im Ruhezustand verwenden zu können, müssen Sie auch eine IAM-Rolle in Ihrem Konto erstellen, die davon ausgehen AWS IoT Core kann, auf den KMS-Schlüssel zuzugreifen.
Die Rolle muss über die folgende Vertrauensrichtlinie verfügen, damit sie diese AWS IoT Core Rolle übernehmen kann.
{ "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:*" } } } }
Stellen Sie sicher, dass die mit der IAM-Rolle verknüpften IAM-Richtlinien über die folgenden Berechtigungen für den KMS-Schlüssel verfügen:
kms:DescribeKey
kms:Decrypt
kms:Encrypt
kms:GenerateDataKeyWithoutPlaintext
kms:ReEncryptTo
kms:ReEncryptFrom
Im Folgenden finden Sie ein Beispiel für eine IAM-Richtlinie mit den erforderlichen Berechtigungen für vom Kunden verwaltete Schlüssel.
{ "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" } } } ] }
Weitere Informationen finden Sie im Benutzerhandbuch unter Erstellen einer Rolle zum Delegieren von Berechtigungen an einen IAM-Benutzer.AWS Identity and Access Management
Schritt 3: Melden Sie sich für vom Kunden verwaltete Schlüssel an AWS IoT Core
Nachdem Sie alle vorherigen Schritte abgeschlossen haben, führen Sie den update-encryption-configuration
CLI-Befehl aus, um sich mit vom Kunden verwalteten Schlüsseln anzumelden AWS IoT Core. Wenn Sie sich für vom Kunden verwaltete Schlüssel entscheiden, werden alle AWS IoT Core Ressourcen in Ihrem AWS Konto mit dem angegebenen AWS KMS Schlüssel verschlüsselt.
-
Führen Sie den
update-encryption-configuration
CLI-Befehl aus AWS CLI, um sich für die AWS IoT Core Verwendung von vom Kunden verwalteten Schlüsseln zu entscheiden.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
-
Führen Sie den
describe-encryption-configuration
CLI-Befehl aus, um zu überprüfen AWS CLI, ob vom Kunden verwaltete Schlüssel AWS IoT Core verwendet werden:aws iot describe-encryption-configuration --region us-west-2
Wenn Sie vom Kunden verwaltete Schlüssel aktiviert haben AWS IoT Core, kann die Ausgabe wie folgt aussehen:
{ "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" }
Das
lastModifiedDate
Feld gibt das Datum an, an dem die Verschlüsselungskonfiguration zuletzt aktualisiert wurde.Wenn Sie vom Kunden verwaltete Schlüssel nicht aktiviert haben, kann die Ausgabe wie folgt aussehen:
{ "encryptionType": "AWS_OWNED_KMS_KEY", "lastModifiedDate": "2024-09-26T22:01:02.365000-07:00" }
Schritt 4: Für den Betrieb der AWS IoT Core Steuerungsebene sind zusätzliche Berechtigungen erforderlich
Nachdem Sie sich für vom Kunden verwaltete Schlüssel entschieden haben, werden alle AWS IoT Core Ressourcen, die zu Ihrem AWS Konto gehören, mit dem bereitgestellten KMS-Schlüssel verschlüsselt. Für alle Operationen auf der Steuerungsebene benötigt der Anrufer nun zusätzlich zu den für den jeweiligen Vorgang auf der AWS IoT Core Ressource erforderlichen Berechtigungen auch Berechtigungen für den KMS-Schlüssel. kms:Decrypt
Wenn der Aufrufer nicht über die kms:Decrypt
entsprechende Berechtigung verfügt und einen API-Aufruf tätigt, für den Daten ver- oder entschlüsselt werden müssen (z. B.GetPolicy
), erhält er eine. UnauthorizedException
Wenn Sie beispielsweise anrufenGetPolicy
, benötigen Sie iot:GetPolicy
sowohl beides als auch kms:Decrypt
Berechtigungen für Ihren vom Kunden verwalteten KMS-Schlüssel, damit der API-Aufruf erfolgreich ist.
Anmerkung
Wenn Sie IAM-Benutzer oder -Rollen aktualisieren, um AWS KMS Berechtigungen für den für Ihre Verschlüsselungskonfiguration verwendeten Schlüssel zu gewähren, stellen Sie sicher, dass die KMS-Schlüsselrichtlinie auch den jeweiligen IAM-Benutzern oder -Rollen die erforderlichen Berechtigungen gewährt.
AWS KMS Berechtigungen für UpdateEncryptionConfiguration
Für den UpdateEncryptionConfiguration
API-Aufruf sind die folgenden AWS KMS Berechtigungen für den KMS-Schlüssel erforderlich, damit Sie sich für vom Kunden verwaltete Schlüssel entscheiden oder die Schlüsselkonfiguration ändern können:
kms:DescribeKey
kms:Decrypt
kms:Encrypt
kms:GenerateDataKeyWithoutPlaintext
kms:ReEncryptTo
kms:ReEncryptFrom
AWS KMS Berechtigungen für alle anderen Steuerungsebenen APIs
Für die meisten APIs Steuerungsebenen sind kms:Decrypt
Berechtigungen erforderlich, wenn vom Kunden verwaltete Schlüssel aktiviert sind. Für einige APIs sind diese zusätzlichen Berechtigungen jedoch nicht erforderlich:
- APIs für die keine AWS KMS Berechtigungen erforderlich sind
-
Die
List*
und fallenDelete*
APIs nicht in diesen Eimer. Kunden können jederzeit eine beliebige APIList*
oder eine API aufDelete*
Steuerungsebene aufrufen, und diese API-Aufrufe würden auch dann erfolgreich sein, wenn der Aufrufer nicht überkms:Decrypt
die entsprechende Genehmigung verfügt. Diese API-Aufrufe sind auch dann erfolgreich, wenn Ihr vom Kunden verwalteter Schlüssel fehlerhaft istList*
undDelete*
APIs keine Entschlüsselung erfolgt.List* APIs — Alle Auflistungsvorgänge (z. B.,,
ListThings
)ListPolicies
ListCertificates
Löschen* APIs — Alle Löschvorgänge (zum Beispiel,,,
DeleteThing
)DeletePolicy
DeleteCertificate
Schritt 5: Schlüssel verwalten
AWS IoT Core überprüft regelmäßig die vom Kunden verwaltete Schlüsselkonfiguration, um sicherzustellen, dass die Verschlüsselungs- und Entschlüsselungsvorgänge nicht beeinträchtigt werden. Diese Integritätsprüfungen werden einmal pro Minute durchgeführt und überprüfen AWS IoT Core, ob auf den Schlüssel und die zugehörige IAM-Rolle zugegriffen und diese für Verschlüsselungs- und AWS KMS Entschlüsselungsvorgänge verwendet werden kann.
- HEALTHY
-
AWS IoT Core kann über die angegebene IAM-Rolle erfolgreich auf den AWS KMS Schlüssel zugreifen und Operationen ausführen. encryption/decryption Alle Komponenten funktionieren einwandfrei.
- UNHEALTHY
-
AWS IoT Core kann nicht auf den AWS KMS Schlüssel zugreifen oder ihn verwenden. Dadurch werden neue Verschlüsselungsvorgänge verhindert und die Funktionalität des Dienstes kann beeinträchtigt werden. Das
errorCode
Feld gibt an, ob das Problem mit dem Schlüssel oder der IAM-Rolle zusammenhängt.
Kundenaktionen, die sich auf den Zustand wichtiger Schlüssel auswirken können
Verschiedene Kundenaktionen können dazu führen, dass sich der Status des Schlüsselzustands von HEALTHY
zu ändertUNHEALTHY
:
- Wichtige Aktionen
-
Löschen eines AWS KMS Schlüssels — Wenn Sie das Löschen eines Schlüssels planen, befindet er sich in einem
Pending deletion
Status und kann nicht verwendet werdenAWS KMS Schlüssel deaktivieren — Wenn Sie einen KMS-Schlüssel deaktivieren, kann er nicht mehr für Verschlüsselungs-/Entschlüsselungsvorgänge verwendet werden
Schlüssel für das Löschen planen — Der Schlüssel wird unbrauchbar, wenn der Löschvorgang abgeschlossen ist
Änderung der Schlüsselrichtlinie — Entfernen der erforderlichen Zugriffsberechtigungen AWS IoT Core
Ändern der Berechtigungen zur Schlüsselnutzung — Einschränkung der erforderlichen Aktionen AWS KMS
- Rollenbezogene IAM-Aktionen
-
Löschen der IAM-Rolle — es AWS IoT Core kann nicht angenommen werden, dass die Rolle auf den Schlüssel zugreift
Rollenberechtigungen ändern — Erforderliche AWS KMS Berechtigungen aus der Rollenrichtlinie entfernen
Änderung der Vertrauensrichtlinie — Verhindern, dass der AWS IoT Core Dienst die Rolle übernimmt
Hinzufügen einschränkender Bedingungen — Bedingungen, die die Nutzung der Rolle AWS IoT Core verhindern
- Aktionen auf Kontoebene
-
Kontoübergreifende Änderungen am Schlüsselzugriff — Ändern der Berechtigungen für Schlüssel in verschiedenen Konten
Richtlinien zur Servicesteuerung (SCPs) — Richtlinien auf Organisationsebene, die den Zugriff einschränken AWS KMS
IAM-Richtlinien auf Kontoebene — Richtlinien, die den Schlüsselzugriff außer Kraft setzen oder mit diesem in Konflikt geraten
Wichtig
Alle Änderungen an AWS KMS Schlüsseln, IAM-Rollen oder Richtlinien, die von verwendet werden, AWS IoT Core sollten zuerst in Entwicklungsumgebungen getestet werden. Überwachen Sie den Zustand der Schlüssel genau, nachdem Sie Änderungen vorgenommen haben, um sicherzustellen, dass die AWS IoT Core Funktionalität nicht beeinträchtigt wird.
Die Verschlüsselungskonfiguration wird aktualisiert
Aktualisieren Sie Ihre Verschlüsselungskonfiguration AWS IoT Core , um von einem vom Kunden verwalteten Schlüssel zu einem anderen oder zwischen AWS eigenen Schlüsseln und kundenverwalteten Schlüsseln zu wechseln.
So ändern Sie die Konfiguration auf einen anderen vom Kunden verwalteten Schlüssel:
-
Erstellen Sie einen neuen, vom Kunden verwalteten Schlüssel, indem Sie die Schritte unter befolgenSchritt 1: Erstellen eines kundenverwalteten Schlüssels.
-
Aktualisieren Sie Ihre IAM-Rollenrichtlinie so, dass sie während des Aktualisierungszeitraums Berechtigungen sowohl für die alten als auch für die neuen Schlüssel enthält.
-
Aktualisieren Sie Ihre Verschlüsselungskonfiguration, um den neuen Schlüssel zu verwenden:
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"
Wichtig
Behalten Sie bei Aktualisierungen der Verschlüsselungskonfiguration den Zugriff auf die vorherige IAM-Rolle und den KMS-Schlüssel für bis zu eine Stunde bei. Auf diese Weise kann AWS IoT Core der erneute Verschlüsselungsprozess abgeschlossen und gleichzeitig ein unterbrechungsfreier Datenzugriff gewährleistet werden. Überwachen Sie die CMK.Health
Metrik, um zu überprüfen, ob der Übergang erfolgreich war.
So ändern Sie die Konfiguration von vom Kunden verwalteten Schlüsseln zurück zu AWS eigenen Schlüsseln:
aws iot update-encryption-configuration --encryption-type "AWS_OWNED_KMS_KEY"
Anmerkung
Stellen Sie bei der Aktualisierung der Verschlüsselungskonfiguration für neue, vom Kunden verwaltete Schlüssel sicher, dass sowohl der alte als auch der neue Schlüssel weiterhin zugänglich sind, damit der Vorgang erfolgreich ist.
Häufige Ausfallszenarien und Auswirkungen
In der folgenden Tabelle werden häufige Fehlerszenarien beschrieben, wenn Schlüssel gelöscht oder deaktiviert werden:
Szenario | Sofortige Wirkung | Langfristige Folgen |
---|---|---|
Schlüssel deaktiviert |
Alle neuen encryption/decryption Operationen schlagen sofort fehl |
Betriebsunterbrechung, bis der Schlüssel wieder aktiviert oder ersetzt wird |
Der Schlüssel soll gelöscht werden |
Der Status des Schlüssels wird in „Ausstehend gelöscht“ geändert und alle encryption/decryption Vorgänge schlagen fehl |
Automatischer Dienstfehler, wenn der Löschvorgang abgeschlossen ist |
Der Schlüssel wurde dauerhaft gelöscht |
Sofortiger und dauerhafter Ausfall aller Operationen |
Dauerhafter Datenverlust und Unfähigkeit, verschlüsselte Daten wiederherzustellen |
Wichtige Richtlinie wurde falsch geändert |
AWS IoT Core verliert die Zugriffsberechtigungen für den Schlüssel |
Der Dienst schlägt fehl, bis die Richtlinie korrigiert ist |
Die IAM-Rolle wurde gelöscht |
AWS IoT Core kann die Rolle für den Zugriffsschlüssel nicht übernehmen |
Vollständiger Ausfall des Verschlüsselungsdienstes |
Die IAM-Rolle wurde falsch geändert |
AWS IoT Core kann keine Rolle übernehmen oder die Rolle für den Zugriff auf den Schlüssel verwenden |
Der Dienst schlägt fehl, bis die IAM-Rolle behoben ist |
Prävention und bewährte Verfahren
Um das versehentliche Löschen oder Deaktivieren von Schlüsseln zu verhindern und das Risiko von Serviceausfällen zu minimieren:
- Implementieren Sie wichtige Lebenszyklusrichtlinien
-
Legen Sie klare Verfahren für die Schaffung, Rotation und Außerbetriebnahme von Schlüsseln fest. Dokumentieren Sie, welche Schlüssel von welchen AWS IoT Core Ressourcen verwendet werden, und führen Sie ein Inventar der aktiven Schlüssel.
- Verwenden Sie IAM-Richtlinien, um das Löschen von Schlüsseln einzuschränken
-
Erstellen Sie IAM-Richtlinien, die verhindern, dass unbefugte Benutzer wichtige Verschlüsselungsschlüssel löschen oder deaktivieren. Verwenden Sie Bedingungen, um eine zusätzliche Genehmigung für das Löschen von Schlüsseln zu verlangen.
- Aktivieren Sie die CloudTrail Protokollierung
-
Überwachen Sie alle AWS KMS wichtigen Vorgänge, CloudTrail um unbefugte oder versehentliche Schlüsselverwaltungsaktivitäten zu erkennen. Richten Sie Warnmeldungen für das Löschen oder Deaktivieren von Schlüsseln oder für Richtlinienänderungen ein.
- Testen Sie die Verfahren zum Austausch von Schlüsseln
-
Testen Sie Ihre wichtigsten Austauschverfahren regelmäßig in Umgebungen außerhalb der Produktionsumgebung, um sicherzustellen, dass Sie nach Ausfällen im Zusammenhang mit Schlüsseln schnell wieder einsatzbereit sind.
- Pflegen Sie wichtige Backups
-
Sie können zwar kein AWS KMS Schlüsselmaterial exportieren, führen jedoch detaillierte Aufzeichnungen über Schlüssel ARNs, Richtlinien und zugehörige AWS IoT Core Konfigurationen, um bei Bedarf einen schnellen Austausch von Schlüsseln zu ermöglichen.
- Überwachen Sie den Zustand der Schlüssel
-
Überwachen Sie die
CMK.Health
Metrik kontinuierlich und richten Sie automatische Benachrichtigungen für wichtige Änderungen des Gesundheitsstatus ein. Implementieren Sie automatisierte Antworten, um wichtige Probleme schnell zu lösen.
Wichtig
Testen Sie wichtige Aktualisierungsverfahren immer in Entwicklungsumgebungen, bevor Sie sie in der Produktion implementieren. Halten Sie einen dokumentierten Rollback-Plan bereit und stellen Sie sicher, dass wichtige Ersatzverfahren in Notfällen schnell ausgeführt werden können.
Schritt 6: Überwachung des Zustands wichtiger Schlüssel
Im Rahmen der regelmäßigen AWS IoT Core Prüfläufe werden CloudWatch Messwerte und Protokolle ausgegeben, um einen Überblick über den Status Ihrer vom Kunden verwalteten Schlüsselkonfiguration zu erhalten
AWS IoT Core sendet die CMK.Health
Metrik CloudWatch mindestens einmal pro Minute aus. Die Metrik liefert Informationen über den Zustand der vom Kunden verwalteten Schlüssel, die AWS IoT Core zum Verschlüsseln und Entschlüsseln Ihrer Daten verwendet werden.
Die CMK.Health
Metrik kann die folgenden Werte haben:
Der Wert lautet
1
: AWS IoT Core ist in der Lage, die Verschlüsselungsschlüssel erfolgreich zum Verschlüsseln und Entschlüsseln Ihrer Daten zu verwenden.Der Wert AWS IoT Core ist
0
: kann die Verschlüsselungsschlüssel nicht zum Verschlüsseln und Entschlüsseln Ihrer Daten verwenden.
AWS IoT Core gibt auch AWS IoT V2-Protokolle aus, wenn sich der Integritätsstatus der Verschlüsselungsschlüssel ändert. Diese Protokolle enthalten zusätzliche Informationen zur Aktualisierung des Gesundheitsstatus. Um diese Protokolle anzeigen zu können, müssen Sie AWS IoT V2-Protokolle aktivieren. Die HEALTHY
Protokolle werden auf INFO
Ebene ausgegeben, und die UNHEALTHY
Protokolle werden auf ERROR
Ebene 2 ausgegeben. Weitere Informationen zu den Protokollebenen finden Sie unter Protokollebenen.
Bei den folgenden Beispielen handelt es CloudWatch sich um Protokolleinträge, die von ausgegeben wurden AWS IoT Core , um auf die Aktualisierung des Integritätsstatus der vom Kunden verwalteten Schlüssel hinzuweisen.
Um wichtige Änderungen des Gesundheitsstatus effektiv zu überwachen und darauf zu reagieren:
-
Richten Sie CloudWatch Alarme für die
CMK.Health
Metrik ein: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"
-
Aktivieren Sie die AWS IoT V2-Protokollierung, um detaillierte Ereignisse mit Änderungen des Gesundheitsstatus mit Fehlercodes und Meldungen zu erfassen.
-
Überprüfen Sie den Konfigurationsstatus zur Fehlerbehebung:
aws iot describe-encryption-configuration --region us-west-2
-
Untersuchen Sie den Status UNGESUND, indem Sie das
errorCode
Feld untersuchen:KMS_KEY_VALIDATION_ERROR
— Problem mit dem AWS KMS Schlüssel (deaktiviert, gelöscht oder Richtlinienprobleme)ROLE_VALIDATION_ERROR
— Problem mit der IAM-Rolle (gelöscht, Richtlinienprobleme oder Vertrauensprobleme)
Von UNGESUND zu GESUND
Wenn der Status der Verschlüsselungsschlüssel von UNHEALTHY
bis aktualisiert wirdHEALTHY
, AWS IoT Core wird eine AWS IoT V2-Protokollmeldung im folgenden Format ausgegeben.
{ "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" }
Von GESUND zu UNGESUND
Wenn der Status der Verschlüsselungsschlüssel von HEALTHY
bis aktualisiert wirdUNHEALTHY
, AWS IoT Core wird eine AWS IoT V2-Protokollmeldung im folgenden Format ausgegeben.
{ "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" }
Warnung
Wenn der Zustand des Schlüssels erreicht istUNHEALTHY
, schlagen die AWS IoT Core Operationen sofort fehl. Überprüfen Sie in diesem Fall Ihre Schlüsselkonfigurationen, IAM-Rollenberechtigungen und Richtlinien. Überwachen Sie die CMK.Health
Metrik auf Statusänderungen. Wenn der Betrieb nach der Überprüfung Ihrer Konfigurationen weiterhin fehlschlägt, wenden Sie sich an Ihren Account Manager oder das AWS Support Center
AWS CloudTrail Ereignisse
Sie können auch die Verwendung AWS IoT Core des KMS-Schlüssels für Verschlüsselungs- und Entschlüsselungsvorgänge überwachen. AWS IoT Core führtDescribeKey
, Decrypt
ReEncrypt
, und GenerateDataKeyWithoutPlaintext
-Operationen mit Ihrem KMS-Schlüssel durch, um Daten zu verschlüsseln bzw. zu entschlüsseln, die zu Ihrem AWS Konto gehören und im Ruhezustand gespeichert sind.
Es gibt CloudTrail Ereignisse fürDescribeKey
, Decrypt
ReEncrypt
, und. GenerateDataKeyWithoutPlaintext
Diese Ereignisse überwachen AWS KMS Vorgänge, die von aufgerufen werden AWS IoT Core , um auf Daten zuzugreifen, die mit Ihrem vom Kunden verwalteten Schlüssel verschlüsselt wurden.
Decrypt
Beispiel für
{ "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" }