

# Personalize quando e como você visualiza os resultados da auditoria do AWS IoT Device Defender
<a name="dd-suppressions-example"></a>

A auditoria do AWS IoT Device Defender fornece verificações de segurança periódicas para confirmar se os dispositivos e recursos da AWS IoT estão seguindo as práticas recomendadas. Para cada verificação, os resultados da auditoria são categorizados como compatíveis ou não compatíveis, em que a não conformidade resulta em ícones de aviso do console. Para reduzir o ruído causado pela repetição de problemas conhecidos, o atributo de supressão de descobertas de auditoria permite silenciar temporariamente essas notificações de não conformidade.

Você pode suprimir verificações de auditoria selecionadas para um recurso ou conta específica por um período de tempo predeterminado. Um resultado de verificação de auditoria que foi suprimido é classificado como uma descoberta suprimida, separada das categorias de conformidade e não conformidade. Essa nova categoria não aciona um alarme como um resultado não compatível. Isso permite que você reduza as perturbações de notificação de não conformidade durante períodos de manutenção conhecidos ou até que uma atualização seja programada para ser concluída.

## Conceitos básicos
<a name="dd-gs-afs"></a>

As seções a seguir detalham como você pode usar as supressões de descoberta de auditoria para suprimir uma verificação `Device certificate expiring` no console e na CLI. Se você quiser acompanhar alguma das demonstrações, primeiro crie dois certificados expirados para que o Device Defender detecte.

