

# Política de AWS IoT potencialmente mal configurada
<a name="audit-chk-iot-misconfigured-policies"></a>

Uma política de AWS IoT foi identificada como potencialmente mal configurada. Políticas mal configuradas, incluindo políticas excessivamente permissivas, podem causar incidentes de segurança, como permitir que dispositivos acessem recursos não intencionais.

A verificação da **política de AWS IoT potencialmente mal configurada** é um aviso para que você se certifique de que somente as ações pretendidas são permitidas antes de atualizar a política.

Na CLI e na API, essa verificação aparece como `IOT_POLICY_POTENTIAL_MISCONFIGURATION_CHECK`.

**Gravidade:** média

## Detalhes
<a name="audit-chk-iot-misconfigured-policies-details"></a>

A AWS IoT retorna o seguinte código de motivo quando essa verificação encontra uma política de AWS IoT potencialmente mal configurada:
+ POLICY\_CONTAINS\_MQTT\_WILDCARDS\_IN\_DENY\_STATEMENT
+ TOPIC\_FILTERS\_INTENDED\_TO\_DENY\_ALLOWED\_USING\_WILDCARDS

## Por que isso importa?
<a name="audit-chk-iot-misconfigured-policies-why-it-matters"></a>

Políticas mal configuradas podem resultar em consequências não intencionais ao fornecer mais permissões aos dispositivos do que o necessário. Recomendamos uma análise cuidadosa da política para limitar o acesso aos recursos e evitar ameaças à segurança.

### A política contém curingas MQTT no exemplo de declaração de negação
<a name="example-section-id"></a>

A **verificação da política de AWS IoT potencialmente mal configuradas** inspeciona os caracteres curinga (`+` ou `#`) do MQTT em declarações de negação. Os curingas são tratados como strings literais pelas políticas de AWS IoT e podem tornar a política excessivamente permissiva.

O exemplo a seguir tem como objetivo negar a assinatura de tópicos relacionados a `building/control_room` do curinga do MQTT `#` nas políticas. No entanto, os curingas do MQTT não têm um significado curinga nas políticas de AWS IoT e os dispositivos podem assinar `building/control_room/data1`.

A **verificação da política de AWS IoT potencialmente mal configurada** sinalizará essa política com o código de motivo `POLICY_CONTAINS_MQTT_WILDCARDS_IN_DENY_STATEMENT`.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iot:Subscribe",
            "Resource": "arn:aws:iot:us-east-1:123456789012:topicfilter/building/*"
        },
        {
            "Effect": "Deny",
            "Action": "iot:Subscribe",
            "Resource": "arn:aws:iot:us-east-1:123456789012:topicfilter/building/control_room/#"
        },
        {
            "Effect": "Allow",
            "Action": "iot:Receive",
            "Resource": "arn:aws:iot:us-east-1:123456789012:topic/building/*"
        }
    ]
}
```

------

Veja a seguir um exemplo de uma política configurada corretamente. Os dispositivos não têm permissão para assinar subtópicos de `building/control_room/` e para receber mensagens de subtópicos de `building/control_room/`.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "iot:Subscribe",
      "Resource": "arn:aws:iot:us-east-1:123456789012:topicfilter/building/*"
    },
    {
      "Effect": "Deny",
      "Action": "iot:Subscribe",
      "Resource": "arn:aws:iot:us-east-1:123456789012:topicfilter/building/control_room/*"
    },
    {
      "Effect": "Allow",
      "Action": "iot:Receive",
      "Resource": "arn:aws:iot:us-east-1:123456789012:topic/building/*"
    },
    {
      "Effect": "Deny",
      "Action": "iot:Receive",
      "Resource": "arn:aws:iot:us-east-1:123456789012:topic/building/control_room/*"
    }
  ]
}
```

------

### Exemplo de filtros de tópicos para negar a permissão usando curingas
<a name="example-section-id2"></a>

O exemplo de política a seguir tem como objetivo negar a assinatura de tópicos relacionados a `building/control_room` negando o recurso `building/control_room/*`. No entanto, os dispositivos podem enviar solicitações para assinar `building/#` e receber mensagens de todos os tópicos relacionados a `building`, incluindo `building/control_room/data1`.

