Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Crittografia dei dati inattivi in AWS IoT Core
Per impostazione predefinita, tutti i AWS IoT Core dati inattivi vengono crittografati utilizzando chiavi AWS di proprietà. AWS IoT Core supporta anche chiavi simmetriche gestite dal cliente da AWS Key Management Service ()AWS KMS. Con le chiavi gestite dal cliente, puoi creare, possedere e gestire le AWS KMS chiavi del tuo AWS account. AWS IoT Core utilizzerà le tue chiavi KMS per crittografare i tuoi dati inattivi. Hai il pieno controllo su queste chiavi KMS, inclusa la creazione e la gestione delle relative politiche chiave. Puoi anche configurare le politiche IAM per i ruoli che accedono per AWS KMS controllare le autorizzazioni per queste chiavi.
AWS chiavi possedute
AWS le chiavi possedute sono una raccolta di chiavi KMS che un AWS servizio possiede e gestisce per l'utilizzo in più AWS account. AWS i servizi possono utilizzare chiavi AWS di proprietà per proteggere i tuoi dati. Per impostazione predefinita, AWS IoT Core crittografa i dati inattivi utilizzando chiavi AWS di proprietà. Queste chiavi sono gestite dal servizio. Non puoi visualizzare, gestire o utilizzare le chiavi AWS possedute. Tuttavia, non è necessario intraprendere alcuna azione per proteggere queste chiavi.
Per ulteriori informazioni sulle chiavi AWS possedute, consulta le chiavi AWS possedute nella Guida per AWS Key Management Service gli sviluppatori.
Chiavi gestite dal cliente
Le chiavi gestite dal cliente sono chiavi KMS presenti nel tuo AWS account che crei, possiedi e gestisci. Hai il pieno controllo su queste AWS KMS chiavi, inclusa la creazione e la gestione delle relative politiche chiave. Puoi anche configurare le policy IAM per i ruoli che accedono AWS KMS per controllare le autorizzazioni per queste chiavi. Puoi configurare l'uso AWS IoT Core di chiavi KMS gestite dal cliente per crittografare i tuoi dati.
Per ulteriori informazioni sulle chiavi gestite dal cliente, consulta Chiavi gestite dal cliente nella Guida per gli sviluppatori di AWS Key Management Service .
Per attivare le chiavi gestite dal cliente AWS IoT Core, segui questi passaggi:
Argomenti
Fase 1: creare una chiave gestita dal cliente
È possibile creare una chiave simmetrica gestita dal cliente utilizzando la AWS KMS console o i comandi AWS KMS CLI. Il keySpec deve essere SYMMETRIC_DEFAULT e il keyUsage deve essere. ENCRYPT_DECRYPT
Nota
AWS IoT Core supporta solo AWS KMS le SYMMETRIC_DEFAULT chiavi con specifiche e l'utilizzo delle ENCRYPT_DECRYPT chiavi per le chiavi gestite dal cliente.
Di seguito è riportato un AWS CLI comando di esempio per creare una chiave KMS che può essere utilizzata AWS IoT Core per le chiavi gestite dal cliente.
aws kms create-key --key-spec SYMMETRIC_DEFAULT --key-usage ENCRYPT_DECRYPT --region us-west-2
Di seguito è riportato un esempio di output del comando.
{ "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 } }
Per ulteriori informazioni, vedere Creazione di una chiave simmetrica gestita dal cliente nella AWS Key Management Service Developer Guide.
Policy della chiave
Quando si crea una chiave gestita dal cliente, è possibile specificare una politica chiave. Le policy della chiave controllano l’accesso alla chiave gestita dal cliente. Ogni chiave gestita dal cliente deve avere esattamente una policy della chiave, che contiene istruzioni che determinano chi può usare la chiave e come la possono usare. Per ulteriori informazioni, consulta le politiche chiave nella Guida per AWS Key Management Service gli sviluppatori.
AWS IoT Core utilizza un ruolo IAM nel tuo account per accedere alla chiave gestita dal cliente. Se stai utilizzando una policy per le chiavi personalizzata, assicurati che il ruolo IAM creato su questa chiave disponga delle seguenti autorizzazioni:
kms:DescribeKeykms:Decryptkms:Encryptkms:GenerateDataKeyWithoutPlaintextkms:ReEncryptTokms:ReEncryptFrom
Passaggio 2: crea un ruolo IAM da concedere AWS IoT Core autorizzazioni per utilizzare la chiave KMS
AWS IoT Core Per utilizzare la chiave KMS che hai creato per crittografare i tuoi dati inattivi, devi anche creare un ruolo IAM nel tuo account, che AWS IoT Core può presupporre l'accesso alla chiave KMS.
Il ruolo deve avere la seguente politica di fiducia per consentire l'assunzione AWS IoT Core del ruolo.
{ "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:*" } } } }
Assicurati che le politiche IAM associate al ruolo IAM dispongano delle seguenti autorizzazioni sulla chiave KMS:
kms:DescribeKeykms:Decryptkms:Encryptkms:GenerateDataKeyWithoutPlaintextkms:ReEncryptTokms:ReEncryptFrom
Di seguito è riportato un esempio di policy IAM con le autorizzazioni richieste per le chiavi gestite dal cliente.
{ "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" } } } ] }
Per ulteriori informazioni, consulta Creare un ruolo per delegare le autorizzazioni a un utente IAM nella Guida per l'utente. AWS Identity and Access Management
Fase 3: Attiva le chiavi gestite dal cliente AWS IoT Core
Dopo aver completato tutti i passaggi precedenti, esegui il comando update-encryption-configuration CLI per attivare l'utilizzo delle chiavi gestite dal cliente. AWS IoT Core Quando attivi le chiavi gestite dal cliente, tutte le AWS IoT Core risorse del tuo AWS account verranno crittografate utilizzando la AWS KMS chiave specificata.
-
Per attivare l' AWS IoT Core utilizzo delle chiavi gestite dal cliente AWS CLI, esegui il comando
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 -
Per verificare l' AWS IoT Core utilizzo delle chiavi gestite dal cliente AWS CLI, esegui il comando
describe-encryption-configurationCLI:aws iot describe-encryption-configuration --region us-west-2Se hai abilitato l'accesso alle chiavi gestite dal cliente AWS IoT Core, l'output può essere simile al seguente:
{ "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" }Il
lastModifiedDatecampo indica la data dell'ultimo aggiornamento della configurazione di crittografia.Se non hai abilitato le chiavi gestite dal cliente, l'output può essere simile al seguente:
{ "encryptionType": "AWS_OWNED_KMS_KEY", "lastModifiedDate": "2024-09-26T22:01:02.365000-07:00" }
Fase 4: sono necessarie autorizzazioni aggiuntive per AWS IoT Core operazioni sul piano di controllo
Dopo aver optato per le chiavi gestite dal cliente, tutte le AWS IoT Core risorse appartenenti al tuo AWS account vengono crittografate con la chiave KMS fornita. Tutte le operazioni del piano di controllo ora richiedono che il chiamante kms:Decrypt disponga delle autorizzazioni sulla chiave KMS oltre alle autorizzazioni richieste per l'operazione specifica sulla risorsa. AWS IoT Core Se il chiamante non dispone dell'kms:Decryptautorizzazione ed effettua una chiamata API che richiede la crittografia o la decrittografia dei dati (ad esempio), GetPolicy riceverà un. UnauthorizedException
Ad esempio, quando chiamiGetPolicy, hai bisogno di entrambe le iot:GetPolicy kms:Decrypt autorizzazioni sulla chiave KMS gestita dal cliente affinché la chiamata API abbia esito positivo.
Nota
Quando aggiorni gli utenti o i ruoli IAM per concedere AWS KMS le autorizzazioni sulla chiave utilizzata per la configurazione di crittografia, assicurati che la policy delle chiavi KMS conceda anche le autorizzazioni richieste ai rispettivi utenti o ruoli IAM.
AWS KMS autorizzazioni per UpdateEncryptionConfiguration
La chiamata UpdateEncryptionConfiguration API richiede le seguenti AWS KMS autorizzazioni sulla chiave KMS per poter attivare le chiavi gestite dal cliente o per modificare la configurazione della chiave:
kms:DescribeKeykms:Decryptkms:Encryptkms:GenerateDataKeyWithoutPlaintextkms:ReEncryptTokms:ReEncryptFrom
AWS KMS autorizzazioni per tutte le altre API del piano di controllo
La maggior parte delle API del piano di controllo richiede kms:Decrypt autorizzazioni quando le chiavi gestite dal cliente sono abilitate. Tuttavia, alcune API non richiedono queste autorizzazioni aggiuntive:
- API che non richiedono autorizzazioni AWS KMS
-
Le
Delete*APIList*e non rientrano in questo bucket. I clienti possono sempre richiamare qualsiasi APIList*oDelete*Control Plane e tali chiamate API avrebbero esito positivo anche se il chiamante non dispone dell'autorizzazione.kms:DecryptQueste chiamate API avranno esito positivo anche se la chiave gestita dal cliente non è integraList*e leDelete*API non eseguono alcuna decrittografia.API List*: tutte le operazioni di creazione di elenchi (ad esempio,,)
ListThingsListPoliciesListCertificatesAPI Delete*: tutte le operazioni di eliminazione (ad esempio,,)
DeleteThingDeletePolicyDeleteCertificate
Fase 5: Gestione delle chiavi
AWS IoT Core esegue controlli periodici sulla configurazione delle chiavi gestita dal cliente per garantire che le operazioni di crittografia e decrittografia non siano compromesse. Questi controlli di integrità vengono eseguiti una volta al minuto e verificano la capacità AWS IoT Core dell'utente di accedere e utilizzare sia la AWS KMS chiave che il ruolo IAM associato per le operazioni di crittografia e decrittografia.
- HEALTHY
-
AWS IoT Core può accedere correttamente alla AWS KMS chiave tramite il ruolo IAM specificato ed eseguire operazioni. encryption/decryption Tutti i componenti funzionano correttamente.
- UNHEALTHY
-
AWS IoT Core non è possibile accedere o utilizzare la AWS KMS chiave. Ciò impedisce nuove operazioni di crittografia e può influire sulla funzionalità del servizio. Il
errorCodecampo indica se il problema riguarda la chiave o il ruolo IAM.
Azioni dei clienti che possono influire sulla salute chiave
Diverse azioni dei clienti possono far sì che lo stato di salute chiave passi da HEALTHY aUNHEALTHY:
- Key-related azioni
-
Eliminazione di una AWS KMS chiave: quando si pianifica l'eliminazione di una chiave, questa è in uno
Pending deletionstato e non può essere utilizzataDisattivazione di una AWS KMS chiave: quando si disabilita una chiave KMS, questa non può più essere utilizzata per le operazioni di crittografia/decrittografia
Chiave di pianificazione per l'eliminazione: la chiave diventa inutilizzabile al termine dell'eliminazione
Modifica della politica chiave: rimozione delle autorizzazioni necessarie per l'accesso AWS IoT Core
Modifica delle autorizzazioni di utilizzo delle chiavi: limitazione delle azioni richieste AWS KMS
- Azioni relative ai ruoli IAM
-
Eliminazione del ruolo IAM: impossibile AWS IoT Core assumere il ruolo di accesso alla chiave
Modifica delle autorizzazioni del ruolo: rimozione delle AWS KMS autorizzazioni richieste dalla politica del ruolo
Modifica della politica di fiducia: impedimento al AWS IoT Core servizio di assumere il ruolo
Aggiungere condizioni restrittive: condizioni che AWS IoT Core impediscono l'utilizzo del ruolo
- Account-level azioni
-
Cross-account modifiche all'accesso alle chiavi: modifica delle autorizzazioni per le chiavi in diversi account
Politiche di controllo dei servizi (SCP): Organization-level politiche che limitano l'accesso AWS KMS
Account-level Politiche IAM: politiche che sostituiscono o sono in conflitto con l'accesso con le chiavi
Importante
Qualsiasi modifica alle AWS KMS chiavi, ai ruoli IAM o alle policy utilizzate da AWS IoT Core deve essere prima testata negli ambienti di sviluppo. Monitora attentamente lo stato di integrità delle chiavi dopo aver apportato eventuali modifiche per assicurarti che AWS IoT Core la funzionalità non venga compromessa.
Aggiornamento della configurazione di crittografia
Aggiorna la configurazione di crittografia AWS IoT Core per passare da una chiave gestita dal cliente a un'altra o tra chiavi AWS possedute e chiavi gestite dal cliente.
Per modificare la configurazione con una chiave gestita dal cliente diversa:
-
Crea una nuova chiave gestita dal cliente seguendo i passaggi indicatiFase 1: creare una chiave gestita dal cliente.
-
Aggiorna la tua policy sui ruoli IAM per includere le autorizzazioni per la vecchia e la nuova chiave durante il periodo di aggiornamento.
-
Aggiorna la configurazione di crittografia per utilizzare la nuova chiave:
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"
Per modificare la configurazione dalle chiavi gestite dal cliente alle chiavi AWS possedute:
aws iot update-encryption-configuration --encryption-type "AWS_OWNED_KMS_KEY"
Nota
Quando aggiorni la configurazione di crittografia per le nuove chiavi gestite dal cliente, assicurati che sia la vecchia che la nuova chiave rimangano accessibili affinché l'operazione abbia esito positivo.
Scenari e impatti di errore comuni
La tabella seguente descrive gli scenari di errore più comuni quando le chiavi vengono eliminate o disattivate:
| Scenario | Impatto immediato | Long-term Conseguenze |
|---|---|---|
|
Chiave disattivata |
Tutte le nuove encryption/decryption operazioni falliscono immediatamente |
Interruzione del servizio fino alla riattivazione o alla sostituzione della chiave |
|
Chiave programmata per l'eliminazione |
Lo stato della chiave diventa in attesa di eliminazione e tutte le encryption/decryption operazioni avranno esito negativo |
Errore automatico del servizio al termine dell'eliminazione |
|
Chiave eliminata definitivamente |
Fallimento immediato e permanente di tutte le operazioni |
Perdita permanente dei dati e impossibilità di recuperare i dati crittografati |
|
Politica chiave modificata in modo errato |
AWS IoT Core perde le autorizzazioni di accesso alla chiave |
Guasti del servizio fino alla correzione della politica |
|
Ruolo IAM eliminato |
AWS IoT Core non può assumere il ruolo di chiave di accesso |
Errore completo del servizio di crittografia |
|
Il ruolo IAM è stato modificato in modo errato |
AWS IoT Core non può assumere un ruolo o utilizzare il ruolo per accedere alla chiave |
Guasti del servizio finché il ruolo IAM non viene corretto |
Prevenzione e best practice
Per prevenire la cancellazione o la disattivazione accidentale delle chiavi e ridurre al minimo il rischio di guasti del servizio:
- Implementa politiche chiave relative al ciclo di vita
-
Stabilisci procedure chiare per la creazione, la rotazione e il ritiro delle chiavi. Documenta quali chiavi vengono utilizzate da quali AWS IoT Core risorse e mantieni un inventario delle chiavi attive.
- Utilizza le politiche IAM per limitare l'eliminazione delle chiavi
-
Crea policy IAM che impediscano agli utenti non autorizzati di eliminare o disabilitare le chiavi di crittografia critiche. Utilizza le condizioni per richiedere un'approvazione aggiuntiva per le operazioni di eliminazione delle chiavi.
- Abilita la registrazione CloudTrail
-
Monitora tutte le operazioni AWS KMS chiave CloudTrail per rilevare attività di gestione delle chiavi non autorizzate o accidentali. Imposta avvisi per l'eliminazione, la disabilitazione o la modifica delle politiche delle chiavi.
- Verifica le procedure di sostituzione delle chiavi
-
Verificate regolarmente le procedure di sostituzione delle chiavi in ambienti non di produzione per assicurarvi di poter recuperare rapidamente i guasti relativi alle chiavi.
- Mantieni i backup delle chiavi
-
Sebbene non sia possibile esportare il materiale AWS KMS chiave, mantieni registri dettagliati dei principali ARN, delle policy e delle AWS IoT Core configurazioni associate per facilitare la sostituzione rapida delle chiavi, se necessario.
- Monitora lo stato delle chiavi
-
Monitora continuamente la
CMK.Healthmetrica e configura avvisi automatici per le principali modifiche dello stato di salute. Implementa risposte automatiche per risolvere rapidamente i problemi principali.
Importante
Verifica sempre le procedure di aggiornamento chiave negli ambienti di sviluppo prima di implementarle in produzione. Predisponi di un piano di rollback documentato e assicurati che le procedure di sostituzione delle chiavi possano essere eseguite rapidamente in caso di emergenza.
Fase 6: monitoraggio dello stato di salute delle chiavi
Come parte dei controlli periodici, vengono emessi CloudWatch parametri e registri per fornire visibilità sullo stato di salute della configurazione delle chiavi AWS IoT Core gestita dal cliente
AWS IoT Core emette la CMK.Health metrica almeno una volta CloudWatch al minuto. La metrica fornisce informazioni sullo stato di integrità delle chiavi gestite dal cliente utilizzate AWS IoT Core per crittografare e decrittografare i dati.
La CMK.Health metrica può avere i seguenti valori:
Il valore è
1: AWS IoT Core è in grado di utilizzare correttamente le chiavi di crittografia per crittografare e decrittografare i dati.Il valore è
0: non AWS IoT Core è in grado di utilizzare le chiavi di crittografia per crittografare e decrittografare i dati.
AWS IoT Core emette anche registri AWS IoT V2 quando lo stato di integrità delle chiavi di crittografia cambia. Questi registri forniscono ulteriori dettagli sull'aggiornamento dello stato di salute. Per visualizzare questi registri, è necessario abilitare i registri AWS IoT V2. I HEALTHY log vengono emessi a INFO livello e i UNHEALTHY log vengono emessi a livello. ERROR Per ulteriori informazioni sui livelli di registro, vedere Livelli di registro.
Gli esempi seguenti sono voci di CloudWatch registro emesse da AWS IoT Core per indicare l'aggiornamento dello stato di integrità delle chiavi gestite dal cliente.
Per monitorare e rispondere efficacemente alle principali modifiche dello stato di salute:
-
Imposta gli CloudWatch allarmi per la
CMK.Healthmetrica: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" -
Abilita la registrazione AWS IoT V2 per acquisire eventi dettagliati di modifica dello stato di salute con codici e messaggi di errore.
-
Controlla lo stato della configurazione per la risoluzione dei problemi:
aws iot describe-encryption-configuration --region us-west-2 -
Verifica lo stato UNHEALTHY esaminando il campo:
errorCodeKMS_KEY_VALIDATION_ERROR— Problema con la AWS KMS chiave (disattivata, eliminata o problemi relativi alle policy)ROLE_VALIDATION_ERROR— Problema con il ruolo IAM (eliminato, problemi relativi alle policy o problemi di fiducia)
Da UNHEALTHY a HEALTHY
Quando lo stato delle chiavi di crittografia viene aggiornato da UNHEALTHY aHEALTHY, AWS IoT Core emetterà un messaggio di registro AWS IoT V2 nel seguente formato.
{ "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" }
Da HEALTHY a UNHEALTHY
Quando lo stato delle chiavi di crittografia viene aggiornato da HEALTHY aUNHEALTHY, AWS IoT Core emetterà un messaggio di registro AWS IoT V2 nel seguente formato.
{ "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" }
avvertimento
Quando la chiave diventa integraUNHEALTHY, AWS IoT Core le operazioni falliscono immediatamente. In tal caso, rivedi le configurazioni chiave, le autorizzazioni dei ruoli IAM e le policy. Monitora la CMK.Health metrica per le modifiche di stato. Se le operazioni continuano a fallire dopo aver esaminato le configurazioni, contatta il tuo account manager o il Centro AWS assistenza
Monitoraggio dello stato della rotazione delle chiavi di fil
AWS IoT Core utilizza una struttura di chiavi gerarchica per crittografare i dati. In cima a questa gerarchia c'è la tua AWS KMS chiave (la chiave gestita dal cliente che configuri). Di seguito, AWS IoT Core mantiene le chiavi di filiale, ovvero le chiavi interne derivate dalla tua AWS KMS chiave. AWS IoT Core utilizza quindi queste chiavi di derivazione per generare chiavi di wrapping uniche, che eseguono la crittografia e la decrittografia effettive dei dati. Questo approccio a più livelli limita l'ambito di ogni singola chiave e segue AWS le migliori pratiche di crittografia. AWS IoT Core gestisce le chiavi di filiale come dettaglio interno di implementazione, separato dalla rotazione delle AWS KMS chiavi, che viene AWS KMS gestita direttamente. Per ulteriori informazioni, consulta Ruotare la chiave di filiale attiva.
AWS IoT Core ruota le chiavi di filiale ogni anno come best practice di sicurezza. La rotazione crea una nuova versione attiva della chiave di filiale preservando le versioni precedenti per la decrittografia dei dati esistenti. Questa rotazione richiede l'kms:Encryptautorizzazione sul ruolo IAM associato alla configurazione della chiave gestita dal cliente. AWS IoT Core emette la CMK.BranchKeyRotationHealth metrica CloudWatch una volta al minuto per indicare se il ruolo di AWS KMS accesso dispone delle autorizzazioni necessarie per la rotazione.
La CMK.BranchKeyRotationHealth metrica può avere i seguenti valori:
Il valore è
1: il ruolo di AWS KMS accesso dispone dell'kms:Encryptautorizzazione richiesta e la rotazione delle chiavi di ramo può procedere normalmente.Il valore è
0: AWS KMS al ruolo di accesso manca l'kms:Encryptautorizzazione e la rotazione delle chiavi di diramazione non può essere eseguita. Le operazioni di decrittografia esistenti continueranno a funzionare normalmente, ma non AWS IoT Core saranno in grado di ruotare le chiavi di filiale fino al ripristino dell'autorizzazione. Aggiungilokms:Encryptal tuo ruolo di AWS KMS accesso per riattivare la rotazione. Per l'elenco completo delle autorizzazioni richieste, consulta Criteri chiave.
Nota
Un valore pari a 0 non indica un'interruzione delle operazioni correnti AWS IoT Core . I tuoi dati rimangono crittografati e accessibili. Tuttavia, è necessario aggiornare tempestivamente le autorizzazioni del ruolo di AWS KMS accesso per garantire che le chiavi di filiale possano essere ruotate nei tempi previsti.
Per ricevere una notifica quando la rotazione delle chiavi di filiale non può procedere, imposta un CloudWatch allarme per la metrica: CMK.BranchKeyRotationHealth
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 eventi
Puoi anche monitorare l'utilizzo AWS IoT Core della chiave KMS per le operazioni di crittografia e decrittografia. AWS IoT Core eseguirà DescribeKey DecryptReEncrypt, e effettuerà GenerateDataKeyWithoutPlaintext operazioni sulla chiave KMS per crittografare e decrittografare i dati appartenenti al tuo account archiviati come inattivi. AWS
Sono disponibili CloudTrail eventi perDescribeKey,, eDecrypt. ReEncrypt GenerateDataKeyWithoutPlaintext Questi eventi monitorano AWS KMS le operazioni richieste AWS IoT Core per accedere ai dati crittografati dalla chiave gestita dal cliente.
Esempio di decrittografia
{ "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" }