Use o seguinte para criar certificados.
+ [Criar e registrar um certificado CA](https://docs.aws.amazon.com/iot/latest/developerguide/create-device-cert.html) no *Guia do desenvolvedor do AWS IoT Core*
+ [Criar um certificado de cliente usando o certificado CA](https://docs.aws.amazon.com/iot/latest/developerguide/create-device-cert.html). Na etapa 3, defina o parâmetro `days` como **1**.

Se você estiver usando a CLI para criar certificados, insira o comando a seguir.

```
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
```

## Personalize as descobertas de auditoria no console
<a name="dd-afs-example-console"></a>

O passo a passo a seguir usa uma conta com dois certificados de dispositivo expirados que acionam uma verificação de auditoria não compatível. Nesse cenário, queremos desativar o aviso porque nossos desenvolvedores estão testando um novo atributo que resolverá o problema. Criamos uma supressão de descoberta de auditoria para cada certificado para impedir que o resultado da auditoria não esteja em conformidade na próxima semana.

1. Primeiro, faremos uma auditoria sob demanda para mostrar que a verificação do certificado do dispositivo expirado não está em conformidade.

   No [console da AWS IoT](https://console.aws.amazon.com/iot), escolha **Defender** na barra lateral esquerda, depois **Auditoria** e, em seguida, **Resultados**. Na página **Resultados de auditoria**, selecione **Criar**. A janela **Criar uma nova auditoria** é exibida. Escolha **Criar**.  
![\[Execute uma auditoria sob demanda para mostrar que a verificação do certificado do dispositivo expirado não está em conformidade.\]](http://docs.aws.amazon.com/pt_br/iot-device-defender/latest/devguide/images/dd-afs-noncompliant.png)

   A partir dos resultados da auditoria sob demanda, podemos ver que o “Certificado de dispositivo expirando” não está em conformidade com dois recursos.

1. Agora, gostaríamos de desativar o aviso de verificação não compatível “Certificado de dispositivo expirando” porque nossos desenvolvedores estão testando novos recursos que corrigirão o aviso.

   Na barra lateral esquerda, em **Defender**, escolha **Auditoria** e, em seguida, escolha **Supressões de descoberta**. Na página **Supressões de descoberta da auditoria**, escolha **Criar**.  
![\[O fluxo para criar supressões de descoberta de auditoria no console.\]](http://docs.aws.amazon.com/pt_br/iot-device-defender/latest/devguide/images/dd-afs-suppressions.png)

1. Na janela **Criar uma supressão de descoberta de auditoria**, precisamos preencher o seguinte.
   + **Verificação de auditoria**: selecionamos `Device certificate expiring` porque essa é a verificação de auditoria que gostaríamos de suprimir.
   + **Identificador de recurso**: inserimos o ID do certificado do dispositivo de um dos certificados dos quais gostaríamos de suprimir as descobertas da auditoria.
   + **Duração da supressão**: selecionamos `1 week` porque é por quanto tempo gostaríamos de suprimir a verificação de auditoria `Device certificate expiring`.
   + **Descrição (opcional)**: adicionamos uma nota que descreve por que estamos suprimindo essa descoberta de auditoria.  
![\[A página “Criar uma supressão da descoberta de auditoria”, na qual você precisa inserir as informações detalhadas.\]](http://docs.aws.amazon.com/pt_br/iot-device-defender/latest/devguide/images/dd-afs-create.png)

   Após preencher os campos, escolha **Criar**. Vemos um banner de sucesso após a criação da supressão da descoberta de auditoria.

1. Suprimimos uma descoberta de auditoria para um dos certificados e agora precisamos suprimir a descoberta de auditoria para o segundo certificado. Poderíamos usar o mesmo método de supressão usado na etapa 3, mas usaremos um método diferente para fins de demonstração.

   Na barra lateral esquerda, em **Defender**, escolha **Auditoria** e, em seguida, escolha **Resultados**. Na página **Resultados da auditoria**, escolha a auditoria com o recurso não compatível. Em seguida, selecione o recurso em **Verificações não compatíveis.** No nosso caso, selecionamos “Certificado de dispositivo expirando”.

1. Na página **Certificado de dispositivo expirando**, em **Política não compatível**, escolha o botão de opção ao lado da descoberta que precisa ser suprimida. Em seguida, escolha o menu suspenso **Ações** e, em seguida, escolha a duração pela qual você gostaria que a descoberta fosse suprimida. No nosso caso, escolhemos `1 week` como fizemos com o outro certificado. Na janela **Confirmar supressão**, escolha **Ativar supressão**.  
![\[A página “Criar uma supressão de auditoria” na qual você conclui o fluxo. Você verá um banner de sucesso após a criação da supressão da descoberta de auditoria.\]](http://docs.aws.amazon.com/pt_br/iot-device-defender/latest/devguide/images/dd-afs-noncompliantcerts.png)

   Vemos um banner de sucesso após a criação da supressão da descoberta de auditoria. Agora, as duas descobertas da auditoria foram suprimidas por uma semana, enquanto nossos desenvolvedores trabalham em uma solução para resolver o aviso.

## Personalize as descobertas de auditoria na CLI
<a name="dd-afs-example-cli"></a>

O passo a passo a seguir usa uma conta com um certificado de dispositivo expirado que aciona uma verificação de auditoria não compatível. Nesse cenário, queremos desativar o aviso porque nossos desenvolvedores estão testando um novo atributo que resolverá o problema. Criamos uma supressão de descoberta de auditoria para o certificado a fim de impedir que o resultado da auditoria não esteja em conformidade na próxima semana.

Usamos os comandos da CLI a seguir.
+ [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. Use o comando a seguir para ativar a auditoria.

   ```
   aws iot update-account-audit-configuration \
      --audit-check-configurations "{\"DEVICE_CERTIFICATE_EXPIRING_CHECK\":{\"enabled\":true}}"
   ```

   Saída:

   Nenhum.

1. Use o comando a seguir para executar uma auditoria sob demanda que tenha como alvo a verificação de auditoria `DEVICE_CERTIFICATE_EXPIRING_CHECK`.

   ```
   aws iot start-on-demand-audit-task \
       --target-check-names DEVICE_CERTIFICATE_EXPIRING_CHECK
   ```

   Saída:

   ```
   {
       "taskId": "787ed873b69cb4d6cdbae6ddd06996c5"
   }
   ```

1. Use o comando [describe-account-audit-configuration](https://docs.aws.amazon.com/cli/latest/reference/iot/describe-account-audit-configuration.html) para descrever a configuração de auditoria. Queremos confirmar que ativamos a verificação de auditoria para`DEVICE_CERTIFICATE_EXPIRING_CHECK`.

   ```
   aws iot describe-account-audit-configuration
   ```

   Saída:

   ```
   {
       "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` deve ter um valor de `true`.

1. Use o comando [list-audit-task](https://docs.aws.amazon.com/cli/latest/reference/iot/list-audit-task.html) para identificar as tarefas de auditoria concluídas.

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

   Saída:

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

   O `taskId` da auditoria que você executou na etapa 1 deve ter um `taskStatus` de `COMPLETED`.

1. Use o comando [describe-audit-task](https://docs.aws.amazon.com/cli/latest/reference/iot/describe-audit-task.html) para obter detalhes sobre a auditoria concluída usando a saída `taskId` da etapa anterior. Esse comando lista detalhes sobre a auditoria.

   ```
   aws iot describe-audit-task \
       --task-id "787ed873b69cb4d6cdbae6ddd06996c5"
   ```

   Saída:

   ```
   {
       "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. Use o comando [list-audit-findings](https://docs.aws.amazon.com/cli/latest/reference/iot/list-audit-findings.html) para encontrar o ID do certificado não compatível para que possamos suspender os alertas de auditoria desse recurso.

   ```
   aws iot list-audit-findings \
       --start-time 2020-07-31 \
       --end-time 2020-08-01
   ```

   Saída:

   ```
   {
       "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. Use o comando [create-audit-suppression](https://docs.aws.amazon.com/cli/latest/reference/iot/create-audit-suppression.html) para suprimir as notificações da verificação de auditoria `DEVICE_CERTIFICATE_EXPIRING_CHECK` de um certificado de dispositivo com o id `c7691e<shortened>` até *20/8/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. Use o comando [list-audit-suppression](https://docs.aws.amazon.com/cli/latest/reference/iot/list-audit-suppression.html) para confirmar a configuração de supressão de auditoria e obter detalhes sobre a supressão.

   ```
   aws iot list-audit-suppressions
   ```

   Saída:

   ```
   {
       "suppressions": [
           {
           "checkName": "DEVICE_CERTIFICATE_EXPIRING_CHECK",
               "resourceIdentifier": {
                   "deviceCertificateId": "c7691e<shortened>"
               },
           "expirationDate": 1597881600.0,
           "suppressIndefinitely": false
           }
       ]
   }
   ```

1. O comando [update-audit-suppression](https://docs.aws.amazon.com/cli/latest/reference/iot/update-audit-suppression.html) pode ser usado para atualizar a supressão da descoberta de auditoria. O exemplo abaixo atualiza a `expiration-date` para `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. O comando [delete-audit-suppression](https://docs.aws.amazon.com/cli/latest/reference/iot/delete-audit-suppression.html) pode ser usado para remover uma supressão da descoberta de auditoria.

   ```
   aws iot delete-audit-suppression \
       --check-name DEVICE_CERTIFICATE_EXPIRING_CHECK \
       --resource-identifier deviceCertificateId="c7691e<shortened>"
   ```

   Para confirmar a exclusão, use o comando [list-audit-suppressions](https://docs.aws.amazon.com/cli/latest/reference/iot/list-audit-suppressions.html).

   ```
   aws iot list-audit-suppressions
   ```

   Saída:

   ```
   {
    "suppressions": []
   }
   ```

Neste tutorial, mostramos como suprimir uma verificação `Device certificate expiring` no console e na CLI. Para obter mais informações sobre supressões de descobertas de auditoria, consulte [Supressões de descobertas de auditoria](audit-finding-suppressions.md)