

# Die AWS IoT-Richtlinie ist möglicherweise falsch konfiguriert
<a name="audit-chk-iot-misconfigured-policies"></a>

Eine AWS IoT-Richtlinie wurde als potenziell falsch konfiguriert identifiziert. Falsch konfigurierte Richtlinien, einschließlich übermäßig permissiver Richtlinien, können zu Sicherheitsvorfällen führen, z. B. wenn Geräten der Zugriff auf unbeabsichtigte Ressourcen ermöglicht wird.

Die Überprüfung auf **potenziell falsch konfigurierte AWS IoT-Richtlinien** ist eine Warnung, mit der Sie sicherstellen müssen, dass nur beabsichtigte Aktionen zulässig sind, bevor Sie die Richtlinie aktualisieren.

In der CLI und API wird diese Prüfung als `IOT_POLICY_POTENTIAL_MISCONFIGURATION_CHECK` angezeigt.

**Schweregrad:** Mittel

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

AWS IoT gibt den folgenden Ursachencode zurück, wenn bei dieser Prüfung eine potenziell falsch konfigurierte AWS IoT-Richtlinie gefunden wird:
+ POLICY\$1CONTAINS\$1MQTT\$1WILDCARDS\$1IN\$1DENY\$1STATEMENT
+ TOPIC\$1FILTERS\$1INTENDED\$1TO\$1DENY\$1ALLOWED\$1USING\$1WILDCARDS

## Warum dies wichtig ist
<a name="audit-chk-iot-misconfigured-policies-why-it-matters"></a>

Falsch konfigurierte Richtlinien können unbeabsichtigte Folgen haben, da sie Geräten mehr Berechtigungen gewähren als erforderlich. Wir empfehlen, die Richtlinie sorgfältig zu prüfen, um den Zugriff auf Ressourcen einzuschränken und Sicherheitsbedrohungen zu verhindern.

### Die Richtlinie enthält MQTT-Platzhalter im Beispiel für eine Anweisung zur Zugriffsverweigerung (Deny-Anweisung)
<a name="example-section-id"></a>

Die **AWS IoT-Richtlinie ist möglicherweise falsch konfiguriert** und prüft MQTT-Platzhalterzeichen (`+` oder `#`) in Anweisungen zur Zugriffsverweigerung. Platzhalter werden von AWS IoT-Richtlinien als wörtliche Zeichenfolgen behandelt und können dazu führen, dass die Richtlinie zu permissiv ist.

Das folgende Beispiel soll verhindern, dass Sie Themen abonnieren, die sich auf die Verwendung von `building/control_room` unter Verwendung des MQTT-Platzhalters `#` in Richtlinien beziehen. MQTT-Platzhalter haben jedoch keine Platzhalterbedeutung in AWS IoT-Richtlinien und Geräten, die für `building/control_room/data1` abonniert werden können. 

Bei der Prüfung, ob die **AWS IoT-Richtlinie möglicherweise falsch konfiguriert ist**, wird diese Richtlinie mit einem Ursachencode `POLICY_CONTAINS_MQTT_WILDCARDS_IN_DENY_STATEMENT` gekennzeichnet.

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

------

Nachstehend finden Sie ein Beispiel für eine ordnungsgemäß konfigurierte Richtlinie. Geräte sind nicht berechtigt, Unterthemen von `building/control_room/` zu abonnieren, und sie verfügen nicht über die Berechtigung, Nachrichten aus Unterthemen von `building/control_room/` zu empfangen.

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

------

### Themenfilter, die das Zulassen verbieten sollen (Beispiel: Platzhalter)
<a name="example-section-id2"></a>

Die folgende Beispielrichtlinie soll verhindern, dass Sie das Abonnieren von Themen in Bezug auf `building/control_room` ablehnen, indem Sie die Ressource `building/control_room/*` ablehnen. Geräte können jedoch Anfragen zum Abonnieren an `building/#` senden, und Nachrichten zu allen Themen in Bezug auf `building` empfangen, einschließlich `building/control_room/data1`.

