

# Politique AWS IoT potentiellement mal configurée
<a name="audit-chk-iot-misconfigured-policies"></a>

Une politique AWS IoT a été identifiée comme potentiellement mal configurée. Des politiques mal configurées, notamment des politiques trop permissives, peuvent provoquer des incidents de sécurité tels que le fait de permettre aux appareils d’accéder à des ressources inattendues.

La vérification de la politique **AWS IoT potentiellement mal configurée** est un avertissement qui vous permet de vous assurer que seules les actions prévues sont autorisées avant de mettre à jour la politique.

Dans la CLI et l’API, cette vérification apparaît comme `IOT_POLICY_POTENTIAL_MISCONFIGURATION_CHECK`

**Gravité :** Moyenne

## Détails
<a name="audit-chk-iot-misconfigured-policies-details"></a>

AWS IoT renvoie le code de motif suivant lorsque cette vérification détecte une politique AWS IoT potentiellement mal configurée :
+ POLICY\_CONTAINS\_MQTT\_WILDCARDS\_IN\_DENY\_STATEMENT
+ TOPIC\_FILTERS\_INTENDED\_TO\_DENY\_ALLOWED\_USING\_WILDCARDS

## Pourquoi est-ce important ?
<a name="audit-chk-iot-misconfigured-policies-why-it-matters"></a>

Des politiques mal configurées peuvent entraîner des conséquences inattendues en accordant plus d’autorisations aux appareils que nécessaire. Nous recommandons d’examiner attentivement la politique afin de limiter l’accès aux ressources et de prévenir les menaces de sécurité.

### La politique contient des caractères génériques MQTT dans un exemple de déclaration de refus
<a name="example-section-id"></a>

La politique **AWS IoT de vérification potentiellement mal configurée** inspecte la présence de caractères génériques MQTT (`+` ou `#`) dans les instructions de refus. Les caractères génériques sont traités comme des chaînes littérales par les politiques AWS IoT et peuvent rendre la politique trop permissive.

L’exemple suivant vise à refuser l’abonnement à des sujets liés à `building/control_room` à l’aide du caractère générique MQTT dans les politiques `#`. Cependant, les caractères génériques MQTT n’ont pas de signification générique dans les politiques AWS IoT auxquelles les appareils peuvent s’abonner `building/control_room/data1`.

La vérification de la politique **AWS IoT potentiellement mal configurée** signalera cette politique avec un code `POLICY_CONTAINS_MQTT_WILDCARDS_IN_DENY_STATEMENT` anomalie.​

------
#### [ 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/*"
        }
    ]
}
```

------

Voici un exemple de politique correctement configurée. Les appareils ne sont pas autorisés à s’abonner aux sous-rubriques de `building/control_room/` et ne sont pas autorisés à recevoir des messages provenant de rubriques secondaires 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/*"
    }
  ]
}
```

------

### Exemple de filtres de rubrique destinés à refuser l’autorisation à l’aide de caractères génériques
<a name="example-section-id2"></a>

L’exemple de politique suivant vise à refuser l’abonnement à des rubriques liées à `building/control_room` en refusant la ressource `building/control_room/*`. Cependant, les appareils peuvent envoyer des demandes d’abonnement `building/#` et de réception de messages concernant toutes les rubriques connexes `building`, y compris `building/control_room/data1`.

La vérification de la politique **AWS IoT potentiellement mal configurée** signalera cette politique avec un code `TOPIC_FILTERS_INTENDED_TO_DENY_ALLOWED_USING_WILDCARDS` anomalie.​

L’exemple de politique suivant permet de recevoir des messages sur `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/*"
        }
    ]
}
```

------

Voici un exemple de politique correctement configurée. Les appareils ne sont pas autorisés à s’abonner aux sous-rubriques de `building/control_room/` et ne sont pas autorisés à recevoir des messages provenant de rubriques secondaires 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/*"
        }
    ]
}
```

------

**Note**  
Cette vérification peut signaler des faux positifs. Nous vous recommandons d’évaluer toutes les politiques signalées et de marquer les ressources faussement positives à l’aide de suppressions d’audit.

## Comment réparer
<a name="audit-chk-iot-misconfigured-policies-how-to-fix"></a>

Cette vérification signale les politiques potentiellement mal configurées, de sorte qu’il peut y avoir des faux positifs. Marquez les faux positifs à l’aide de [suppressions d’audit](audit-finding-suppressions.md) afin qu’ils ne soient pas signalés à l’avenir.

Vous pouvez également suivre ces étapes pour corriger les politiques non conformes attachées aux objets, groupes d’objets ou autres entités :

1. Utilisez [CreatePolicyVersion](https://docs.aws.amazon.com/iot/latest/apireference/API_CreatePolicyVersion.html) pour créer une nouvelle version conforme de la stratégie. Définissez l’indicateur `setAsDefault` sur true. (Cela rend cette nouvelle version opérationnelle pour toutes les entités qui utilisent la stratégie.)

   Pour des exemples de création de politiques AWS IoT pour des cas d’utilisation courants, consultez [Exemples de politiques de publication/d’abonnement](https://docs.aws.amazon.com/iot/latest/developerguide/pub-sub-policy.html) dans le *Guide du développeur AWS IoT Core*.

1. Vérifiez que tous les appareils associés sont en mesure de se connecter à AWS IoT. Si un appareil n’est pas en mesure de se connecter, utilisez [ SetPolicyVersion](https://docs.aws.amazon.com/iot/latest/apireference/API_SetPolicyVersion.html) pour restaurer la stratégie par défaut à la version précédente, révisez la stratégie et faites une nouvelle tentative. 

Vous pouvez utiliser des actions d’atténuation pour effectuer les actions suivantes :
+ Appliquer l’action d’atténuation `REPLACE_DEFAULT_POLICY_VERSION` sur vos résultats d’audit pour effectuer ce changement. 
+ Appliquer l’action d’atténuation `PUBLISH_FINDINGS_TO_SNS` si vous souhaitez mettre en œuvre une réponse personnalisée pour répondre au message Amazon SNS. 

Pour de plus amples informations, consultez [Actions d'atténuation](dd-mitigation-actions.md). 

Consultez [Variables de stratégie IoT Core](https://docs.aws.amazon.com/iot/latest/developerguide/iot-policy-variables.html) dans le *Guide du développeur AWS IoT Core* pour faire référence de manière dynamique aux ressources AWS IoT dans vos politiques.