Personalizzare quando e come visualizzare i risultati dell'audit AWS IoT Device Defender
AWS IoT Device Defender audit fornisce controlli periodici di sicurezza per confermare che i dispositivi AWS IoT e le risorse stiano seguendo le best practice. Per ogni controllo, i risultati di audit vengono classificati come conformi o non conformi, dove la non conformità risulta nelle icone di avviso della console. Per ridurre il rumore causato dalla ripetizione di problemi noti, la funzione di soppressione della ricerca di audit consente di disattivare temporaneamente queste notifiche di non conformità.
È possibile eliminare i controlli di audit selezionati per una risorsa o un account specifico per un periodo di tempo predeterminato. Un risultato del controllo audit che è stato eliminato viene classificato come risultato soppresso, separato dalle categorie conformi e non conformi. Questa nuova categoria non attiva un allarme come un risultato non conforme. Ciò consente di ridurre i disturbi delle notifiche di non conformità durante i periodi di manutenzione noti, o fino al completamento di un aggiornamento.
Nozioni di base
Nelle sezioni seguenti viene descritto come utilizzare le soppressioni per la ricerca di audit per sopprimere un controllo Device certificate expiring
nella console e nell’interfaccia a riga di comando. Se desideri seguire una delle dimostrazioni, devi prima creare due certificati in scadenza per Device Defender che possano essere rilevati.
Consulta le informazioni riportate di seguito per creare i tuoi certificati.
-
Create and register a CA certificate nella Guida per gli sviluppatori di AWS IoT Core.
-
Creare un certificato client utilizzando il certificato CA. Nel passaggio 3, imposta il tuo parametro
days
di1
.
Se utilizzi l'interfaccia a riga di comando per creare i certificati, immetti il comando seguente.
openssl x509 -req \ -in
device_cert_csr_filename
\ -CAroot_ca_pem_filename
\ -CAkeyroot_ca_key_filename
\ -CAcreateserial \ -outdevice_cert_pem_filename
\ -days1
-sha256
Personalizzare i risultati di audit nella console
Nella procedura dettagliata seguente viene utilizzato un account con due certificati di dispositivo scaduti che attivano un controllo di audit non conforme. In questo scenario, vogliamo disabilitare l'avviso perché i nostri sviluppatori stanno testando una nuova funzionalità che risolverà il problema. Creiamo una soppressione per ogni certificato per impedire che il risultato di audit non sia conforme per la settimana successiva.
-
Verrà innanzitutto eseguito un audit su richiesta per dimostrare che il controllo del certificato del dispositivo scaduto non è conforme.
Dall’AWS IoT console
, scegli Defend (Protezione) dalla barra laterale sinistra, quindi Audit (Controllo), e Results (Risultati). Sulla pagina Audit Results (Risultati della verifica), scegli Create (Crea). Si aprirà la finestra Create new audit (Crea nuovo audit). Scegli Create (Crea). Dai risultati di audit su richiesta, possiamo vedere che “Certificato dispositivo in scadenza” non è conforme per due risorse.
-
Ora, vorremmo disabilitare l'avviso di controllo non conforme “Certificato dispositivo in scadenza” perché i nostri sviluppatori stanno testando nuove funzionalità che correggeranno l'avviso.
Dalla barra laterale sinistra sotto Defender (Protezione), scegli Audit (Audit) e quindi scegli Finding suppressions (Ricerca di eliminazioni). Sulla pagina Audit finding suppressions (Verifica delle soppressioni di audit), scegli Create (Crea).
-
Sulla finestra Create an audit finding suppression (Crea una soppressione della ricerca di audit), dobbiamo compilare quanto segue.
-
Audit check (Controllo di audit): selezioniamo
Device certificate expiring
, perché questo è il controllo di audit che vorremmo sopprimere. -
Resource identifier (Identificatore di risorsa): inseriamo l'ID del certificato del dispositivo di uno dei certificati per cui vorremmo eliminare i risultati del audit.
-
Suppression duration (Durata dell’eliminazione): selezioniamo
1 week
, perché è per quanto tempo vorremmo sopprimere il controllo auditDevice certificate expiring
. -
Description (Descrizione) (facoltativa): aggiungiamo una nota che descrive il motivo per cui stiamo sopprimendo questa ricerca di audit.
Dopo che abbiamo riempito i campi, scegli Create (Crea). Viene visualizzato un banner di successo dopo che è stata creata la soppressione del rilevamento di audit.
-
-
Abbiamo soppresso una ricerca di audit per uno dei certificati e ora abbiamo bisogno di sopprimere la ricerca di audit per il secondo certificato. Potremmo usare lo stesso metodo di soppressione che abbiamo usato nel passaggio 3, ma useremo un metodo diverso per scopi dimostrativi.
Dalla barra laterale sinistra sotto Difender (Protezione), scegli Audit (Audit), quindi Results (Risultati). Sulla pagina Audit results (Risultati di audit) scegli l’audit con la risorsa non conforme. Quindi, seleziona la risorsa in Non-compliant checks (Controlli non conformi). Nel nostro caso, selezioniamo “Certificato dispositivo in scadenza”.
-
Sulla pagina Device certificate expiring (Certificato del dispositivo in scadenza), sotto Non-compliant policy (Policy non conforme) scegli il pulsante di opzione accanto al risultato da eliminare. Quindi, seleziona Actions (Operazioni) e scegli la durata per la quale desideri che venga soppressa. Nel nostro caso, scegliamo
1 week
come abbiamo fatto per l'altro certificato. Sulla finestra Confirm suppression (Conferma eliminazione), scegli Enable suppression (Abilitazione dell’eliminazione).Viene visualizzato un banner di successo dopo che è stata creata la soppressione del rilevamento di audit. Ora, entrambi i risultati dell’audit sono stati soppressi per 1 settimana, mentre i nostri sviluppatori lavorano su una soluzione per risolvere l'avviso.
Personalizzare i risultati dell’audit nell’interfaccia a riga di comando
Nella procedura dettagliata seguente viene utilizzato un account con un certificato di dispositivo scaduto che attiva un controllo audit non conforme. In questo scenario, vogliamo disabilitare l'avviso perché i nostri sviluppatori stanno testando una nuova funzionalità che risolverà il problema. Creiamo una soppressione del rilevamento di audit per il certificato per impedire che il risultato dell’audit non sia conforme per la settimana successiva.
Utilizza i seguenti comandi dell’interfaccia a riga di comando.
-
Utilizza il seguente comando per abilitare l’audit.
aws iot update-account-audit-configuration \ --audit-check-configurations "{\"DEVICE_CERTIFICATE_EXPIRING_CHECK\":{\"enabled\":true}}"
Output:
Nessuna.
-
Utilizza il comando seguente per eseguire l’audit on demand che sia destinato al controllo di audit
DEVICE_CERTIFICATE_EXPIRING_CHECK
.aws iot start-on-demand-audit-task \ --target-check-names
DEVICE_CERTIFICATE_EXPIRING_CHECK
Output:
{ "taskId": "787ed873b69cb4d6cdbae6ddd06996c5" }
-
Utilizza il comando describe-account-audit-configuration per descrivere la configurazione dell’audit. Vogliamo confermare che abbiamo attivato il controllo di audit per
DEVICE_CERTIFICATE_EXPIRING_CHECK
.aws iot describe-account-audit-configuration
Output:
{ "roleArn": "
arn:aws:iam::<accountid>:role/service-role/project
", "auditNotificationTargetConfigurations": { "SNS": { "targetArn": "arn:aws:sns:us-east-1:<accountid>:project_sns
", "roleArn": "arn:aws:iam::<accountid>:role/service-role/project
", "enabled": true } }, "auditCheckConfigurations": { "AUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK": { "enabled": false }, "CA_CERTIFICATE_EXPIRING_CHECK": { "enabled": false }, "CA_CERTIFICATE_KEY_QUALITY_CHECK": { "enabled": false }, "CONFLICTING_CLIENT_IDS_CHECK": { "enabled": false }, "DEVICE_CERTIFICATE_EXPIRING_CHECK": { "enabled": true }, "DEVICE_CERTIFICATE_KEY_QUALITY_CHECK": { "enabled": false }, "DEVICE_CERTIFICATE_SHARED_CHECK": { "enabled": false }, "IOT_POLICY_OVERLY_PERMISSIVE_CHECK": { "enabled": true }, "IOT_ROLE_ALIAS_ALLOWS_ACCESS_TO_UNUSED_SERVICES_CHECK": { "enabled": false }, "IOT_ROLE_ALIAS_OVERLY_PERMISSIVE_CHECK": { "enabled": false }, "LOGGING_DISABLED_CHECK": { "enabled": false }, "REVOKED_CA_CERTIFICATE_STILL_ACTIVE_CHECK": { "enabled": false }, "REVOKED_DEVICE_CERTIFICATE_STILL_ACTIVE_CHECK": { "enabled": false }, "UNAUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK": { "enabled": false } } }DEVICE_CERTIFICATE_EXPIRING_CHECK
dovrebbe avere un valore ditrue
. -
Utilizza il comando list-audit-task per identificare le attività di audit completate.
aws iot list-audit-tasks \ --task-status "COMPLETED" \ --start-time
2020-07-31
\ --end-time2020-08-01
Output:
{ "tasks": [ { "taskId": "
787ed873b69cb4d6cdbae6ddd06996c5
", "taskStatus": "COMPLETED", "taskType": "SCHEDULED_AUDIT_TASK" } ] }Il
taskId
dell’audit eseguito nel passaggio 1 dovrebbe avere untaskStatus
diCOMPLETED
. -
Utilizza il comando describe-audit-task per ottenere informazioni dettagliate sull’audit completato tramite l’output
taskId
dal passaggio precedente. Questo comando elenca i dettagli relativi all’audit.aws iot describe-audit-task \ --task-id "
787ed873b69cb4d6cdbae6ddd06996c5
"Output:
{ "taskStatus": "COMPLETED", "taskType": "SCHEDULED_AUDIT_TASK", "taskStartTime": 1596168096.157, "taskStatistics": { "totalChecks": 1, "inProgressChecks": 0, "waitingForDataCollectionChecks": 0, "compliantChecks": 0, "nonCompliantChecks": 1, "failedChecks": 0, "canceledChecks": 0 }, "scheduledAuditName": "AWSIoTDeviceDefenderDailyAudit", "auditDetails": { "DEVICE_CERTIFICATE_EXPIRING_CHECK": { "checkRunStatus": "COMPLETED_NON_COMPLIANT", "checkCompliant": false, "totalResourcesCount": 195, "nonCompliantResourcesCount": 2 } } }
-
Utilizza il comando list-audit-findings per trovare l'ID certificato non conforme in modo da poter sospendere gli avvisi di audit per questa risorsa.
aws iot list-audit-findings \ --start-time
2020-07-31
\ --end-time2020-08-01
Output:
{ "findings": [ { "findingId": "
296ccd39f806bf9d8f8de20d0ceb33a1
", "taskId": "787ed873b69cb4d6cdbae6ddd06996c5
", "checkName": "DEVICE_CERTIFICATE_EXPIRING_CHECK", "taskStartTime": 1596168096.157, "findingTime": 1596168096.651, "severity": "MEDIUM", "nonCompliantResource": { "resourceType": "DEVICE_CERTIFICATE", "resourceIdentifier": { "deviceCertificateId": "b4490<shortened>" }, "additionalInfo": { "EXPIRATION_TIME": "1582862626000" } }, "reasonForNonCompliance": "Certificate is past its expiration.", "reasonForNonComplianceCode": "CERTIFICATE_PAST_EXPIRATION", "isSuppressed": false }, { "findingId": "37ecb79b7afb53deb328ec78e647631c", "taskId": "787ed873b69cb4d6cdbae6ddd06996c5", "checkName": "DEVICE_CERTIFICATE_EXPIRING_CHECK", "taskStartTime": 1596168096.157, "findingTime": 1596168096.651, "severity": "MEDIUM", "nonCompliantResource": { "resourceType": "DEVICE_CERTIFICATE", "resourceIdentifier": { "deviceCertificateId": "c7691<shortened>" }, "additionalInfo": { "EXPIRATION_TIME": "1583424717000" } }, "reasonForNonCompliance": "Certificate is past its expiration.", "reasonForNonComplianceCode": "CERTIFICATE_PAST_EXPIRATION", "isSuppressed": false } ] } -
Utilizza il comando create-audit-suppression per sopprimere le notifiche per il controllo di audit
DEVICE_CERTIFICATE_EXPIRING_CHECK
per un certificato di dispositivo con l'id
fino alc7691e<shortened>
20-08-2020
.aws iot create-audit-suppression \ --check-name DEVICE_CERTIFICATE_EXPIRING_CHECK \ --resource-identifier deviceCertificateId="
c7691e<shortened>
" \ --no-suppress-indefinitely \ --expiration-date2020-08-20
-
Utilizza il comando list-audit-suppression per confermare l'impostazione di soppressione del controllo e ottenere dettagli sulla soppressione.
aws iot list-audit-suppressions
Output:
{ "suppressions": [ { "checkName": "DEVICE_CERTIFICATE_EXPIRING_CHECK", "resourceIdentifier": { "deviceCertificateId": "
c7691e<shortened>
" }, "expirationDate": 1597881600.0, "suppressIndefinitely": false } ] } -
Il comando update-audit-suppression può essere utilizzato per aggiornare la soppressione della ricerca di controllo. L’esempio seguente aggiorna
expiration-date
a08/21/20
.aws iot update-audit-suppression \ --check-name DEVICE_CERTIFICATE_EXPIRING_CHECK \ --resource-identifier deviceCertificateId=c7691e<shortened> \ --no-suppress-indefinitely \ --expiration-date
2020-08-21
-
Il comando delete-audit-suppression può essere utilizzato per rimuovere una soppressione della ricerca di audit.
aws iot delete-audit-suppression \ --check-name DEVICE_CERTIFICATE_EXPIRING_CHECK \ --resource-identifier deviceCertificateId="
c7691e<shortened>
"Per confermare l'eliminazione, utilizza il comando list-audit-suppressions.
aws iot list-audit-suppressions
Output:
{ "suppressions": [] }
In questo tutorial, ti abbiamo mostrato come sopprimere un controllo Device certificate expiring
nella console e nell’interfaccia a riga di comando. Per ulteriori informazioni sul controllo per individuare le soppressioni, consulta Soppressioni della ricerca di audit