La política de AWS IoT está potencialmente mal configurada
Se identificó una política de AWS IoT potencialmente mal configurada. Las políticas mal configuradas, incluidas las políticas demasiado permisivas, pueden provocar incidentes de seguridad, como permitir que los dispositivos accedan a recursos no deseados.
La comprobación de una política de AWS IoT potencialmente mal configurada es una advertencia para que se asegure de que solo se permiten las acciones previstas antes de actualizar la política.
Esta comprobación aparece como IOT_POLICY_POTENTIAL_MISCONFIGURATION_CHECK
en la CLI y la API.
Gravedad: media
Detalles
AWS IoT devuelve el siguiente código de motivo cuando esta comprobación encuentra una política de AWS IoT potencialmente mal configurada:
-
POLICY_CONTAINS_MQTT_WILDCARDS_IN_DENY_STATEMENT
-
TOPIC_FILTERS_INTENDED_TO_DENY_ALLOWED_USING_WILDCARDS
¿Por qué importa?
Las políticas mal configuradas pueden tener consecuencias no deseadas, ya que proporcionan más permisos a los dispositivos de los necesarios. Recomendamos considerar detenidamente la política para limitar el acceso a los recursos y prevenir las amenazas a la seguridad.
La comprobación de la política de AWS IoT potencialmente mal configurada, inspecciona los caracteres comodín (+
o #
) de MQTT en las declaraciones de denegación. Las políticas tratan los caracteres comodín como cadenas literales y pueden hacer que la política de AWS IoT sea demasiado permisiva.
El siguiente ejemplo tiene por objeto denegar la suscripción a temas relacionados con building/control_room
usando el comodín de MQTT en las políticas de #
. Sin embargo, los caracteres comodín de MQTT no tienen un significado comodín en las políticas de AWS IoT y los dispositivos se pueden suscribir a building/control_room/data1
.
La comprobación de la política de AWS IoT potencialmente mal configurada marcará esta política con un código de motivo POLICY_CONTAINS_MQTT_WILDCARDS_IN_DENY_STATEMENT
.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:Subscribe", "Resource": "arn:aws:iot:
region
:account-id
:topicfilter/building/*" }, { "Effect": "Deny", "Action": "iot:Subscribe", "Resource": "arn:aws:iot:region
:account-id
:topicfilter/building/control_room/#" }, { "Effect": "Allow", "Action": "iot:Receive", "Resource": "arn:aws:iot:region
:account-id
:topic/building/*" } ] }
A continuación se muestra un ejemplo de una política correctamente configurada. Los dispositivos no tienen permiso para suscribirse a subtemas de building/control_room/
ni para recibir mensajes de subtemas de building/control_room/
.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:Subscribe", "Resource": "arn:aws:
region
:account-id
:topicfilter/building/*" }, { "Effect": "Deny", "Action": "iot:Subscribe", "Resource": "arn:aws:iot:region
:account-id
:topicfilter/building/control_room/*" }, { "Effect": "Allow", "Action": "iot:Receive", "Resource": "arn:aws:iot:region
:account-id
:topic/building/*" }, { "Effect": "Deny", "Action": "iot:Receive", "Resource": "arn:aws:iot:region
:account-id
:topic/building/control_room/*" } ] }
La siguiente política de ejemplo pretende denegar la suscripción a temas relacionados con building/control_room
denegando el recurso de building/control_room/*
. Sin embargo, los dispositivos pueden enviar solicitudes para suscribirse a building/#
y recibir mensajes de todos los temas relacionados con building
, incluidos building/control_room/data1
.
La comprobación de la política de AWS IoT potencialmente mal configurada marcará esta política con un código de motivo TOPIC_FILTERS_INTENDED_TO_DENY_ALLOWED_USING_WILDCARDS
.
El siguiente ejemplo de política tiene permisos para recibir mensajes en building/control_room topics
:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:Subscribe", "Resource": "arn:aws:iot:
region
:account-id
:topicfilter/building/*" }, { "Effect": "Deny", "Action": "iot:Subscribe", "Resource": "arn:aws:iot:region
:account-id
:topicfilter/building/control_room/*" }, { "Effect": "Allow", "Action": "iot:Receive", "Resource": "arn:aws:iot:region
:account-id
:topic/building/*" } ] }
A continuación se muestra un ejemplo de una política correctamente configurada. Los dispositivos no tienen permiso para suscribirse a subtemas de building/control_room/
ni para recibir mensajes de subtemas de building/control_room/
.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:Subscribe", "Resource": "arn:aws:iot:
region
:account-id
:topicfilter/building/*" }, { "Effect": "Deny", "Action": "iot:Subscribe", "Resource": "arn:aws:iot:region
:account-id
:topicfilter/building/control_room/*" }, { "Effect": "Allow", "Action": "iot:Receive", "Resource": "arn:aws:iot:region
:account-id
:topic/building/*" }, { "Effect": "Deny", "Action": "iot:Receive", "Resource": "arn:aws:iot:region
:account-id
:topic/building/control_room/*" } ] }
nota
Esta comprobación podría arrojar falsos positivos. Le recomendamos que evalúe las políticas marcadas y seleccione los recursos con falsos positivos mediante supresiones de auditoría.
Cómo solucionarlo
Esta comprobación marca las políticas que potencialmente mal configuradas, por lo que podrían producirse falsos positivos. Marque los falsos positivos mediante supresiones de auditoría para que no se detecten en el futuro.
También puede seguir estos pasos para corregir las políticas no conformes asociadas a objetos, grupos de objetos u otras entidades:
-
Utilice CreatePolicyVersion para crear une nueva versión conforme de la política. Establezca la marca
setAsDefault
en true. (Esto hace que esta nueva versión funcione para todas las entidades que utilizan la política).Para ver ejemplos de creación de políticas de AWS IoT para casos de uso comunes, consulte los ejemplos de políticas Publish/Subscribe en la Guía para desarrolladores de AWS IoT Core.
-
Verifique que todos los dispositivos asociados puedan conectarse a AWS IoT. Si un dispositivo no puede conectarse, utilice SetPolicyVersion para devolver la política predeterminada a la versión anterior, revisar la política e intentarlo de nuevo.
Puede utilizar acciones de mitigación para:
-
Aplicar la acción de mitigación
REPLACE_DEFAULT_POLICY_VERSION
en los resultados de la auditoría para realizar este cambio. -
Aplicar la acción de mitigación
PUBLISH_FINDINGS_TO_SNS
si desea implementar una respuesta personalizada en respuesta al mensaje de Amazon SNS.
Para obtener más información, consulte Acciones de mitigación.
Utilice las variables de política de IoT Core en la Guía para desarrolladores de AWS IoT Core para hacer referencia de forma dinámica a los recursos de AWS IoT en las políticas.