Bei der Prüfung, ob die **AWS IoT-Richtlinie möglicherweise falsch konfiguriert ist**, wird diese Richtlinie mit einem Ursachencode `TOPIC_FILTERS_INTENDED_TO_DENY_ALLOWED_USING_WILDCARDS` gekennzeichnet.

Die folgende Beispielrichtlinie verfügt über Berechtigungen zum Empfangen von Nachrichten auf `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/*"
        }
    ]
}
```

------

Nachstehend finden Sie ein Beispiel für eine ordnungsgemäß konfigurierte Richtlinie. Geräte sind nicht berechtigt, Unterthemen von `building/control_room/` zu abonnieren, und sie verfügen nicht über die Berechtigung, Nachrichten aus Unterthemen von `building/control_room/` zu empfangen.

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

------

**Anmerkung**  
Bei dieser Prüfung werden möglicherweise falsch positive Ergebnisse gemeldet. Wir empfehlen Ihnen, alle markierten Richtlinien zu überprüfen und Ressourcen mithilfe von Prüfungsunterdrückungen als falsch positiv zu kennzeichnen.

## So lässt es sich beheben
<a name="audit-chk-iot-misconfigured-policies-how-to-fix"></a>

Diese Prüfung kennzeichnet potenziell falsch konfigurierte Richtlinien, sodass es zu falsch positiven Ergebnissen kommen kann. Markieren Sie alle falsch positiven Ergebnisse mithilfe von [Prüfunterdrückungen](audit-finding-suppressions.md), damit sie künftig nicht mehr gemeldet werden.

Sie können auch folgendermaßen vorgehen, um alle nicht konformen Richtlinien zu korrigieren, die an Objekte, Objektgruppen oder andere Entitäten angefügt sind:

1. Verwenden Sie [CreatePolicyVersion](https://docs.aws.amazon.com/iot/latest/apireference/API_CreatePolicyVersion.html) zum Erstellen einer neuen, konformen Version der Richtlinie. Legen Sie das Flag `setAsDefault` auf „true“ fest. (Dies macht diese neue Version operativ für alle Entitäten, die die Richtlinie verwenden.)

   Beispiele für das Erstellen von AWS IoT-Richtlinien für allgemeine Anwendungsfälle finden Sie unter [Richtlinienbeispiele zum Veröffentlichen/Abonnieren](https://docs.aws.amazon.com/iot/latest/developerguide/pub-sub-policy.html) im *AWS IoT Core-Entwicklerhandbuch*.

1. Stellen Sie sicher, dass alle zugeordneten Geräte in der Lage sind, eine Verbindung mit herzustellen AWS IoT. Wenn ein Gerät keine Verbindung herstellen kann, führen Sie mit [SetPolicyVersion](https://docs.aws.amazon.com/iot/latest/apireference/API_SetPolicyVersion.html) ein Rollback der Standardrichtlinie auf die vorherige Version durch, überarbeiten Sie die Richtlinie und versuchen Sie es erneut. 

Sie können mit Abhilfemaßnahmen für Folgendes verwenden:
+ Wenden Sie die Abhilfemaßnahme `REPLACE_DEFAULT_POLICY_VERSION` auf Ihre Prüfungsergebnisse an, um diese Änderung vorzunehmen. 
+ Wenden Sie die Abhilfemaßnahme `PUBLISH_FINDINGS_TO_SNS` an, wenn Sie eine benutzerdefinierte Antwort als Antwort auf die Amazon SNS-Nachricht implementieren möchten. 

Weitere Informationen finden Sie unter [Abschwächungsaktionen](dd-mitigation-actions.md). 

Verwenden Sie [IoT-Core-Richtlinienvariablen](https://docs.aws.amazon.com/iot/latest/developerguide/iot-policy-variables.html) im *AWS IoT Core-Entwicklerhandbuch*, um dynamisch auf spezifische AWS IoT-Ressourcen in Ihren Richtlinien zu verweisen.