

# Personalizzare quando e come visualizzare i risultati dell'audit AWS IoT Device Defender
<a name="dd-suppressions-example"></a>

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
<a name="dd-gs-afs"></a>

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](https://docs.aws.amazon.com/iot/latest/developerguide/create-device-cert.html) nella *Guida per gli sviluppatori di AWS IoT Core*.
+ [Creare un certificato client utilizzando il certificato CA](https://docs.aws.amazon.com/iot/latest/developerguide/create-device-cert.html). Nel passaggio 3, imposta il tuo parametro `days` di **1**.

Se utilizzi l'interfaccia a riga di comando per creare i certificati, immetti il comando seguente.

```
openssl x509 -req \ 
    -in device_cert_csr_filename \ 
    -CA root_ca_pem_filename \ 
    -CAkey root_ca_key_filename \     
    -CAcreateserial \
    -out device_cert_pem_filename \ 
    -days 1 -sha256
```

## Personalizzare i risultati di audit nella console
<a name="dd-afs-example-console"></a>

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.

1. Verrà innanzitutto eseguito un audit su richiesta per dimostrare che il controllo del certificato del dispositivo scaduto non è conforme.

   Dall’[AWS IoT console](https://console.aws.amazon.com/iot), 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).  
![\[Esegui un audit su richiesta per dimostrare che il controllo del certificato del dispositivo scaduto non è conforme.\]](http://docs.aws.amazon.com/it_it/iot-device-defender/latest/devguide/images/dd-afs-noncompliant.png)

   Dai risultati di audit su richiesta, possiamo vedere che “Certificato dispositivo in scadenza” non è conforme per due risorse.

1. 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)**.  
![\[Flusso per creare le soppressioni degli esiti di audit nella console.\]](http://docs.aws.amazon.com/it_it/iot-device-defender/latest/devguide/images/dd-afs-suppressions.png)

1. 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 audit `Device certificate expiring`.
   + **Description (Descrizione) (facoltativa)**: aggiungiamo una nota che descrive il motivo per cui stiamo sopprimendo questa ricerca di audit.  
![\[Pagina Crea soppressione degli esiti di un audit, nella quale è necessario inserire le informazioni dettagliate.\]](http://docs.aws.amazon.com/it_it/iot-device-defender/latest/devguide/images/dd-afs-create.png)

   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.

1. 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”.

1. 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)**.  
![\[Pagina Crea soppressione di un audit, nella quale completare il flusso. Dopo aver creato la soppressione degli esiti di audit, appare un banner di operazione eseguita correttamente.\]](http://docs.aws.amazon.com/it_it/iot-device-defender/latest/devguide/images/dd-afs-noncompliantcerts.png)

   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
<a name="dd-afs-example-cli"></a>

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.
+ [create-audit-suppression](https://docs.aws.amazon.com/cli/latest/reference/iot/create-audit-suppression.html)
+ [describe-audit-suppression](https://docs.aws.amazon.com/cli/latest/reference/iot/describe-audit-suppression.html)
+ [update-audit-suppression](https://docs.aws.amazon.com/cli/latest/reference/iot/update-audit-suppression.html)
+ [delete-audit-suppression](https://docs.aws.amazon.com/cli/latest/reference/iot/delete-audit-suppression.html)
+ [list-audit-suppressions](https://docs.aws.amazon.com/cli/latest/reference/iot/list-audit-suppressions.html)

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

1. 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"
   }
   ```

1. Utilizza il comando [describe-account-audit-configuration](https://docs.aws.amazon.com/cli/latest/reference/iot/describe-account-audit-configuration.html) 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 di `true`.

1. Utilizza il comando [list-audit-task](https://docs.aws.amazon.com/cli/latest/reference/iot/list-audit-task.html) per identificare le attività di audit completate.

   ```
   aws iot list-audit-tasks \
       --task-status "COMPLETED" \
       --start-time 2020-07-31 \
       --end-time 2020-08-01
   ```

   Output:

   ```
   {
       "tasks": [
           {
               "taskId": "787ed873b69cb4d6cdbae6ddd06996c5",
               "taskStatus": "COMPLETED",
               "taskType": "SCHEDULED_AUDIT_TASK"
           }
       ]
   }
   ```

   Il `taskId` dell’audit eseguito nel passaggio 1 dovrebbe avere un `taskStatus` di `COMPLETED`.

1. Utilizza il comando [describe-audit-task](https://docs.aws.amazon.com/cli/latest/reference/iot/describe-audit-task.html) 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
           }
       }
   }
   ```

1. Utilizza il comando [list-audit-findings](https://docs.aws.amazon.com/cli/latest/reference/iot/list-audit-findings.html) 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-time 2020-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
           }
      ]
   }
   ```

1. Utilizza il comando [create-audit-suppression](https://docs.aws.amazon.com/cli/latest/reference/iot/create-audit-suppression.html) per sopprimere le notifiche per il controllo di audit `DEVICE_CERTIFICATE_EXPIRING_CHECK` per un certificato di dispositivo con l'id `c7691e<shortened>` fino al *20-08-2020*.

   ```
   aws iot create-audit-suppression \
       --check-name DEVICE_CERTIFICATE_EXPIRING_CHECK \
       --resource-identifier deviceCertificateId="c7691e<shortened>" \
       --no-suppress-indefinitely \ 
       --expiration-date 2020-08-20
   ```

1. Utilizza il comando [list-audit-suppression](https://docs.aws.amazon.com/cli/latest/reference/iot/list-audit-suppression.html) 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
           }
       ]
   }
   ```

1. Il comando [update-audit-suppression](https://docs.aws.amazon.com/cli/latest/reference/iot/update-audit-suppression.html) può essere utilizzato per aggiornare la soppressione della ricerca di controllo. L’esempio seguente aggiorna `expiration-date` a `08/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
   ```

1. Il comando [delete-audit-suppression](https://docs.aws.amazon.com/cli/latest/reference/iot/delete-audit-suppression.html) 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](https://docs.aws.amazon.com/cli/latest/reference/iot/list-audit-suppressions.html).

   ```
   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](audit-finding-suppressions.md)