

# Policy AWS IoT potenzialmente configurata in modo errato
<a name="audit-chk-iot-misconfigured-policies"></a>

Una policy AWS IoT è stata identificata come potenzialmente configurata in modo errato. Le policy configurate in modo errato, comprese quelle eccessivamente permissive, possono causare incidenti di sicurezza, ad esempio consentire ai dispositivi di accedere a risorse indesiderate.

Il controllo **AWS IoT policy potentially misconfigured** è un avviso per assicurarsi che siano consentite solo le azioni previste prima di aggiornare la policy.

Nella CLI e nell’API, questo controllo viene visualizzato come `IOT_POLICY_POTENTIAL_MISCONFIGURATION_CHECK`.

**Gravità:** media

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

AWS IoT restituisce il seguente codice motivo quando questo controllo rileva una policy AWS IoT potenzialmente configurata in modo errato:
+ POLICY\_CONTAINS\_MQTT\_WILDCARDS\_IN\_DENY\_STATEMENT
+ TOPIC\_FILTERS\_INTENDED\_TO\_DENY\_ALLOWED\_USING\_WILDCARDS

## Perché è importante
<a name="audit-chk-iot-misconfigured-policies-why-it-matters"></a>

Le policy configurate in modo errato possono portare a conseguenze indesiderate fornendo ai dispositivi più autorizzazioni di quelle necessarie. Si consiglia di valutare attentamente la policy per limitare l’accesso alle risorse e impedire le minacce alla sicurezza.

### La policy contiene caratteri jolly MQTT nell’esempio di istruzione di rifiuto
<a name="example-section-id"></a>

Il controllo **AWS IoT policy potentially misconfigured** verifica la presenza di caratteri jolly MQTT (`+` o `#`) nelle istruzioni di rifiuto. I caratteri jolly vengono trattati come stringhe letterali dalle policy AWS IoT e possono rendere la policy eccessivamente permissiva.

L’esempio seguente ha lo scopo di rifiutare la sottoscrizione ad argomenti correlati a `building/control_room` utilizzando il carattere jolly MQTT `#` nelle policy. Tuttavia, i caratteri jolly MQTT non hanno un significato di carattere jolly nelle policy AWS IoT e i dispositivi possono effettuare la sottoscrizione a `building/control_room/data1`.

Il controllo **AWS IoT policy potentially misconfigured** contrassegnerà questa policy con un codice 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/*"
        }
    ]
}
```

------

Di seguito è riportato un esempio di policy configurata correttamente. I dispositivi non dispongono dell’autorizzazione per effettuare la sottoscrizione ad argomenti secondari di `building/control_room/` e non dispongono delle autorizzazioni per ricevere messaggi da argomenti secondari di `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/*"
    }
  ]
}
```

------

### Esempio di filtri argomento concepiti per rifiutare consentiti utilizzando caratteri jolly
<a name="example-section-id2"></a>

La policy di esempio seguente è concepita per rifiutare la sottoscrizione ad argomenti correlati a `building/control_room` rifiutando la risorsa `building/control_room/*`. Tuttavia, i dispositivi possono inviare richieste per effettuare la sottoscrizione a `building/#` e ricevere messaggi da tutti gli argomenti correlati a `building`, incluso `building/control_room/data1`.

Il controllo **AWS IoT policy potentially misconfigured** contrassegnerà questa policy con un codice motivo `TOPIC_FILTERS_INTENDED_TO_DENY_ALLOWED_USING_WILDCARDS`.

La policy di esempio seguente dispone delle autorizzazioni per ricevere messaggi su `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/*"
        }
    ]
}
```

------

Di seguito è riportato un esempio di policy configurata correttamente. I dispositivi non dispongono dell’autorizzazione per effettuare la sottoscrizione ad argomenti secondari di `building/control_room/` e non dispongono delle autorizzazioni per ricevere messaggi da argomenti secondari di `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**  
Questo controllo potrebbe segnalare falsi positivi. Si consiglia di valutare tutte le eventuali policy contrassegnate ed evidenziare le risorse con falsi positivi utilizzando le soppressioni di audit.

## Come risolvere il problema
<a name="audit-chk-iot-misconfigured-policies-how-to-fix"></a>

Questo controllo contrassegna le policy potenzialmente configurate in modo errato, quindi potrebbero esserci falsi positivi. Evidenziare i falsi positivi utilizzando [soppressioni della ricerca di audit](audit-finding-suppressions.md) in modo che non vengano contrassegnati in futuro.

È anche possibile seguire queste fasi per correggere eventuali policy non conformi collegate a oggetti, gruppi di oggetti o altre entità:

1. Utilizza [CreatePolicyVersion](https://docs.aws.amazon.com/iot/latest/apireference/API_CreatePolicyVersion.html) per creare una nuova versione conforme ai requisiti della policy. Imposta il flag `setAsDefault` su "true". (In questo modo questa nuova versione è operativa per tutte le entità che utilizzano la policy.)

   Per esempi di creazione di policy AWS IoT per casi d’uso comuni, consulta [Esempi di policy di pubblicazione/sottoscrizione](https://docs.aws.amazon.com/iot/latest/developerguide/pub-sub-policy.html) nella *Guida per sviluppatori di AWS IoT Core*.

1. Verificare che tutti i dispositivi associati possano connettersi a AWS IoT. Se un dispositivo non è in grado di connettersi, eseguire il rollback della policy predefinita alla versione precedente usando [ SetPolicyVersion](https://docs.aws.amazon.com/iot/latest/apireference/API_SetPolicyVersion.html), rivedere la policy e riprovare. 

Puoi usare le operazioni di mitigazione per:
+ Applicare l’operazione di mitigazione `REPLACE_DEFAULT_POLICY_VERSION` sui risultati di audit per apportare questa modifica. 
+ Applica l’operazione di mitigazione `PUBLISH_FINDINGS_TO_SNS` per implementare una risposta personalizzata al messaggio di Amazon SNS. 

Per ulteriori informazioni, consulta [Operazioni di mitigazione](dd-mitigation-actions.md). 

Usa le [variabili delle policy IoT Core](https://docs.aws.amazon.com/iot/latest/developerguide/iot-policy-variables.html) descritte nella *Guida per gli sviluppatori di AWS IoT Core* per fare riferimento in modo dinamico alle risorse AWS IoT nelle policy.