A **verificação da política de AWS IoT potencialmente mal configurada** sinalizará essa política com o código de motivo `TOPIC_FILTERS_INTENDED_TO_DENY_ALLOWED_USING_WILDCARDS`.

O exemplo de política a seguir tem permissões para receber mensagens em `building/control_room topics`:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iot:Subscribe",
            "Resource": "arn:aws:iot:us-east-1:123456789012:topicfilter/building/*"
        },
        {
            "Effect": "Deny",
            "Action": "iot:Subscribe",
            "Resource": "arn:aws:iot:us-east-1:123456789012:topicfilter/building/control_room/*"
        },
        {
            "Effect": "Allow",
            "Action": "iot:Receive",
            "Resource": "arn:aws:iot:us-east-1:123456789012:topic/building/*"
        }
    ]
}
```

------

Veja a seguir um exemplo de uma política configurada corretamente. Os dispositivos não têm permissão para assinar subtópicos de `building/control_room/` e para receber mensagens de subtópicos de `building/control_room/`.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iot:Subscribe",
            "Resource": "arn:aws:iot:us-east-1:123456789012:topicfilter/building/*"
        },
        {
            "Effect": "Deny",
            "Action": "iot:Subscribe",
            "Resource": "arn:aws:iot:us-east-1:123456789012:topicfilter/building/control_room/*"
        },
        {
            "Effect": "Allow",
            "Action": "iot:Receive",
            "Resource": "arn:aws:iot:us-east-1:123456789012:topic/building/*"
        },
        {
            "Effect": "Deny",
            "Action": "iot:Receive",
            "Resource": "arn:aws:iot:us-east-1:123456789012:topic/building/control_room/*"
        }
    ]
}
```

------

**nota**  
Essa verificação pode relatar falsos positivos. Recomendamos que você avalie todas as políticas sinalizadas e marque os recursos de falsos positivos usando supressões de auditoria.

## Como corrigir
<a name="audit-chk-iot-misconfigured-policies-how-to-fix"></a>

Essa verificação sinaliza políticas potencialmente mal configuradas, portanto, pode haver falsos positivos. Marque todos os falsos positivos usando [supressões de auditoria](audit-finding-suppressions.md) para que eles não sejam sinalizados no futuro.

Você também pode seguir estas etapas para corrigir todas as políticas que não estão em conformidade anexadas o objetos, grupos de objetos ou outras entidades:

1. Use [CreatePolicyVersion](https://docs.aws.amazon.com/iot/latest/apireference/API_CreatePolicyVersion.html) para criar uma nova versão compatível da política. Defina o sinalizador `setAsDefault` como verdadeiro. (Isso torna essa nova versão operacional para todas as entidades que usam a política.)

   Para ver exemplos de criação de políticas de AWS IoT em casos de uso comuns, consulte [exemplos de políticas de publicação/assinatura](https://docs.aws.amazon.com/iot/latest/developerguide/pub-sub-policy.html) na *Guia do desenvolvedor do AWS IoT Core*.

1. Verifique se todos os dispositivos associados podem se conectar à AWS IoT. Se um dispositivo não conseguir se conectar, use [ SetPolicyVersion](https://docs.aws.amazon.com/iot/latest/apireference/API_SetPolicyVersion.html) para reverter a política padrão para a versão anterior, revise-a e tente novamente. 

Você pode usar ações de mitigação para:
+ Aplicar a ação de mitigação `REPLACE_DEFAULT_POLICY_VERSION` em suas descobertas de auditoria para fazer essa mudança. 
+ Aplicar a ação de mitigação `PUBLISH_FINDINGS_TO_SNS` se você desejar implementar uma resposta personalizada em resposta à mensagem do Amazon SNS. 

Para obter mais informações, consulte [Ações de mitigação](dd-mitigation-actions.md). 

Use as [variáveis da política do IoT Core](https://docs.aws.amazon.com/iot/latest/developerguide/iot-policy-variables.html) no *Guia do desenvolvedor do AWS IoT Core* para fazer referência dinâmica aos recursos do AWS IoT nas suas políticas.