

# Guia do ML Detect
<a name="dd-detect-ml-getting-started"></a>

**nota**  
O ML Detect não está disponível nas seguintes regiões:  
Ásia-Pacífico (Malásia)

Neste Guia de conceitos básicos, você verá como criar um perfil de segurança do ML Detect que usa machine learning (ML) para criar modelos de comportamento esperado com base nos dados históricos de métrica dos dispositivos. Enquanto o ML Detect está criando o modelo de ML, é possível monitorar o andamento. Depois que o modelo de ML for criado, você poderá visualizar e investigar continuamente os alarmes e mitigar os problemas identificados.

Para obter mais informações sobre o ML Detect e seus comandos da API e CLI, consulte [ML Detect](dd-detect-ml.md).

**Topics**
+ [

## Pré-requisitos
](#ml-detect-prereqs)
+ [

## Como usar o ML Detect no console
](#dd-detect-ml-console)
+ [

## Como usar o ML Detect com a CLI
](#dd-detect-ml-cli)

## Pré-requisitos
<a name="ml-detect-prereqs"></a>
+ Um Conta da AWS. Se você não tiver uma, consulte [Configuração](https://docs.aws.amazon.com/iot/latest/developerguide/dd-setting-up.html).

## Como usar o ML Detect no console
<a name="dd-detect-ml-console"></a>

**Topics**
+ [

### Ativar o ML Detect
](#enable-ml-detect-console)
+ [

### Monitorar o status do seu modelo de ML
](#monitor-ml-models-console)
+ [

### Analisar os alarmes do ML Detect
](#review-ml-alarms-console)
+ [

### Ajuste dos alarmes de ML
](#fine-tune-ml-models-console)
+ [

### Marcar o estado de verificação do alarme
](#mark-your-alarms)
+ [

### Mitigar problemas identificados em um dispositivo
](#mitigate-ml-issues-console)

### Ativar o ML Detect
<a name="enable-ml-detect-console"></a>

Os procedimentos a seguir detalham como configurar o ML Detect no console.

1. Primeiro, certifique-se de que seus dispositivos criarão os pontos de dados mínimos necessários, conforme definido nos [requisitos mínimos do ML Detect](dd-detect-ml.md#dd-detect-ml-requirements) para treinamento contínuo e atualização do modelo. Para que a coleta de dados progrida, certifique-se de que seu Perfil de segurança esteja anexado a um destino, que pode ser um objeto ou um grupo de objetos.

1. No [console da AWS IoT](https://console.aws.amazon.com/iot), no painel de navegação, expanda **Defend**. Escolha **Detect**, **Perfis de segurança**, **Criar perfil de segurança** e, em seguida, **Criar perfil do Detect para anomalias de ML**.

1. Na página **Definir configurações básicas**, faça o seguinte.
   + Em **Destino**, escolha os grupos de dispositivos de destino.
   + Em **Nome do perfil de segurança**, insira um nome para o perfil de segurança.
   + (Opcional) Em **Descrição**, você pode escrever uma breve descrição para o perfil de ML.
   + Em **Comportamentos da métrica selecionada no Perfil de segurança**, escolha as métricas que você gostaria de monitorar.  
![\[Página de configuração de “Criar um perfil de segurança de ML” com todas as coisas registradas selecionadas como destino, comportamentos de métrica listados, como falhas de autorização e tentativas de conexão, e opções para adicionar métricas do lado da nuvem ou do dispositivo.\]](http://docs.aws.amazon.com/pt_br/iot-device-defender/latest/devguide/images/dd-ml-set-basic.png)

   Quando concluir, selecione **Próximo**.

1. Na página **Definir SNS (opcional)**, especifique um tópico de SNS para notificações de alarme quando um dispositivo em seu perfil violar um comportamento. Escolha um perfil do IAM que será usado para publicar no tópico do SNS selecionado.

   Se você ainda não tem uma função do SNS, use as etapas a seguir para criá-la, com as permissões adequadas e as relações de confiança necessárias. 
   + Navegue até o [console do IAM](https://console.aws.amazon.com/iam/). No painel de navegação, escolha **Funções** e **Criar função**.
   + Em **Selecionar tipo de entidade confiável**, escolha **Serviço da AWS**. Em seguida, em **Escolher um caso de uso**, escolha **IoT** e, em **Selecionar seu caso de uso**, escolha **IoT - Ações de mitigação do Device Defender**. Quando você terminar, escolha **Próximo: Permissões**.
   + Em **Políticas de permissões anexadas**, certifique-se de que **AWSIOTDeviceDefenderPublishFindingsToSNSmitigationAction ** esteja selecionado e escolha **Próximo: Tags**.  
![\[Tabela de políticas de permissões para um perfil do AWS IoT Device Defender com nomes de políticas, descrições de a que cada política concede acesso e opções para filtrar ou pesquisar políticas.\]](http://docs.aws.amazon.com/pt_br/iot-device-defender/latest/devguide/images/dd-ml-sns-findings.png)
   + Em **Adicionar tags (opcional)**, você pode adicionar as tags que quiser associar à sua função. Quando concluir, selecione **Próximo: Revisão**.
   + Em **Revisão**, dê um nome à sua função e certifique-se de que **AWSIOTDeviceDefenderPublishFindingsToSNSmitigationAction** esteja listada em **Permissões** e **Serviço da AWS: iot.amazonaws.com** esteja listada em **Relações de confiança**. Depois de concluir, escolha **Criar função**.  
![\[Página de resumo dos perfis do IAM mostrando detalhes de Sample-SNS-role, como ARN do perfil, descrição, ARNs do perfil de instância, caminho, hora de criação, duração máxima da sessão e descobertas de publicação do AWS IoT Device Defender aplicadas à política de ação de mitigação do SNS\]](http://docs.aws.amazon.com/pt_br/iot-device-defender/latest/devguide/images/dd-ml-detect-permissions.png)  
![\[Resumo de Sample-SNS-role do IAM mostrando o ARN do perfil, a descrição do perfil fornecendo acesso de gravação do AWS IoT Device Defender para publicar notificações do SNS, o caminho, a hora da criação e as entidades confiáveis\]](http://docs.aws.amazon.com/pt_br/iot-device-defender/latest/devguide/images/dd-ml-detect-trust-relationships.png)

1. Na página **Editar comportamento da métrica**, você pode personalizar suas configurações de comportamento de ML.   
![\[Seção “Editar comportamento da métrica” com métricas de falhas de autorização, entrada de bytes e tentativas de conexão, permitindo a configuração de pontos de dados para acionadores de alarme, notificações e níveis de confiança do ML Detect.\]](http://docs.aws.amazon.com/pt_br/iot-device-defender/latest/devguide/images/dd-ml-update-config.png)

1. Quando concluir, selecione **Próximo**.

1. Na página **Revisar configuração**, verifique os comportamentos que você gostaria que o machine learning monitorasse e, em seguida, escolha **Próximo**.  
![\[Página “Editar perfil de segurança de ML” mostrando o Smart_lights_ML_Detect_Security_Profile segmentando todas as coisas registradas, com comportamentos de métrica para falhas de autorização, saída de bytes, tentativas de conexão e desconexões.\]](http://docs.aws.amazon.com/pt_br/iot-device-defender/latest/devguide/images/dd-ml-review-config.png)

   

1. Depois de criar seu Perfil de segurança, você será redirecionado para a página **Perfis de segurança**, onde o Perfil de segurança recém-criado será exibido.
**nota**  
A conclusão da criação e treinamento inicial do modelo de ML leva 14 dias. É normal ver alarmes após a conclusão, caso haja alguma atividade anômala em seus dispositivos.

### Monitorar o status do seu modelo de ML
<a name="monitor-ml-models-console"></a>

Enquanto os modelos de ML estiverem no período inicial de treinamento, você pode monitorar o progresso deles a qualquer momento, seguindo as etapas a seguir.

1. No [console da AWS IoT](https://console.aws.amazon.com/iot), no painel de navegação, expanda **Defend**, escolha **Detect** e, em seguida, **Perfis de segurança**.

1. Na página **Perfis de segurança**, escolha o Perfil de segurança que você gostaria de analisar. Em seguida, escolha **Comportamentos e treinamento de ML**.

1. Na página de **Comportamentos e treinamento de ML**, verifique o progresso do treinamento dos modelos de ML.

   Depois que o status do seu modelo passar para **Ativo**, ele começará a tomar decisões do Detect com base no uso e atualizará o perfil todos os dias.  
![\[Painel mostrando modelos de machine learning de baixa confiança para monitorar portas de receptor TCP/UDP e conexões TCP estabelecidas.\]](http://docs.aws.amazon.com/pt_br/iot-device-defender/latest/devguide/images/dd-ml-active-state.png)

**nota**  
Se seu modelo não progredir conforme o esperado, certifique-se de que os dispositivos atendam aos [Requisitos mínimos](dd-detect-ml.md#dd-detect-ml-requirements).

### Analisar os alarmes do ML Detect
<a name="review-ml-alarms-console"></a>

Depois que os modelos de ML forem criados e estiverem prontos para a inferência de dados, você conseguirá visualizar e investigar regularmente os alarmes identificados pelos modelos.

1. No [console da AWS IoT](https://console.aws.amazon.com/iot), no painel de navegação, expanda **Defend**, escolha **Detect** e, em seguida, **Alarmes**.  
![\[Lista de alarmes do AWS IoT Device Defender mostrando cinco alarmes de falha de autorização ativa com colunas de nomes de coisas, perfil de segurança, tipo de comportamento, nome do comportamento, hora da última emissão e estado de verificação.\]](http://docs.aws.amazon.com/pt_br/iot-device-defender/latest/devguide/images/dd-ml-alarms.png)

1. Se você navegar até a guia **Histórico**, também conseguirá ver detalhes sobre os dispositivos que não estão mais nos alarmes.  
![\[Gráfico de linhas mostrando alarmes em alarme, apagados e invalidados em um período de duas semanas, com o número de alarmes no eixo y e as datas no eixo x.\]](http://docs.aws.amazon.com/pt_br/iot-device-defender/latest/devguide/images/dd-ml-history-alarm.png)

   Para obter mais informações, em **Gerenciar**, escolha **Objetos** e escolha algum objeto da qual você gostaria de ver mais detalhes e, em seguida, navegue até **Métricas do Defender**. Você pode acessar o **gráfico de métricas do Defender** e realizar sua investigação sobre qualquer objeto presente nos alarmes, na guia **Ativo**. Nesse caso, o gráfico mostra um aumento no tamanho da mensagem que iniciou o alarme. Posteriormente, você pode ver o alarme ser apagado.  
![\[Painel de coisas de IoT mostrando o gráfico de métricas do tamanho máximo da mensagem com pico de 801 bytes na data e hora especificadas.\]](http://docs.aws.amazon.com/pt_br/iot-device-defender/latest/devguide/images/dd-ml-defender-metrics.png)

### Ajuste dos alarmes de ML
<a name="fine-tune-ml-models-console"></a>

Depois que os modelos de ML forem criados e estiverem prontos para as avaliações de dados, você poderá atualizar e alterar as configurações de comportamento de ML do Perfil de segurança. O procedimento a seguir mostra como atualizar as configurações de comportamento de ML do Perfil de segurança na AWS CLI.

1. No [console da AWS IoT](https://console.aws.amazon.com/iot), no painel de navegação, expanda **Defend**, escolha **Detect** e, em seguida, **Perfis de segurança**.

1. Na página **Perfis de segurança**, marque a caixa de seleção ao lado do Perfil de segurança que você gostaria de analisar. Em seguida, selecione **Ações**, **Editar**.   
![\[Lista de perfis de segurança do AWS IoT Device Defender mostrando o nome do perfil, o tipo de limite de ML, os comportamentos retidos, as coisas de destino, a data de criação e o status das notificações\]](http://docs.aws.amazon.com/pt_br/iot-device-defender/latest/devguide/images/dd-ml-fine-tune.png)

1. Em **Definir configurações básicas**, você pode ajustar os grupos de objetos de destino do Perfil de segurança ou alterar as métricas que você quer monitorar.  
![\[Página de configuração de “Criar um perfil de segurança de ML” com todas as coisas registradas selecionadas como destino, comportamentos de métrica listados, como falhas de autorização e tentativas de conexão, e opções para adicionar métricas do lado da nuvem ou do dispositivo.\]](http://docs.aws.amazon.com/pt_br/iot-device-defender/latest/devguide/images/dd-ml-set-basic.png)

1. Você pode atualizar qualquer um dos itens a seguir navegando até **Editar comportamentos de métrica**.
   + Os pontos de dados do modelo de ML são necessários para iniciar o alarme
   + Os pontos de dados do modelo de ML são necessários para apagar o alarme
   + Nível de confiança do ML Detect
   + As notificações do ML Detect (por exemplo, **Não suprimido**, **Suprimido**)  
![\[Seção “Editar comportamentos de métrica” com opções para configurar métricas de falhas de autorização, saída de bytes e tentativas de conexão para o perfil de segurança de ML.\]](http://docs.aws.amazon.com/pt_br/iot-device-defender/latest/devguide/images/dd-ml-update-config-2.png)

### Marcar o estado de verificação do alarme
<a name="mark-your-alarms"></a>

Marque os alarmes definindo o estado de verificação e fornecendo uma descrição desse estado de verificação. Isso ajuda você e sua equipe a identificar alarmes que não precisam da sua resposta.

1. No [console da AWS IoT](https://console.aws.amazon.com/iot/), sob o painel de navegação, expanda **Defend**, escolha **Detect** e, em seguida, **Alarmes**. Selecione um alarme para marcar o estado de verificação dele.  
![\[Visualização de alarmes do AWS IoT Device Defender mostrando eventos de comportamento de falha de autorização ativos para coisas do console do IoT, como iotconsole-6f8379bc-c245-4ffe-8ef7-b2b52e78975c com perfil de segurança fdsa.\]](http://docs.aws.amazon.com/pt_br/iot-device-defender/latest/devguide/images/dd-ml-alarm-select.png)

1. Escolha **Marcar estado de verificação**. O modal do estado de verificação é aberto.

1. Escolha o estado de verificação apropriado, insira uma descrição da verificação (opcional) e escolha **Marcar**. Essa ação atribui um estado de verificação e uma descrição ao alarme escolhido.  
![\[Caixa de diálogo para marcar o estado de verificação do alarme com as opções: Desconhecido, Verdadeiro positivo, Falso positivo, Positivo benigno.\]](http://docs.aws.amazon.com/pt_br/iot-device-defender/latest/devguide/images/dd-ml-alarm-state-window.png)

### Mitigar problemas identificados em um dispositivo
<a name="mitigate-ml-issues-console"></a>

1. *(Opcional)* Antes de configurar as ações de mitigação de quarentena, vamos configurar um grupo de quarentena para o qual transferiremos o dispositivo responsável pela violação. Você também pode usar um grupo existente.

1. Navegue até **Gerenciar**, **Grupos de objetos** e, em seguida, **Criar grupo de objetos**. Nomeie o grupo de objetos. Neste tutorial, nomearemos o grupo de objetos como `Quarantine_group`. Em **Grupo de objetos**, **Segurança**, aplique a seguinte política ao grupo de objetos.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Deny",
               "Action": "iot:*",
               "Resource": "*"
           }
       ]
   }
   ```

------  
![\[Página “Criar grupo de coisas” do console do AWS IoT com o botão “Criar grupo de coisas”.\]](http://docs.aws.amazon.com/pt_br/iot-device-defender/latest/devguide/images/dd-create-thing-group.png)

   Depois de concluir, escolha **Criar grupo de objetos**.

1. Agora que criamos um grupo de objetos, vamos criar uma ação de mitigação que mova os dispositivos que estão em alarme para o `Quarantine_group`.

   Em **Defender**, **Ações de mitigação**, escolha **Criar**.  
![\[Formulário de configuração da ação de mitigação do AWS IoT Device Defender com os campos Nome da ação, Tipo de ação, Permissões, Perfil de execução da ação e Grupos de coisas.\]](http://docs.aws.amazon.com/pt_br/iot-device-defender/latest/devguide/images/dd-miti-create.png)

1. Na página **Criar uma nova ação de mitigação**, insira as informações a seguir.
   + **Nome da ação**: dê um nome à ação de mitigação, como **Quarantine\$1action**.
   + **Tipo de ação**: escolha o tipo de ação. Escolheremos **Adicionar objetos ao grupo de objetos (Auditoria ou mitigação do Detect**).
   + **Função de execução da ação**: crie uma função ou escolha uma criada anteriormente.
   + **Parâmetros**: escolha um grupo de objetos. Podemos usar o `Quarantine_group` que criamos anteriormente.  
![\[Formulário de configuração da ação de mitigação do AWS IoT Device Defender com os campos Nome da ação, Tipo de ação, Permissões, Perfil de execução da ação e Grupos de coisas.\]](http://docs.aws.amazon.com/pt_br/iot-device-defender/latest/devguide/images/dd-miti-create-form.png)

   Quando terminar, selecione **Salvar**. Agora você tem uma ação de mitigação que move dispositivos em alarme para um grupo de objetos de quarentena e uma ação de mitigação para isolar o dispositivo enquanto você investiga.

1. Navegue até **Defender**, **Detect**, **Alarmes**. Você pode ver quais dispositivos estão em estado de alarme em **Ativo**.  
![\[Lista de alarmes do AWS IoT Device Defender mostrando cinco alarmes de falha de autorização ativa com colunas de nomes de coisas, perfil de segurança, tipo de comportamento, nome do comportamento, hora da última emissão e estado de verificação.\]](http://docs.aws.amazon.com/pt_br/iot-device-defender/latest/devguide/images/dd-ml-alarms.png)

   Selecione o dispositivo que você deseja mover para o grupo de quarentena e escolha **Iniciar ações de mitigação**.

1. Em **Iniciar ações de mitigação**, **Iniciar ações**, selecione a ação de mitigação criada anteriormente. Por exemplo, escolheremos **Quarantine\$1action** e, em seguida, **Iniciar**. A página de Tarefas de ação será aberta.  
![\[Caixa de diálogo de ações de mitigação com “udml7" listado como a coisa afetada, caixa de seleção para confirmar ações irreversíveis e menu suspenso para escolher as ações a serem executadas.\]](http://docs.aws.amazon.com/pt_br/iot-device-defender/latest/devguide/images/dd-ml-start-action.png)

1. O dispositivo agora está isolado no **Quarantine\$1group** e você pode investigar a causa raiz do problema que acionou o alarme. Depois de concluir a investigação, você pode retirar o dispositivo do grupo de objetos ou realizar outras ações.  
![\[Tabela de tarefas de detecção de ações do AWS IoT Device Defender mostrando uma ação de quarentena para adicionar coisas ao grupo de coisas quarantine_group.\]](http://docs.aws.amazon.com/pt_br/iot-device-defender/latest/devguide/images/dd-ml-action-tasks.png)

   

## Como usar o ML Detect com a CLI
<a name="dd-detect-ml-cli"></a>

O exemplo a seguir mostra como configurar o ML Detect usando a CLI.

**Topics**
+ [

### Ativar o ML Detect
](#enable-ml-detect-cli)
+ [

### Monitorar o status do seu modelo de ML
](#monitor-ml-models-cli)
+ [

### Analisar os alarmes do ML Detect
](#review-ml-alarms-cli)
+ [

### Ajuste dos alarmes de ML
](#fine-tune-ml-models-cli)
+ [

### Marcar o estado de verificação do alarme
](#mark-verification-state-cli)
+ [

### Mitigar problemas identificados em um dispositivo
](#mitigate-issues-cli)

### Ativar o ML Detect
<a name="enable-ml-detect-cli"></a>

O procedimento a seguir mostra como ativar o ML Detect na AWS CLI. 

1. Certifique-se de que seus dispositivos criarão os pontos de dados mínimos necessários, conforme definido nos [requisitos mínimos do ML Detect](dd-detect-ml.md#dd-detect-ml-requirements) para treinamento contínuo e atualização do modelo. Para que a coleta de dados progrida, certifique-se de que os objetos no seu grupo estejam anexadas a um Perfil de segurança.

1. Criar um Perfil de segurança do ML Detect usando o comando `[create-security-profile](https://docs.aws.amazon.com/cli/latest/reference/iot/create-security-profile.html)`. O exemplo a seguir cria um Perfil de segurança chamado *security-profile-for-smart-lights* que verifica o número de mensagens enviadas, de falhas de autorização, de tentativas de conexão e de desconexões. No exemplo, `mlDetectionConfig` é utilizado para estabelecer que a métrica usará o modelo do ML Detect.

   ```
   aws iot create-security-profile \
       --security-profile-name security-profile-for-smart-lights \
       --behaviors \
        '[{
       "name": "num-messages-sent-ml-behavior",
       "metric": "aws:num-messages-sent",
       "criteria": {
         "consecutiveDatapointsToAlarm": 1,
         "consecutiveDatapointsToClear": 1,
         "mlDetectionConfig": {
           "confidenceLevel": "HIGH"
         }
       },
       "suppressAlerts": true
     },
     {
       "name": "num-authorization-failures-ml-behavior",
       "metric": "aws:num-authorization-failures",
       "criteria": {
         "consecutiveDatapointsToAlarm": 1,
         "consecutiveDatapointsToClear": 1,
         "mlDetectionConfig": {
           "confidenceLevel": "HIGH"
         }
       },
       "suppressAlerts": true
     },
     {
       "name": "num-connection-attempts-ml-behavior",
       "metric": "aws:num-connection-attempts",
       "criteria": {
         "consecutiveDatapointsToAlarm": 1,
         "consecutiveDatapointsToClear": 1,
         "mlDetectionConfig": {
           "confidenceLevel": "HIGH"
         }
       },
       "suppressAlerts": true
     },
     {
       "name": "num-disconnects-ml-behavior",
       "metric": "aws:num-disconnects",
       "criteria": {
         "consecutiveDatapointsToAlarm": 1,
         "consecutiveDatapointsToClear": 1,
         "mlDetectionConfig": {
           "confidenceLevel": "HIGH"
         }
       },
       "suppressAlerts": true
     }]'
   ```

   Resultado:

   ```
   {
       "securityProfileName": "security-profile-for-smart-lights",
       "securityProfileArn": "arn:aws:iot:eu-west-1:123456789012:securityprofile/security-profile-for-smart-lights"
     }
   ```

1. Em seguida, associe seu Perfil de segurança a um ou vários grupos de objetos. Use o comando `[attach-security-profile](https://docs.aws.amazon.com/cli/latest/reference/iot/attach-security-profile.html)` para anexar um grupo de objetos ao seu Perfil de segurança. O exemplo a seguir associa um grupo de objetos chamado *ML\$1Detect\$1beta\$1static\$1group* ao Perfil de segurança *security-profile-for-smart-lights*.

   ```
   aws iot attach-security-profile \
   --security-profile-name security-profile-for-smart-lights \
   --security-profile-target-arn arn:aws:iot:eu-west-1:123456789012:thinggroup/ML_Detect_beta_static_group
   ```

   Resultado:

   Nenhum.

1. Depois de criar o Perfil de segurança completo, o modelo de ML começa a ser treinado. A conclusão da construção e treinamento inicial do modelo de ML leva 14 dias. Após 14 dias, é normal ver alarmes após a conclusão, caso haja alguma atividade anômala em seus dispositivos.

### Monitorar o status do seu modelo de ML
<a name="monitor-ml-models-cli"></a>

O procedimento a seguir mostra como monitorar o treinamento em andamento de um modelo de ML.
+ Use o comando `[get-behavior-model-training-summaries](https://docs.aws.amazon.com/cli/latest/reference/iot/get-behavior-model-training-summaries.html)` para ver o progresso do modelo de ML. O exemplo a seguir mostra o resumo do progresso do treinamento do modelo de ML para o Perfil de segurança *security-profile-for-smart-lights*. O `modelStatus` mostra se um modelo concluiu o treinamento ou se a construção ainda está pendente para um comportamento específico.

  ```
  aws iot get-behavior-model-training-summaries \
     --security-profile-name security-profile-for-smart-lights
  ```

  Resultado:

  ```
  {
      "summaries": [
          {
              "securityProfileName": "security-profile-for-smart-lights",
              "behaviorName": "Messages_sent_ML_behavior",
              "trainingDataCollectionStartDate": "2020-11-30T14:00:00-08:00",
              "modelStatus": "ACTIVE",
              "datapointsCollectionPercentage": 29.408,
              "lastModelRefreshDate": "2020-12-07T14:35:19.237000-08:00"
          },
          {
              "securityProfileName": "security-profile-for-smart-lights",
              "behaviorName": "Messages_received_ML_behavior",
              "modelStatus": "PENDING_BUILD",
              "datapointsCollectionPercentage": 0.0
          },
          {
              "securityProfileName": "security-profile-for-smart-lights",
              "behaviorName": "Authorization_failures_ML_behavior",
              "trainingDataCollectionStartDate": "2020-11-30T14:00:00-08:00",
              "modelStatus": "ACTIVE",
              "datapointsCollectionPercentage": 35.464,
              "lastModelRefreshDate": "2020-12-07T14:29:44.396000-08:00"
          },
          {
              "securityProfileName": "security-profile-for-smart-lights",
              "behaviorName": "Message_size_ML_behavior",
              "trainingDataCollectionStartDate": "2020-11-30T14:00:00-08:00",
              "modelStatus": "ACTIVE",
              "datapointsCollectionPercentage": 29.332,
              "lastModelRefreshDate": "2020-12-07T14:30:44.113000-08:00"
          },
          {
              "securityProfileName": "security-profile-for-smart-lights",
              "behaviorName": "Connection_attempts_ML_behavior",
              "trainingDataCollectionStartDate": "2020-11-30T14:00:00-08:00",
              "modelStatus": "ACTIVE",
              "datapointsCollectionPercentage": 32.891999999999996,
              "lastModelRefreshDate": "2020-12-07T14:29:43.121000-08:00"
          },
          {
              "securityProfileName": "security-profile-for-smart-lights",
              "behaviorName": "Disconnects_ML_behavior",
              "trainingDataCollectionStartDate": "2020-11-30T14:00:00-08:00",
              "modelStatus": "ACTIVE",
              "datapointsCollectionPercentage": 35.46,
              "lastModelRefreshDate": "2020-12-07T14:29:55.556000-08:00"
          }
      ]
  }
  ```

**nota**  
Se seu modelo não progredir conforme o esperado, certifique-se de que os dispositivos atendam aos [Requisitos mínimos](dd-detect-ml.md#dd-detect-ml-requirements).

### Analisar os alarmes do ML Detect
<a name="review-ml-alarms-cli"></a>

Depois que os modelos de ML forem criados e estiverem prontos para as avaliações de dados, você conseguirá visualizar regularmente os alarmes inferidos pelos modelos. O procedimento a seguir mostra como visualizar os alarmes na AWS CLI.
+ Para ver todos os alarmes ativos, use o comando `[list-active-violations](https://docs.aws.amazon.com/cli/latest/reference/iot/list-active-violations.html)`.

  ```
  aws iot list-active-violations \
  --max-results 2
  ```

  Resultado:

  ```
  {
      "activeViolations": []
  }
  ```

  Como alternativa, você pode visualizar todas as violações descobertas durante um determinado período, usando o comando `[list-violation-events](https://docs.aws.amazon.com/cli/latest/reference/iot/list-violation-events.html)`. O exemplo a seguir lista eventos de violação de 22 de setembro de 2020 5:42:13 GMT a 26 de outubro de 2020 5:42:13 GMT.

  ```
  aws iot list-violation-events \
      --start-time 1599500533 \ 
      --end-time 1600796533 \
      --max-results 2
  ```

  Resultado:

  ```
  {
      "violationEvents": [
          {
              "violationId": "1448be98c09c3d4ab7cb9b6f3ece65d6",
              "thingName": "lightbulb-1",
              "securityProfileName": "security-profile-for-smart-lights",
              "behavior": {
                  "name": "LowConfidence_MladBehavior_MessagesSent",
                  "metric": "aws:num-messages-sent",
                  "criteria": {
                      "consecutiveDatapointsToAlarm": 1,
                      "consecutiveDatapointsToClear": 1,
                      "mlDetectionConfig": {
                          "confidenceLevel": "HIGH"
                      }
                  },
                  "suppressAlerts": true
              },
              "violationEventType": "alarm-invalidated",
              "violationEventTime": 1600780245.29
          },
          {
              "violationId": "df4537569ef23efb1c029a433ae84b52",
              "thingName": "lightbulb-2",
              "securityProfileName": "security-profile-for-smart-lights",
              "behavior": {
                  "name": "LowConfidence_MladBehavior_MessagesSent",
                  "metric": "aws:num-messages-sent",
                  "criteria": {
                      "consecutiveDatapointsToAlarm": 1,
                      "consecutiveDatapointsToClear": 1,
                      "mlDetectionConfig": {
                          "confidenceLevel": "HIGH"
                      }
                  },
                  "suppressAlerts": true
              },
              "violationEventType": "alarm-invalidated",
              "violationEventTime": 1600780245.281
          }
      ],
      "nextToken": "Amo6XIUrsOohsojuIG6TuwSR3X9iUvH2OCksBZg6bed2j21VSnD1uP1pflxKX1+a3cvBRSosIB0xFv40kM6RYBknZ/vxabMe/ZW31Ps/WiZHlr9Wg7R7eEGli59IJ/U0iBQ1McP/ht0E2XA2TTIvYeMmKQQPsRj/eoV9j7P/wveu7skNGepU/mvpV0O2Ap7hnV5U+Prx/9+iJA/341va+pQww7jpUeHmJN9Hw4MqW0ysw0Ry3w38hOQWEpz2xwFWAxAARxeIxCxt5c37RK/lRZBlhYqoB+w2PZ74730h8pICGY4gktJxkwHyyRabpSM/G/f5DFrD9O5v8idkTZzBxW2jrbzSUIdafPtsZHL/yAMKr3HAKtaABz2nTsOBNre7X2d/jIjjarhon0Dh9l+8I9Y5Ey+DIFBcqFTvhibKAafQt3gs6CUiqHdWiCenfJyb8whmDE2qxvdxGElGmRb+k6kuN5jrZxxw95gzfYDgRHv11iEn8h1qZLD0czkIFBpMppHj9cetHPvM+qffXGAzKi8tL6eQuCdMLXmVE3jbqcJcjk9ItnaYJi5zKDz9FVbrz9qZZPtZJFHp"
  }
  ```

### Ajuste dos alarmes de ML
<a name="fine-tune-ml-models-cli"></a>

Assim que os modelos de ML forem criados e estiverem prontos para as avaliações de dados, você poderá atualizar e alterar as configurações de comportamento de ML do Perfil de segurança. O procedimento a seguir mostra como atualizar as configurações de comportamento de ML do Perfil de segurança na AWS CLI.
+ Para alterar as configurações de comportamento de ML do Perfil de segurança, use o comando `[update-security-profile](https://docs.aws.amazon.com/cli/latest/reference/iot/update-security-profile.html)`. O exemplo a seguir atualiza os comportamentos do Perfil de segurança *security-profile-for-smart-lights* alterando `confidenceLevel` de alguns comportamentos e cancelando a supressão das notificações de todos os comportamentos.

  ```
  aws iot update-security-profile \
      --security-profile-name security-profile-for-smart-lights \
      --behaviors \
       '[{
        "name": "num-messages-sent-ml-behavior",
        "metric": "aws:num-messages-sent",
        "criteria": {
            "mlDetectionConfig": {
                "confidenceLevel" : "HIGH"
            }
        },
        "suppressAlerts": false
    },
    {
        "name": "num-authorization-failures-ml-behavior",
        "metric": "aws:num-authorization-failures",
        "criteria": {
            "mlDetectionConfig": {
                "confidenceLevel" : "HIGH"
            }
        },
        "suppressAlerts": false
    },
    {
        "name": "num-connection-attempts-ml-behavior",
        "metric": "aws:num-connection-attempts",
        "criteria": {
            "mlDetectionConfig": {
                "confidenceLevel" : "HIGH"
            }
        },
        "suppressAlerts": false
    },
    {
        "name": "num-disconnects-ml-behavior",
        "metric": "aws:num-disconnects",
        "criteria": {
            "mlDetectionConfig": {
                "confidenceLevel" : "LOW"
            }
        },
        "suppressAlerts": false
  
    }]'
  ```

  Resultado:

  ```
   {
      "securityProfileName": "security-profile-for-smart-lights",
      "securityProfileArn": "arn:aws:iot:eu-west-1:123456789012:securityprofile/security-profile-for-smart-lights",
      "behaviors": [
          {
              "name": "num-messages-sent-ml-behavior",
              "metric": "aws:num-messages-sent",
              "criteria": {
                  "mlDetectionConfig": {
                      "confidenceLevel": "HIGH"
                  }
              }
          },
          {
              "name": "num-authorization-failures-ml-behavior",
              "metric": "aws:num-authorization-failures",
              "criteria": {
                  "mlDetectionConfig": {
                      "confidenceLevel": "HIGH"
                  }
              }
          },
          {
              "name": "num-connection-attempts-ml-behavior",
              "metric": "aws:num-connection-attempts",
              "criteria": {
                  "mlDetectionConfig": {
                      "confidenceLevel": "HIGH"
                  }
              },
              "suppressAlerts": false
          },
          {
              "name": "num-disconnects-ml-behavior",
              "metric": "aws:num-disconnects",
              "criteria": {
                  "mlDetectionConfig": {
                      "confidenceLevel": "LOW"
                  }
              },
              "suppressAlerts": true
          }
      ],
      "version": 2,
      "creationDate": 1600799559.249,
      "lastModifiedDate": 1600800516.856
  }
  ```

### Marcar o estado de verificação do alarme
<a name="mark-verification-state-cli"></a>

Você pode marcar os alarmes com estados de verificação para ajudar a classificá-los e investigar anomalias.
+ Marque os alarmes com um estado de verificação e uma descrição desse estado. Por exemplo, para definir o estado de verificação de um alarme como Falso positivo, use o seguinte comando:

  ```
  aws iot put-verification-state-on-violation --violation-id 12345  --verification-state FALSE_POSITIVE --verification-state-description "This is dummy description"  --endpoint https://us-east-1.iot.amazonaws.com --region us-east-1
  ```

  Resultado:

  Nenhum.

### Mitigar problemas identificados em um dispositivo
<a name="mitigate-issues-cli"></a>

1. Use o comando `[create-thing-group](https://docs.aws.amazon.com/cli/latest/reference/iot/create-thing-group.html)` para criar um grupo de objetos para a ação de mitigação. No exemplo a seguir, criamos um grupo de objetos chamado ** ThingGroupForDetectMitigationAction**.

   ```
   aws iot create-thing-group —thing-group-name ThingGroupForDetectMitigationAction
   ```

   Resultado:

   ```
   {
    "thingGroupName": "ThingGroupForDetectMitigationAction",
    "thingGroupArn": "arn:aws:iot:us-east-1:123456789012:thinggroup/ThingGroupForDetectMitigationAction",
    "thingGroupId": "4139cd61-10fa-4c40-b867-0fc6209dca4d"
   }
   ```

1. Em seguida, use o comando `[create-mitigation-action](https://docs.aws.amazon.com/cli/latest/reference/iot/create-mitigation-action.html)` para criar a ação de mitigação. No exemplo a seguir, criamos uma ação de mitigação chamada **detect\$1mitigation\$1action** com o ARN do perfil do IAM que é usado para aplicar a ação de mitigação. Também definimos o tipo de ação e os parâmetros dessa ação. Nesse caso, nossa mitigação moverá as objetos para o grupo criado anteriormente, chamado **ThingGroupForDetectMitigationAction**.

   ```
   aws iot create-mitigation-action --action-name detect_mitigation_action \
   --role-arn arn:aws:iam::123456789012:role/MitigationActionValidRole \
   --action-params \  
   '{
        "addThingsToThingGroupParams": {
            "thingGroupNames": ["ThingGroupForDetectMitigationAction"],
            "overrideDynamicGroups": false
        }
    }'
   ```

   Resultado:

   ```
   {
    "actionArn": "arn:aws:iot:us-east-1:123456789012:mitigationaction/detect_mitigation_action",
    "actionId": "5939e3a0-bf4c-44bb-a547-1ab59ffe67c3"
   }
   ```

1. Use o comando `[start-detect-mitigation-actions-task](https://docs.aws.amazon.com/cli/latest/reference/iot/start-detect-mitigation-actions-task.html)` para iniciar a tarefa de ações de mitigação. `task-id`, `target` e `actions` são parâmetros obrigatórios.

   ```
   aws iot start-detect-mitigation-actions-task \
       --task-id taskIdForMitigationAction \
       --target '{ "violationIds" : [ "violationId-1", "violationId-2" ] }' \
       --actions "detect_mitigation_action" \
       --include-only-active-violations \
       --include-suppressed-alerts
   ```

   Resultado:

   ```
   {
       "taskId": "taskIdForMitigationAction"
   }
   ```

1. (Opcional) Para visualizar as execuções de ações de mitigação incluídas em uma tarefa, use o comando `[list-detect-mitigation-actions-executions](https://docs.aws.amazon.com/cli/latest/reference/iot/list-detect-mitigation-actions-executions.html)`.

   ```
   aws iot list-detect-mitigation-actions-executions \
       --task-id taskIdForMitigationAction \
       --max-items 5 \
       --page-size 4
   ```

   Resultado:

   ```
   {
       "actionsExecutions": [
           {
               "taskId": "e56ee95e - f4e7 - 459 c - b60a - 2701784290 af",
               "violationId": "214_fe0d92d21ee8112a6cf1724049d80",
               "actionName": "underTest_MAThingGroup71232127",
               "thingName": "cancelDetectMitigationActionsTaskd143821b",
               "executionStartDate": "Thu Jan 07 18: 35: 21 UTC 2021",
               "executionEndDate": "Thu Jan 07 18: 35: 21 UTC 2021",
               "status": "SUCCESSFUL",
           }
       ]
   }
   ```

1. (Opcional) Use o comando `[describe-detect-mitigation-actions-task](https://docs.aws.amazon.com/cli/latest/reference/iot/describe-detect-mitigation-actions-task.html)` para obter informações sobre uma tarefa de ação de mitigação.

   ```
   aws iot describe-detect-mitigation-actions-task \
       --task-id taskIdForMitigationAction
   ```

   Resultado:

   ```
   {
       "taskSummary": {
           "taskId": "taskIdForMitigationAction",
           "taskStatus": "SUCCESSFUL",
           "taskStartTime": 1609988361.224,
           "taskEndTime": 1609988362.281,
           "target": {
               "securityProfileName": "security-profile-for-smart-lights",
               "behaviorName": "num-messages-sent-ml-behavior"
           },
           "violationEventOccurrenceRange": {
               "startTime": 1609986633.0,
               "endTime": 1609987833.0
           },
           "onlyActiveViolationsIncluded": true,
           "suppressedAlertsIncluded": true,
           "actionsDefinition": [
               {
                   "name": "detect_mitigation_action",
                   "id": "5939e3a0-bf4c-44bb-a547-1ab59ffe67c3",
                   "roleArn": "arn:aws:iam::123456789012:role/MitigatioActionValidRole",
                   "actionParams": {
                       "addThingsToThingGroupParams": {
                           "thingGroupNames": [
                               "ThingGroupForDetectMitigationAction"
                           ],
                           "overrideDynamicGroups": false
                       }
                   }
               }
           ],
           "taskStatistics": {
               "actionsExecuted": 0,
               "actionsSkipped": 0,
               "actionsFailed": 0
           }
       }
   }
   ```

1. (Opcional) Para obter uma lista de tarefas de ações de mitigação, use o comando `[list-detect-mitigation-actions-tasks](https://docs.aws.amazon.com/cli/latest/reference/iot/list-detect-mitigation-actions-tasks.html)`.

   ```
   aws iot list-detect-mitigation-actions-tasks \
       --start-time 1609985315 \
       --end-time 1609988915 \
       --max-items 5 \
       --page-size 4
   ```

   Resultado:

   ```
   {
       "tasks": [
           {
               "taskId": "taskIdForMitigationAction",
               "taskStatus": "SUCCESSFUL",
               "taskStartTime": 1609988361.224,
               "taskEndTime": 1609988362.281,
               "target": {
                   "securityProfileName": "security-profile-for-smart-lights",
                   "behaviorName": "num-messages-sent-ml-behavior"
               },
               "violationEventOccurrenceRange": {
                   "startTime": 1609986633.0,
                   "endTime": 1609987833.0
               },
               "onlyActiveViolationsIncluded": true,
               "suppressedAlertsIncluded": true,
               "actionsDefinition": [
                   {
                       "name": "detect_mitigation_action",
                       "id": "5939e3a0-bf4c-44bb-a547-1ab59ffe67c3",
                       "roleArn": "arn:aws:iam::123456789012:role/MitigatioActionValidRole",
                       "actionParams": {
                           "addThingsToThingGroupParams": {
                               "thingGroupNames": [
                                   "ThingGroupForDetectMitigationAction"
                               ],
                               "overrideDynamicGroups": false
                           }
                       }
                   }
               ],
               "taskStatistics": {
                   "actionsExecuted": 0,
                   "actionsSkipped": 0,
                   "actionsFailed": 0
               }
           }
       ]
   }
   ```

1. (Opcional) Para cancelar uma tarefa de ações de mitigação, use o comando `[cancel-detect-mitigation-actions-task](https://docs.aws.amazon.com/cli/latest/reference/iot/cancel-detect-mitigation-actions-task.html)`.

   ```
   aws iot cancel-detect-mitigation-actions-task \
       --task-id taskIdForMitigationAction
   ```

   Resultado:

   Nenhum.