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 Zugriffsberechtigungen 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 für die Verwendung in mehreren AWS Konten verwaltet. AWS Dienste können AWS eigene Schlüssel verwenden, um Ihre Daten zu schützen. AWS IoT Core Verschlüsselt standardmäßig ruhende Daten 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 AWS im AWS Key Management Service Entwicklerhandbuch unter Eigene Schlüssel .
Kundenseitig verwaltete Schlüssel
Vom 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 Zugriffsberechtigungen für diese Schlüssel zu kontrollieren. Sie können so konfigurieren AWS IoT Core , dass Sie vom Kunden verwaltete KMS-Schlüssel zum Verschlüsseln Ihrer Daten verwenden.
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 AWS IoT Core für kundenverwaltete Schlüssel anzumelden:
Schritt 1: Erstellen eines kundenverwalteten Schlüssels
Sie können einen symmetrischen, vom Kunden verwalteten Schlüssel erstellen, indem Sie die AWS KMS Konsole oder die AWS KMS CLI-Befehle verwenden. 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üsselnutzung für vom Kunden verwaltete Schlüssel.
Im Folgenden finden Sie einen AWS CLI Beispielbefehl zum Erstellen eines KMS-Schlüssels, der AWS IoT Core für vom Kunden verwaltete Schlüssel verwendet werden kann.
aws kms create-key --key-spec SYMMETRIC_DEFAULT --key-usage ENCRYPT_DECRYPT --region us-west-2
Das Folgende ist eine Beispielausgabe 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 im AWS Key Management Service Entwicklerhandbuch unter Erstellen eines symmetrischen, vom Kunden verwalteten Schlüssels.
Schlüsselrichtlinie
Wenn Sie einen vom Kunden verwalteten Schlüssel erstellen, 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 im AWS Key Management Service Entwicklerhandbuch unter Wichtige Richtlinien.
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 mit diesem Schlüssel erstellte IAM-Rolle über die folgenden Berechtigungen verfügt:
kms:DescribeKeykms:Decryptkms:Encryptkms:GenerateDataKeyWithoutPlaintextkms:ReEncryptTokms:ReEncryptFrom
Schritt 2: Erstellen Sie eine IAM-Rolle, die Sie gewähren möchten AWS IoT Core Berechtigungen zur Verwendung des KMS-Schlüssels
Damit AWS IoT Core Sie den KMS-Schlüssel, den Sie erstellt haben, zum Verschlüsseln 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, dass sie auf den KMS-Schlüssel zugreift.
Für die Rolle muss die folgende Vertrauensrichtlinie gelten, AWS IoT Core damit sie übernommen werden 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 der IAM-Rolle zugewiesenen IAM-Richtlinien über die folgenden Berechtigungen für den KMS-Schlüssel verfügen:
kms:DescribeKeykms:Decryptkms:Encryptkms:GenerateDataKeyWithoutPlaintextkms:ReEncryptTokms: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 anmelden, werden alle AWS IoT Core Ressourcen in Ihrem AWS Konto mit dem angegebenen AWS KMS Schlüssel verschlüsselt.
-
Um die AWS IoT Core Verwendung von kundenverwalteten Schlüsseln zu aktivieren AWS CLI, führen Sie den
update-encryption-configurationCLI-Befehl aus.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-configurationCLI-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-2Wenn 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
lastModifiedDateFeld gibt das Datum an, an dem die Verschlüsselungskonfiguration zuletzt aktualisiert wurde.Wenn Sie keine vom Kunden verwalteten Schlüssel aktiviert haben, kann die Ausgabe wie folgt aussehen:
{ "encryptionType": "AWS_OWNED_KMS_KEY", "lastModifiedDate": "2024-09-26T22:01:02.365000-07:00" }
Schritt 4: Zusätzliche Berechtigungen erforderlich für AWS IoT Core Operationen auf der Kontrollebene
Nachdem Sie sich für vom Kunden verwaltete Schlüssel angemeldet haben, werden alle zu Ihrem AWS Konto gehörenden AWS IoT Core Ressourcen mit dem bereitgestellten KMS-Schlüssel verschlüsselt. Für alle Operationen auf der Steuerungsebene muss der Anrufer nun zusätzlich zu den kms:Decrypt Berechtigungen, die für den spezifischen Vorgang auf der AWS IoT Core Ressource erforderlich sind, über Berechtigungen für den KMS-Schlüssel verfügen. Wenn der Anrufer keine kms:Decrypt Berechtigung hat und einen API-Aufruf tätigt, der die Verschlüsselung oder Entschlüsselung von Daten erfordert (z. B.GetPolicy), erhält er eine. UnauthorizedException
Wenn Sie beispielsweise anrufenGetPolicy, benötigen Sie beide iot:GetPolicy und 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
Der UpdateEncryptionConfiguration API-Aufruf benötigt die folgenden AWS KMS Berechtigungen für den KMS-Schlüssel, um sich für vom Kunden verwaltete Schlüssel anmelden oder die Schlüsselkonfiguration ändern zu können:
kms:DescribeKeykms:Decryptkms:Encryptkms:GenerateDataKeyWithoutPlaintextkms:ReEncryptTokms:ReEncryptFrom
AWS KMS Berechtigungen für alle anderen APIs der Steuerungsebene
Die meisten APIs der Steuerungsebene erfordern kms:Decrypt Berechtigungen, wenn vom Kunden verwaltete Schlüssel aktiviert sind. Für bestimmte APIs sind diese zusätzlichen Berechtigungen jedoch nicht erforderlich:
- APIs, für die keine AWS KMS Berechtigungen erforderlich sind
-
Die
Delete*APIsList*und fallen nicht in diesen Bereich. Kunden können jederzeit eine beliebige APIList*oderDelete*Control Plane aufrufen, und diese API-Aufrufe wären auch dann erfolgreich, wenn der Aufrufer keine Erlaubnis hat.kms:DecryptDiese API-Aufrufe sind auch dann erfolgreich, wenn Ihr vom Kunden verwalteter Schlüssel fehlerhaft istList*und dieDelete*APIs keine Entschlüsselung durchführen.List* APIs — Alle Auflistungsvorgänge (z. B.,,
ListThings)ListPoliciesListCertificatesDelete* APIs — Alle Löschvorgänge (z. B.,,
DeleteThing)DeletePolicyDeleteCertificate
Schritt 5: Schlüssel verwalten
AWS IoT Core führt regelmäßige Überprüfungen Ihrer vom Kunden verwalteten Schlüsselkonfiguration durch, um sicherzustellen, dass die Ver- und Entschlüsselungsvorgänge nicht beeinträchtigt werden. Diese Zustandsprüfungen werden einmal pro Minute durchgeführt und überprüfen AWS IoT Core, ob Sie auf den AWS KMS Schlüssel und die zugehörige IAM-Rolle zugreifen und diese für Verschlüsselungs- und Entschlüsselungsvorgänge verwenden können.
- 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 ordnungsgemäß.
- UNHEALTHY
-
AWS IoT Core kann nicht auf den AWS KMS Schlüssel zugreifen oder ihn verwenden. Dies verhindert neue Verschlüsselungsvorgänge und kann die Funktionalität des Dienstes beeinträchtigen. Das
errorCodeFeld gibt an, ob das Problem mit dem Schlüssel oder der IAM-Rolle zusammenhängt.
Kundenaktionen, die sich auf die Gesundheit von Schlüsselpersonen auswirken können
Verschiedene Kundenaktionen können dazu führen, dass sich der zentrale Gesundheitszustand von HEALTHY zu ändertUNHEALTHY:
- Key-related Aktionen
-
Löschen eines AWS KMS Schlüssels — Wenn Sie das Löschen eines Schlüssels planen, befindet er sich in einem
Pending deletionStatus und kann nicht verwendet werdenEinen 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
Zugriffsrechte für Schlüssel ändern — Erforderliche AWS KMS Aktionen einschränken
- IAM-rollenbezogene Aktionen
-
Löschen der IAM-Rolle — AWS IoT Core kann die Rolle für den Zugriff auf den Schlüssel nicht übernehmen
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 AWS IoT Core verhindern, dass die Rolle verwendet wird
- Account-level Aktionen
-
Cross-account wichtige Zugriffsänderungen — Ändern der Berechtigungen für Schlüssel in verschiedenen Konten
Service Control Policies (SCPs) — Organization-level Richtlinien, die den Zugriff einschränken AWS KMS
Account-level IAM-Richtlinien — Richtlinien, die den Schlüsselzugriff außer Kraft setzen oder mit ihm in Konflikt stehen
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 wichtigsten Komponenten 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 vom Kunden verwalteten Schlüsseln zu wechseln.
Gehen Sie wie folgt vor, um die Konfiguration auf einen anderen, vom Kunden verwalteten Schlüssel zu ändern:
-
Erstellen Sie einen neuen, vom Kunden verwalteten Schlüssel, indem Sie den Schritten unter folgenSchritt 1: Erstellen eines kundenverwalteten Schlüssels.
-
Aktualisieren Sie Ihre IAM-Rollenrichtlinie, sodass sie während des Aktualisierungszeitraums Berechtigungen sowohl für den alten als auch für den 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"
Um die Konfiguration von vom Kunden verwalteten Schlüsseln zurück zu AWS eigenen Schlüsseln zu ändern:
aws iot update-encryption-configuration --encryption-type "AWS_OWNED_KMS_KEY"
Anmerkung
Wenn Sie die Verschlüsselungskonfiguration für neue, vom Kunden verwaltete Schlüssel aktualisieren, stellen Sie sicher, dass sowohl der alte als auch der neue Schlüssel zugänglich bleiben, damit der Vorgang erfolgreich abgeschlossen werden kann.
Häufige Ausfallszenarien und Auswirkungen
In der folgenden Tabelle werden häufige Fehlerszenarien beschrieben, wenn Schlüssel gelöscht oder deaktiviert werden:
| Szenario | Sofortige Auswirkung | Long-term Konsequenzen |
|---|---|---|
|
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 Schlüsselstatus wird in ausstehendes Löschen geändert und alle encryption/decryption Vorgänge schlagen fehl |
Automatischer Dienstausfall, 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 |
|
Die wichtigste Richtlinie wurde falsch geändert |
AWS IoT Core verliert die Zugriffsberechtigungen für den Schlüssel |
Dienstausfälle, bis die Richtlinie korrigiert wird |
|
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 |
Dienstfehler, bis die IAM-Rolle korrigiert 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
-
Richten Sie klare Verfahren für die Erstellung, Rotation und Außerbetriebnahme von Schlüsseln ein. 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 zusätzliche Genehmigungen für das Löschen von Schlüsseln einzufordern.
- 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 ein, wenn Schlüssel gelöscht, deaktiviert oder Richtlinien geändert werden.
- 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 wichtige Ausfälle schnell beheben können.
- Pflegen Sie wichtige Backups
-
Sie können zwar kein AWS KMS wichtiges Material exportieren, aber führen Sie detaillierte Aufzeichnungen über wichtige ARNs, Richtlinien und zugehörige AWS IoT Core Konfigurationen, um bei Bedarf einen schnellen Austausch der Schlüssel zu ermöglichen.
- Überwachen Sie den Zustand wichtiger Schlüssel
-
Überwachen Sie die
CMK.HealthMetrik kontinuierlich und richten Sie automatische Warnmeldungen für wichtige Änderungen des Gesundheitsstatus ein. Implementieren Sie automatische Reaktionen, 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 im Notfall schnell ausgeführt werden können.
Schritt 6: Überwachung des Zustands wichtiger Komponenten
Im Rahmen der regelmäßigen Prüfungen AWS IoT Core werden CloudWatch Kennzahlen und Protokolle ausgegeben, um Ihnen einen Überblick über den Zustand Ihrer vom Kunden verwalteten Schlüsselkonfiguration zu geben
AWS IoT Core gibt die CMK.Health Metrik CloudWatch mindestens einmal pro Minute aus. Die Metrik liefert Informationen über den Zustand der vom Kunden verwalteten Schlüssel, die von Ihnen AWS IoT Core zum Verschlüsseln und Entschlüsseln Ihrer Daten verwendet werden.
Die CMK.Health Metrik kann die folgenden Werte haben:
Der Wert AWS IoT Core lautet
1: kann die Verschlüsselungsschlüssel erfolgreich zum Verschlüsseln und Entschlüsseln Ihrer Daten 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 Details zur Aktualisierung des Gesundheitsstatus. Um diese Protokolle anzuzeigen, müssen Sie AWS IoT V2-Protokolle aktivieren. Die HEALTHY Protokolle werden auf INFO Ebene ausgegeben, und die UNHEALTHY Protokolle werden auf ERROR Ebene ausgegeben. Weitere Informationen zu den Log-Levels finden Sie unter Log-Levels.
Bei den folgenden Beispielen handelt es CloudWatch sich um Protokolleinträge, die von ausgegeben werden AWS IoT Core , um die Aktualisierung des Zustands der vom Kunden verwalteten Schlüssel anzuzeigen.
Um wichtige Änderungen des Systemzustands effektiv zu überwachen und darauf zu reagieren:
-
Richten Sie CloudWatch Alarme für die
CMK.HealthMetrik 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 zur Änderung 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 folgende
errorCodeFeld 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 auf 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 auf 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 Schlüsselzustand erreicht istUNHEALTHY, schlagen die AWS IoT Core Operationen sofort fehl. Überprüfen Sie in diesem Fall Ihre wichtigsten Konfigurationen, 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,
Überwachung des Zustands der Schlüsselrotation in den Filialen
AWS IoT Core verwendet eine hierarchische Schlüsselstruktur, um Ihre Daten zu verschlüsseln. An der Spitze dieser Hierarchie befindet sich Ihr AWS KMS Schlüssel (der vom Kunden verwaltete Schlüssel, den Sie konfigurieren). Unterhalb dieses Bereichs AWS IoT Core verwaltet Filialschlüssel — interne Schlüssel, die von Ihrem AWS KMS Schlüssel abgeleitet werden. AWS IoT Core verwendet dann diese Zweigschlüssel, um eindeutige Wrapping-Schlüssel zu generieren, die die eigentliche Verschlüsselung und Entschlüsselung Ihrer Daten durchführen. Dieser mehrschichtige Ansatz begrenzt den Umfang jedes einzelnen Schlüssels und folgt den bewährten AWS Verschlüsselungsmethoden. AWS IoT Core verwaltet Filialschlüssel als internes Implementierungsdetail, getrennt von Ihrer AWS KMS Schlüsselrotation, die direkt AWS KMS verwaltet wird. Weitere Informationen finden Sie unter Rotation Ihres aktiven Branch-Schlüssels.
AWS IoT Core rotiert die Zweigschlüssel aus Sicherheitsgründen jährlich. Durch die Rotation wird eine neue aktive Version des Zweigschlüssels erstellt, wobei frühere Versionen zur Entschlüsselung vorhandener Daten beibehalten werden. Für diese Rotation ist die kms:Encrypt Genehmigung der IAM-Rolle erforderlich, die Ihrer vom Kunden verwalteten Schlüsselkonfiguration zugeordnet ist. AWS IoT Core gibt die CMK.BranchKeyRotationHealth Metrik auf CloudWatch einmal pro Minute aus, um anzuzeigen, ob Ihre AWS KMS Zugriffsrolle über die für die Rotation erforderlichen Berechtigungen verfügt.
Die CMK.BranchKeyRotationHealth Metrik kann die folgenden Werte haben:
Der Wert lautet
1: Die AWS KMS Zugriffsrolle verfügt über die erforderlichekms:EncryptBerechtigung und die Rotation der Zweigschlüssel kann normal ablaufen.Der Wert lautet
0: Der AWS KMS Zugriffsrolle fehlt diekms:EncryptBerechtigung und die Zweigschlüsselrotation kann nicht durchgeführt werden. Ihre bestehenden Entschlüsselungsvorgänge funktionieren weiterhin normal, aber AWS IoT Core Sie können Ihre Zweigschlüssel nicht rotieren, bis die Berechtigung wiederhergestellt ist. Fügen Sie Ihre AWS KMS Zugriffsrolle hinzukms:Encrypt, um die Rotation wieder zu aktivieren. Die vollständige Liste der erforderlichen Berechtigungen finden Sie unter Schlüsselrichtlinie.
Anmerkung
Der Wert von weist 0 nicht auf eine Unterbrechung Ihres aktuellen AWS IoT Core Betriebs hin. Ihre Daten bleiben verschlüsselt und zugänglich. Sie sollten Ihre AWS KMS Zugriffsrollenberechtigungen jedoch umgehend aktualisieren, um sicherzustellen, dass die Zweigschlüssel termingerecht rotiert werden können.
Um benachrichtigt zu werden, wenn die Rotation der Zweigschlüssel nicht fortgesetzt werden kann, richten Sie einen CloudWatch Alarm für die CMK.BranchKeyRotationHealth Metrik ein:
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 Veranstaltungen
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, die zu Ihrem AWS Konto gehören, im Ruhezustand gespeichert sind, zu verschlüsseln/entschlüsseln.
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.
Beispiel entschlüsseln
{ "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" }