Datenverschlüsselung im Ruhezustand in AWS IoT Core - AWS IoT Core

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.

  1. 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
  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 fallen Delete* APIs nicht in diesen Eimer. Kunden können jederzeit eine beliebige API List* oder eine API auf Delete* Steuerungsebene aufrufen, und diese API-Aufrufe würden auch dann erfolgreich sein, wenn der Aufrufer nicht über kms:Decrypt die entsprechende Genehmigung verfügt. Diese API-Aufrufe sind auch dann erfolgreich, wenn Ihr vom Kunden verwalteter Schlüssel fehlerhaft ist List* und Delete* 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 werden

  • AWS 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:

  1. Erstellen Sie einen neuen, vom Kunden verwalteten Schlüssel, indem Sie die Schritte unter befolgenSchritt 1: Erstellen eines kundenverwalteten Schlüssels.

  2. 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.

  3. 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 lautet1: 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 ist0: 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:

  1. 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"
  2. Aktivieren Sie die AWS IoT V2-Protokollierung, um detaillierte Ereignisse mit Änderungen des Gesundheitsstatus mit Fehlercodes und Meldungen zu erfassen.

  3. Überprüfen Sie den Konfigurationsstatus zur Fehlerbehebung:

    aws iot describe-encryption-configuration --region us-west-2
  4. 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, um weitere Unterstützung zu erhalten.

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, DecryptReEncrypt, 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, DecryptReEncrypt, 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.

DecryptBeispiel 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" }