Autenticación del dispositivo cliente - AWS IoT Greengrass

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Autenticación del dispositivo cliente

El componente de autenticación del dispositivo cliente (aws.greengrass.clientdevices.Auth) autentica los dispositivos cliente y autoriza las acciones de los dispositivos cliente.

nota

Los dispositivos cliente son dispositivos IoT locales que se conectan a un dispositivo central de Greengrass para enviar mensajes MQTT y datos para su procesamiento. Para obtener más información, consulte Interactúa con dispositivos IoT locales.

Versiones

nota

La versión 2.3.0 de autenticación de dispositivos cliente ha dejado de fabricarse. Se recomienda encarecidamente que actualice a la versión 2.3.1 o posterior de la autenticación del dispositivo cliente.

Este componente tiene las siguientes versiones:

  • 2.4.x

  • 2.3.x

  • 2.2.x

  • 2.1.x

  • 2.0.x

Tipo

Este componente es un componente de complemento ()aws.greengrass.plugin. El núcleo de Greengrass ejecuta este componente en la misma máquina virtual Java (JVM) que el núcleo. El núcleo se reinicia al cambiar la versión de este componente en el dispositivo principal.

Este componente utiliza el mismo archivo de registro que el núcleo de Greengrass. Para obtener más información, consulte Supervisar AWS IoT Greengrass registros.

Para obtener más información, consulte Tipos de componentes.

Sistema operativo

Este componente se puede instalar en los dispositivos principales que ejecutan los siguientes sistemas operativos:

  • Linux

  • Windows

Requisitos

Este componente tiene los siguientes requisitos:

  • El rol de servicio de Greengrass debe estar asociado a usted Cuenta de AWS y permitir el iot:DescribeCertificate permiso.

  • La AWS IoT política del dispositivo principal debe permitir los siguientes permisos:

    • greengrass:GetConnectivityInfo, donde los recursos incluyen el ARN del dispositivo principal que ejecuta este componente

    • greengrass:VerifyClientDeviceIoTCertificateAssociation, donde los recursos incluyen el nombre de recurso de Amazon (ARN) de cada dispositivo cliente que se conecta al dispositivo principal

    • greengrass:VerifyClientDeviceIdentity

    • greengrass:PutCertificateAuthorities

    • iot:Publish, donde los recursos incluyen el ARN del siguiente tema de MQTT:

      • $aws/things/coreDeviceThingName*-gci/shadow/get

    • iot:Subscribe, donde los recursos incluyen los ARN de los siguientes filtros de temas de MQTT:

      • $aws/things/coreDeviceThingName*-gci/shadow/update/delta

      • $aws/things/coreDeviceThingName*-gci/shadow/get/accepted

    • iot:Receive, donde los recursos incluyen los ARN de los siguientes temas de MQTT:

      • $aws/things/coreDeviceThingName*-gci/shadow/update/delta

      • $aws/things/coreDeviceThingName*-gci/shadow/get/accepted

    Para obtener más información, consulte Políticas de AWS IoT para operaciones de plano de datos y AWS IoTPolítica mínima de compatibilidad con los dispositivos cliente.

  • (Opcional) Para utilizar la autenticación sin conexión, la función AWS Identity and Access Management (IAM) utilizada por el AWS IoT Greengrass servicio debe contener el siguiente permiso:

    • greengrass:ListClientDevicesAssociatedWithCoreDevicepara permitir que el dispositivo principal enumere los clientes para la autenticación sin conexión.

  • Se admite la ejecución del componente de autenticación del dispositivo cliente en una VPC. Para implementar este componente en una VPC, se requiere lo siguiente.

    • El componente de autenticación del dispositivo cliente debe tener conectividad con AWS IoT data AWS IoT Credentials y Amazon S3.

Puntos finales y puertos

Este componente debe poder realizar solicitudes salientes a los siguientes puntos finales y puertos, además de a los puntos finales y puertos necesarios para el funcionamiento básico. Para obtener más información, consulte Permitir el tráfico del dispositivo a través de un proxy o firewall.

punto de enlace Puerto Obligatoria Descripción

iot.region.amazonaws.com

443

Se utiliza para obtener información sobre AWS IoT los certificados de cosas.

Dependencias

Cuando se implementa un componente, AWS IoT Greengrass también se implementan versiones compatibles de sus dependencias. Esto significa que debe cumplir los requisitos del componente y de todas sus dependencias para poder implementarlo correctamente. En esta sección se enumeran las dependencias de las versiones publicadas de este componente y las restricciones de las versiones semánticas que definen las versiones de los componentes para cada dependencia. También puede ver las dependencias de cada versión del componente en la consola.AWS IoT Greengrass En la página de detalles del componente, busque la lista de dependencias.

2.4.4

En la siguiente tabla se enumeran las dependencias de la versión 2.4.4 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.6.0 <2.13.0 Flexible
2.4.3

La siguiente tabla muestra las dependencias de la versión 2.4.3 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.6.0 <2.12.0 Flexible
2.4.1 and 2.4.2

La siguiente tabla muestra las dependencias de las versiones 2.4.1 y 2.4.2 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.6.0 <2.11.0 Flexible
2.3.0 – 2.4.0

La siguiente tabla muestra las dependencias de las versiones 2.3.0 a 2.4.0 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.6.0 <2.10.0 Flexible
2.3.0

La siguiente tabla muestra las dependencias de la versión 2.3.0 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.6.0 <2.10.0 Flexible
2.2.3

La siguiente tabla muestra las dependencias de la versión 2.2.3 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.6.0 <=2.9.0 Flexible
2.2.2

La siguiente tabla muestra las dependencias de la versión 2.2.2 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.6.0 <=2.8.0 Flexible
2.2.1

La siguiente tabla muestra las dependencias de la versión 2.2.1 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.6.0 <2.8.0 Flexible
2.2.0

La siguiente tabla muestra las dependencias de la versión 2.2.0 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.6.0 <2.7.0 Flexible
2.1.0

La siguiente tabla muestra las dependencias de la versión 2.1.0 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.2.0 <2.7.0 Flexible
2.0.4

La siguiente tabla muestra las dependencias de la versión 2.0.4 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.2.0 <2.6.0 Flexible
2.0.2 and 2.0.3

La siguiente tabla muestra las dependencias de las versiones 2.0.2 y 2.0.3 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.2.0 <2.5.0 Flexible
2.0.1

La siguiente tabla muestra las dependencias de la versión 2.0.1 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.2.0 <2.4.0 Flexible
2.0.0

La siguiente tabla muestra las dependencias de la versión 2.0.0 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.2.0 <2.3.0 Flexible

Para obtener más información sobre las dependencias de los componentes, consulta la referencia de recetas de componentes.

Configuración

Este componente proporciona los siguientes parámetros de configuración que puede personalizar al implementar el componente.

nota

El permiso de suscripción se evalúa durante una solicitud de suscripción del cliente al broker MQTT local. Si se revoca el permiso de suscripción existente del cliente, el cliente ya no podrá suscribirse a un tema. Sin embargo, seguirá recibiendo mensajes de cualquier tema al que se haya suscrito anteriormente. Para evitar este comportamiento, el broker MQTT local debe reiniciarse tras revocar el permiso de suscripción para forzar la reautorización de los clientes.

Para el componente MQTT 5 broker (EMQX), actualice la configuración para reiniciar el restartIdentifier broker MQTT 5. Para obtener más información, consulte la configuración del componente del broker MQTT 5.

En el caso del componente broker MQTT 3.1.1 (Moquette), se reinicia semanalmente de forma predeterminada cuando el certificado del servidor cambia, lo que obliga a los clientes a volver a autorizar. Puede forzar un reinicio cambiando la información de conectividad (direcciones IP) del dispositivo principal o realizando un despliegue para eliminar el componente intermediario y volver a desplegarlo posteriormente.

v2.5.0
deviceGroups

Los grupos de dispositivos son grupos de dispositivos cliente que tienen permisos para conectarse y comunicarse con un dispositivo principal. Utilice reglas de selección para identificar grupos de dispositivos cliente y defina políticas de autorización de dispositivos cliente que especifiquen los permisos para cada grupo de dispositivos.

Este objeto contiene la siguiente información:

formatVersion

La versión de formato de este objeto de configuración.

Puede elegir entre las siguientes opciones:

  • 2021-03-05

definitions

Los grupos de dispositivos de este dispositivo principal. Cada definición especifica una regla de selección para evaluar si un dispositivo cliente es miembro del grupo. Cada definición también especifica la política de permisos que se aplicará a los dispositivos cliente que coincidan con la regla de selección. Si un dispositivo cliente es miembro de varios grupos de dispositivos, los permisos del dispositivo se componen de la política de permisos de cada grupo.

Este objeto contiene la siguiente información:

groupNameKey

El nombre de este grupo de dispositivos. groupNameKeySustitúyalo por un nombre que ayude a identificar este grupo de dispositivos.

Este objeto contiene la siguiente información:

selectionRule

La consulta que especifica qué dispositivos cliente son miembros de este grupo de dispositivos. Cuando un dispositivo cliente se conecta, el dispositivo principal evalúa esta regla de selección para determinar si el dispositivo cliente es miembro de este grupo de dispositivos. Si el dispositivo cliente es miembro, el dispositivo principal utiliza la política de este grupo de dispositivos para autorizar las acciones del dispositivo cliente.

Cada regla de selección incluye al menos una cláusula de regla de selección, que es una consulta de expresión única que puede coincidir con los dispositivos del cliente. Las reglas de selección utilizan la misma sintaxis de consulta que la indexación de AWS IoT flotas. Para obtener más información sobre la sintaxis de las reglas de selección, consulte la sintaxis de las consultas de indexación de AWS IoT flotas en la Guía AWS IoT Core para desarrolladores.

Utilice el * comodín para hacer coincidir varios dispositivos cliente con una cláusula de regla de selección. Puede usar este comodín al principio y al final del nombre del elemento para hacer coincidir los dispositivos cliente cuyos nombres comiencen o terminen con la cadena que especifique. También puede usar este comodín para hacer coincidir todos los dispositivos cliente.

nota

Para seleccionar un valor que contenga dos puntos (:), evite los dos puntos y coloque un carácter de barra invertida (). \ En formatos como JSON, debe evitar los caracteres de barra invertida, por lo que debe escribir dos caracteres de barra invertida antes del carácter de dos puntos. Por ejemplo, especifique seleccionar un thingName: MyTeam\\:ClientDevice1 elemento cuyo nombre sea. MyTeam:ClientDevice1

Puede especificar el siguiente selector:

  • thingName— El nombre del dispositivo de un AWS IoT cliente.

ejemplo Ejemplo de regla de selección

La siguiente regla de selección coincide con los dispositivos cliente cuyos nombres son MyClientDevice1 oMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
ejemplo Ejemplo de regla de selección (utilice caracteres comodín)

La siguiente regla de selección coincide con los dispositivos cliente cuyos nombres comiencen por. MyClientDevice

thingName: MyClientDevice*
ejemplo Ejemplo de regla de selección (utilice caracteres comodín)

La siguiente regla de selección coincide con los dispositivos cliente cuyos nombres terminan en. MyClientDevice

thingName: *MyClientDevice
ejemplo Ejemplo de regla de selección (hacer coincidir todos los dispositivos)

La siguiente regla de selección coincide con todos los dispositivos cliente.

thingName: *
policyName

La política de permisos que se aplica a los dispositivos cliente de este grupo de dispositivos. Especifique el nombre de la política que defina en el policies objeto.

policies

Las políticas de autorización de los dispositivos cliente para los dispositivos cliente que se conectan al dispositivo principal. Cada política de autorización especifica un conjunto de acciones y los recursos en los que un dispositivo cliente puede realizar esas acciones.

Este objeto contiene la siguiente información:

policyNameKey

El nombre de esta política de autorización. policyNameKeySustitúyala por un nombre que ayude a identificar esta política de autorización. Este nombre de política se utiliza para definir qué política se aplica a un grupo de dispositivos.

Este objeto contiene la siguiente información:

statementNameKey

El nombre de esta declaración de política. statementNameKeySustitúyala por un nombre que le ayude a identificar esta declaración de política.

Este objeto contiene la siguiente información:

operations

La lista de operaciones que permiten utilizar los recursos de esta política.

Puede incluir cualquiera de las siguientes operaciones:

  • mqtt:connect— Otorga permiso para conectarse al dispositivo principal. Los dispositivos cliente deben tener este permiso para conectarse a un dispositivo principal.

    Esta operación admite los siguientes recursos:

    • mqtt:clientId:deviceClientId— Restrinja el acceso en función del ID de cliente que utilice el dispositivo cliente para conectarse al intermediario MQTT del dispositivo principal. deviceClientIdSustitúyalo por el ID de cliente que se va a utilizar.

  • mqtt:publish— Otorga permiso para publicar mensajes de MQTT en los temas.

    Esta operación admite los siguientes recursos:

    • mqtt:topic:mqttTopic— Restrinja el acceso en función del tema de MQTT en el que un dispositivo cliente publica un mensaje. Sustituya MQTTTopic por el tema que desee utilizar.

      Este recurso no admite los caracteres comodín de los temas MQTT.

  • mqtt:subscribe— Otorga permiso para suscribirse a los filtros de temas de MQTT para recibir mensajes.

    Esta operación admite los siguientes recursos:

    • mqtt:topicfilter:mqttTopicFilter— Restrinja el acceso en función de los temas de MQTT en los que un dispositivo cliente puede suscribirse a los mensajes. mqttTopicFilterSustitúyalo por el filtro de temas que desee utilizar.

      Este recurso admite los caracteres comodín de los temas # MQTT + y MQTT. Para obtener más información, consulte los temas de MQTT en la AWS IoT Core Guía para desarrolladores.

      El dispositivo cliente puede suscribirse a los filtros de temas exactos que usted permita. Por ejemplo, si permites que el dispositivo cliente se suscriba al mqtt:topicfilter:client/+/status recurso, el dispositivo cliente puede suscribirse, client/+/status pero noclient/client1/status.

Puede especificar el * comodín para permitir el acceso a todas las acciones.

resources

La lista de recursos que permiten las operaciones de esta política. Especifique los recursos que corresponden a las operaciones de esta política. Por ejemplo, puede especificar una lista de recursos de temas de MQTT (mqtt:topic:mqttTopic) en una política que especifique la mqtt:publish operación.

Puede especificar el * comodín en cualquier lugar de la variable de recurso para permitir el acceso a todos los recursos. Por ejemplo, puede especificar que se permita mqtt:topic:my* el acceso a los recursos que coincidan con esa entrada.

Se admite la siguiente variable de recurso:

  • mqtt:topic:${iot:Connection.Thing.ThingName}

    Esto se traduce en el nombre del elemento del AWS IoT Core registro para el que se está evaluando la política. AWS IoT Core usa el certificado que presenta el dispositivo cuando se autentica para determinar qué se debe usar para verificar la conexión. Esta variable de política solo está disponible cuando un dispositivo se conecta a través de MQTT o MQTT a través del protocolo. WebSocket

statementDescription

(Opcional) Una descripción de esta declaración de política.

certificates

(Opcional) Las opciones de configuración del certificado para este dispositivo principal. Este objeto contiene la siguiente información:

serverCertificateValiditySeconds

(Opcional) Cantidad de tiempo (en segundos) tras la cual caduca el certificado del servidor MQTT local. Puede configurar esta opción para personalizar la frecuencia con la que los dispositivos cliente se desconectan y se vuelven a conectar al dispositivo principal.

Este componente rota el certificado del servidor MQTT local 24 horas antes de que caduque. El broker MQTT, como el componente Broker MQTT de Moquette, genera un nuevo certificado y se reinicia. Cuando esto ocurre, todos los dispositivos cliente conectados a este dispositivo principal se desconectan. Los dispositivos cliente se pueden volver a conectar al dispositivo principal tras un breve período de tiempo.

Predeterminado: 604800 (7 días)

Valor mínimo: 172800 (2 días)

Valor máximo: 864000 (10 días)

performance

(Opcional) Las opciones de configuración del rendimiento de este dispositivo principal. Este objeto contiene la siguiente información:

maxActiveAuthTokens

(Opcional) El número máximo de tokens de autorización de los dispositivos cliente activos. Puede aumentar este número para permitir que un mayor número de dispositivos cliente se conecten a un dispositivo de un solo núcleo, sin tener que volver a autenticarlos.

Valor predeterminado: 2500

cloudRequestQueueSize

(Opcional) El número máximo de Nube de AWS solicitudes que se van a poner en cola antes de que este componente las rechace.

Valor predeterminado: 100

maxConcurrentCloudRequests

(Opcional) El número máximo de solicitudes simultáneas que se van a enviar al. Nube de AWS Puede aumentar este número para mejorar el rendimiento de la autenticación en los dispositivos principales a los que se conecta un gran número de dispositivos cliente.

Valor predeterminado: 1

certificateAuthority

(Opcional) Opciones de configuración de la autoridad de certificación para reemplazar la autoridad intermedia del dispositivo principal por su propia autoridad de certificación intermedia.

nota

Si configura su dispositivo principal de Greengrass con una autoridad de certificación (CA) personalizada y utiliza la misma CA para emitir los certificados de los dispositivos cliente, Greengrass omite las comprobaciones de las políticas de autorización para las operaciones de MQTT de los dispositivos cliente. El componente de autenticación del dispositivo cliente confía plenamente en los clientes que utilizan certificados firmados por la CA para la que está configurado.

Para restringir este comportamiento al utilizar una CA personalizada, cree y firme los dispositivos cliente con una CA diferente o intermedia y, a continuación, ajuste los certificateChainUri campos certificateUri y para que apunten a la CA intermedia correcta.

Este objeto contiene la siguiente información.

URI del certificado

La ubicación del certificado. Puede ser un URI del sistema de archivos o un URI que apunte a un certificado almacenado en un módulo de seguridad de hardware.

certificateChainUri

La ubicación de la cadena de certificados de la CA del dispositivo principal. Debe ser la cadena de certificados completa que lleva a su CA raíz. Puede ser un URI del sistema de archivos o un URI que apunte a una cadena de certificados almacenada en un módulo de seguridad de hardware.

privateKeyUri

La ubicación de la clave privada del dispositivo principal. Puede ser un URI del sistema de archivos o un URI que apunta a una clave privada de certificado almacenada en un módulo de seguridad de hardware.

security

(Opcional) Opciones de configuración de seguridad para este dispositivo principal. Este objeto contiene la siguiente información.

clientDeviceTrustDurationMinutes

El tiempo en minutos durante el que se puede confiar en la información de autenticación de un dispositivo cliente antes de que sea necesario volver a autenticarse con el dispositivo principal. El valor predeterminado es 1.

metrics

(Opcional) Las opciones de métricas de este dispositivo principal. Las métricas de error solo se mostrarán si hay un error en la autenticación del dispositivo cliente. Este objeto contiene la siguiente información:

disableMetrics

Si el disableMetrics campo está establecido comotrue, la autenticación del dispositivo cliente no recopilará métricas.

Valor predeterminado: false

aggregatePeriodSeconds

El período de agregación en segundos que determina la frecuencia con la que la autenticación del dispositivo cliente agrega las métricas y las envía al agente de telemetría. Esto no cambia la frecuencia con la que se publican las métricas, ya que el agente de telemetría sigue publicándolas una vez al día.

Valor predeterminado: 3600

startupTimeoutSeconds

(Opcional) El tiempo máximo en segundos para que se inicie el componente. El estado del componente cambia a BROKEN si supera este tiempo de espera.

Valor predeterminado: 120

ejemplo Ejemplo: actualización de la combinación de configuraciones (mediante una política restrictiva)

El siguiente ejemplo de configuración especifica que se permita a los dispositivos cliente cuyos nombres comiencen por MyClientDevice conectarse y publicar o suscribirse en todos los temas.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
ejemplo Ejemplo: actualización de la combinación de configuraciones (mediante una política permisiva)

El siguiente ejemplo de configuración especifica permitir que todos los dispositivos cliente se conecten y publiquen o se suscriban sobre todos los temas.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
ejemplo Ejemplo: actualización de combinación de configuraciones (mediante una política de nombres de cosas)

El siguiente ejemplo de configuración permite a los dispositivos cliente publicar temas que comiencen con el nombre del dispositivo cliente y terminen con la cadenatopic.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "myThing": { "selectionRule": "thingName: *", "policyName": "MyThingNamePolicy" } }, "policies": { "MyThingNamePolicy": { "policyStatement": { "statementDescription": "mqtt publish", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:${iot:Connection.Thing.ThingName}/*/topic" ] } } } } }
v2.4.5
deviceGroups

Los grupos de dispositivos son grupos de dispositivos cliente que tienen permisos para conectarse y comunicarse con un dispositivo principal. Utilice reglas de selección para identificar grupos de dispositivos cliente y defina políticas de autorización de dispositivos cliente que especifiquen los permisos para cada grupo de dispositivos.

Este objeto contiene la siguiente información:

formatVersion

La versión de formato de este objeto de configuración.

Puede elegir entre las siguientes opciones:

  • 2021-03-05

definitions

Los grupos de dispositivos de este dispositivo principal. Cada definición especifica una regla de selección para evaluar si un dispositivo cliente es miembro del grupo. Cada definición también especifica la política de permisos que se aplicará a los dispositivos cliente que coincidan con la regla de selección. Si un dispositivo cliente es miembro de varios grupos de dispositivos, los permisos del dispositivo se componen de la política de permisos de cada grupo.

Este objeto contiene la siguiente información:

groupNameKey

El nombre de este grupo de dispositivos. groupNameKeySustitúyalo por un nombre que ayude a identificar este grupo de dispositivos.

Este objeto contiene la siguiente información:

selectionRule

La consulta que especifica qué dispositivos cliente son miembros de este grupo de dispositivos. Cuando un dispositivo cliente se conecta, el dispositivo principal evalúa esta regla de selección para determinar si el dispositivo cliente es miembro de este grupo de dispositivos. Si el dispositivo cliente es miembro, el dispositivo principal utiliza la política de este grupo de dispositivos para autorizar las acciones del dispositivo cliente.

Cada regla de selección incluye al menos una cláusula de regla de selección, que es una consulta de expresión única que puede coincidir con los dispositivos del cliente. Las reglas de selección utilizan la misma sintaxis de consulta que la indexación de AWS IoT flotas. Para obtener más información sobre la sintaxis de las reglas de selección, consulte la sintaxis de las consultas de indexación de AWS IoT flotas en la Guía AWS IoT Core para desarrolladores.

Utilice el * comodín para hacer coincidir varios dispositivos cliente con una cláusula de regla de selección. Puede usar este comodín al principio y al final del nombre del elemento para hacer coincidir los dispositivos cliente cuyos nombres comiencen o terminen con la cadena que especifique. También puede usar este comodín para hacer coincidir todos los dispositivos cliente.

nota

Para seleccionar un valor que contenga dos puntos (:), evite los dos puntos y coloque un carácter de barra invertida (). \ En formatos como JSON, debe evitar los caracteres de barra invertida, por lo que debe escribir dos caracteres de barra invertida antes del carácter de dos puntos. Por ejemplo, especifique seleccionar un thingName: MyTeam\\:ClientDevice1 elemento cuyo nombre sea. MyTeam:ClientDevice1

Puede especificar el siguiente selector:

  • thingName— El nombre del dispositivo de un AWS IoT cliente.

ejemplo Ejemplo de regla de selección

La siguiente regla de selección coincide con los dispositivos cliente cuyos nombres son MyClientDevice1 oMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
ejemplo Ejemplo de regla de selección (utilice caracteres comodín)

La siguiente regla de selección coincide con los dispositivos cliente cuyos nombres comiencen por. MyClientDevice

thingName: MyClientDevice*
ejemplo Ejemplo de regla de selección (utilice caracteres comodín)

La siguiente regla de selección coincide con los dispositivos cliente cuyos nombres terminan en. MyClientDevice

thingName: *MyClientDevice
ejemplo Ejemplo de regla de selección (hacer coincidir todos los dispositivos)

La siguiente regla de selección coincide con todos los dispositivos cliente.

thingName: *
policyName

La política de permisos que se aplica a los dispositivos cliente de este grupo de dispositivos. Especifique el nombre de la política que defina en el policies objeto.

policies

Las políticas de autorización de los dispositivos cliente para los dispositivos cliente que se conectan al dispositivo principal. Cada política de autorización especifica un conjunto de acciones y los recursos en los que un dispositivo cliente puede realizar esas acciones.

Este objeto contiene la siguiente información:

policyNameKey

El nombre de esta política de autorización. policyNameKeySustitúyala por un nombre que ayude a identificar esta política de autorización. Este nombre de política se utiliza para definir qué política se aplica a un grupo de dispositivos.

Este objeto contiene la siguiente información:

statementNameKey

El nombre de esta declaración de política. statementNameKeySustitúyala por un nombre que le ayude a identificar esta declaración de política.

Este objeto contiene la siguiente información:

operations

La lista de operaciones que permiten utilizar los recursos de esta política.

Puede incluir cualquiera de las siguientes operaciones:

  • mqtt:connect— Otorga permiso para conectarse al dispositivo principal. Los dispositivos cliente deben tener este permiso para conectarse a un dispositivo principal.

    Esta operación admite los siguientes recursos:

    • mqtt:clientId:deviceClientId— Restrinja el acceso en función del ID de cliente que utilice el dispositivo cliente para conectarse al intermediario MQTT del dispositivo principal. deviceClientIdSustitúyalo por el ID de cliente que se va a utilizar.

  • mqtt:publish— Otorga permiso para publicar mensajes de MQTT en los temas.

    Esta operación admite los siguientes recursos:

    • mqtt:topic:mqttTopic— Restrinja el acceso en función del tema de MQTT en el que un dispositivo cliente publica un mensaje. Sustituya MQTTTopic por el tema que desee utilizar.

      Este recurso no admite los caracteres comodín de los temas MQTT.

  • mqtt:subscribe— Otorga permiso para suscribirse a los filtros de temas de MQTT para recibir mensajes.

    Esta operación admite los siguientes recursos:

    • mqtt:topicfilter:mqttTopicFilter— Restrinja el acceso en función de los temas de MQTT en los que un dispositivo cliente puede suscribirse a los mensajes. mqttTopicFilterSustitúyalo por el filtro de temas que desee utilizar.

      Este recurso admite los caracteres comodín de los temas # MQTT + y MQTT. Para obtener más información, consulte los temas de MQTT en la AWS IoT Core Guía para desarrolladores.

      El dispositivo cliente puede suscribirse a los filtros de temas exactos que usted permita. Por ejemplo, si permites que el dispositivo cliente se suscriba al mqtt:topicfilter:client/+/status recurso, el dispositivo cliente puede suscribirse, client/+/status pero noclient/client1/status.

Puede especificar el * comodín para permitir el acceso a todas las acciones.

resources

La lista de recursos que permiten las operaciones de esta política. Especifique los recursos que corresponden a las operaciones de esta política. Por ejemplo, puede especificar una lista de recursos de temas de MQTT (mqtt:topic:mqttTopic) en una política que especifique la mqtt:publish operación.

Puede especificar el * comodín para permitir el acceso a todos los recursos. No puedes usar el * comodín para hacer coincidir los identificadores de recursos parciales. Por ejemplo, puede especificar"resources": "*", pero no puede especificar. "resources": "mqtt:clientId:*"

statementDescription

(Opcional) Una descripción de esta declaración de política.

certificates

(Opcional) Las opciones de configuración del certificado para este dispositivo principal. Este objeto contiene la siguiente información:

serverCertificateValiditySeconds

(Opcional) Cantidad de tiempo (en segundos) tras la cual caduca el certificado del servidor MQTT local. Puede configurar esta opción para personalizar la frecuencia con la que los dispositivos cliente se desconectan y se vuelven a conectar al dispositivo principal.

Este componente rota el certificado del servidor MQTT local 24 horas antes de que caduque. El broker MQTT, como el componente Broker MQTT de Moquette, genera un nuevo certificado y se reinicia. Cuando esto ocurre, todos los dispositivos cliente conectados a este dispositivo principal se desconectan. Los dispositivos cliente se pueden volver a conectar al dispositivo principal tras un breve período de tiempo.

Predeterminado: 604800 (7 días)

Valor mínimo: 172800 (2 días)

Valor máximo: 864000 (10 días)

performance

(Opcional) Las opciones de configuración del rendimiento de este dispositivo principal. Este objeto contiene la siguiente información:

maxActiveAuthTokens

(Opcional) El número máximo de tokens de autorización de los dispositivos cliente activos. Puede aumentar este número para permitir que un mayor número de dispositivos cliente se conecten a un dispositivo de un solo núcleo, sin tener que volver a autenticarlos.

Valor predeterminado: 2500

cloudRequestQueueSize

(Opcional) El número máximo de Nube de AWS solicitudes que se van a poner en cola antes de que este componente las rechace.

Valor predeterminado: 100

maxConcurrentCloudRequests

(Opcional) El número máximo de solicitudes simultáneas que se van a enviar al. Nube de AWS Puede aumentar este número para mejorar el rendimiento de la autenticación en los dispositivos principales a los que se conecta un gran número de dispositivos cliente.

Valor predeterminado: 1

certificateAuthority

(Opcional) Opciones de configuración de la autoridad de certificación para reemplazar la autoridad intermedia del dispositivo principal por su propia autoridad de certificación intermedia.

nota

Si configura su dispositivo principal de Greengrass con una autoridad de certificación (CA) personalizada y utiliza la misma CA para emitir los certificados de los dispositivos cliente, Greengrass omite las comprobaciones de las políticas de autorización para las operaciones de MQTT de los dispositivos cliente. El componente de autenticación del dispositivo cliente confía plenamente en los clientes que utilizan certificados firmados por la CA para la que está configurado.

Para restringir este comportamiento al utilizar una CA personalizada, cree y firme los dispositivos cliente con una CA diferente o intermedia y, a continuación, ajuste los certificateChainUri campos certificateUri y para que apunten a la CA intermedia correcta.

Este objeto contiene la siguiente información.

URI del certificado

La ubicación del certificado. Puede ser un URI del sistema de archivos o un URI que apunte a un certificado almacenado en un módulo de seguridad de hardware.

certificateChainUri

La ubicación de la cadena de certificados de la CA del dispositivo principal. Debe ser la cadena de certificados completa que lleva a su CA raíz. Puede ser un URI del sistema de archivos o un URI que apunte a una cadena de certificados almacenada en un módulo de seguridad de hardware.

privateKeyUri

La ubicación de la clave privada del dispositivo principal. Puede ser un URI del sistema de archivos o un URI que apunta a una clave privada de certificado almacenada en un módulo de seguridad de hardware.

security

(Opcional) Opciones de configuración de seguridad para este dispositivo principal. Este objeto contiene la siguiente información.

clientDeviceTrustDurationMinutes

El tiempo en minutos durante el que se puede confiar en la información de autenticación de un dispositivo cliente antes de que sea necesario volver a autenticarse con el dispositivo principal. El valor predeterminado es 1.

metrics

(Opcional) Las opciones de métricas de este dispositivo principal. Las métricas de error solo se mostrarán si hay un error en la autenticación del dispositivo cliente. Este objeto contiene la siguiente información:

disableMetrics

Si el disableMetrics campo está establecido comotrue, la autenticación del dispositivo cliente no recopilará métricas.

Valor predeterminado: false

aggregatePeriodSeconds

El período de agregación en segundos que determina la frecuencia con la que la autenticación del dispositivo cliente agrega las métricas y las envía al agente de telemetría. Esto no cambia la frecuencia con la que se publican las métricas, ya que el agente de telemetría sigue publicándolas una vez al día.

Valor predeterminado: 3600

startupTimeoutSeconds

(Opcional) El tiempo máximo en segundos para que se inicie el componente. El estado del componente cambia a BROKEN si supera este tiempo de espera.

Valor predeterminado: 120

ejemplo Ejemplo: actualización de la combinación de configuraciones (mediante una política restrictiva)

El siguiente ejemplo de configuración especifica que se permita a los dispositivos cliente cuyos nombres comiencen por MyClientDevice conectarse y publicar o suscribirse en todos los temas.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
ejemplo Ejemplo: actualización de la combinación de configuraciones (mediante una política permisiva)

El siguiente ejemplo de configuración especifica permitir que todos los dispositivos cliente se conecten y publiquen o se suscriban sobre todos los temas.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
v2.4.2 - v2.4.4
deviceGroups

Los grupos de dispositivos son grupos de dispositivos cliente que tienen permisos para conectarse y comunicarse con un dispositivo principal. Utilice reglas de selección para identificar grupos de dispositivos cliente y defina políticas de autorización de dispositivos cliente que especifiquen los permisos para cada grupo de dispositivos.

Este objeto contiene la siguiente información:

formatVersion

La versión de formato de este objeto de configuración.

Puede elegir entre las siguientes opciones:

  • 2021-03-05

definitions

Los grupos de dispositivos de este dispositivo principal. Cada definición especifica una regla de selección para evaluar si un dispositivo cliente es miembro del grupo. Cada definición también especifica la política de permisos que se aplicará a los dispositivos cliente que coincidan con la regla de selección. Si un dispositivo cliente es miembro de varios grupos de dispositivos, los permisos del dispositivo se componen de la política de permisos de cada grupo.

Este objeto contiene la siguiente información:

groupNameKey

El nombre de este grupo de dispositivos. groupNameKeySustitúyalo por un nombre que ayude a identificar este grupo de dispositivos.

Este objeto contiene la siguiente información:

selectionRule

La consulta que especifica qué dispositivos cliente son miembros de este grupo de dispositivos. Cuando un dispositivo cliente se conecta, el dispositivo principal evalúa esta regla de selección para determinar si el dispositivo cliente es miembro de este grupo de dispositivos. Si el dispositivo cliente es miembro, el dispositivo principal utiliza la política de este grupo de dispositivos para autorizar las acciones del dispositivo cliente.

Cada regla de selección incluye al menos una cláusula de regla de selección, que es una consulta de expresión única que puede coincidir con los dispositivos del cliente. Las reglas de selección utilizan la misma sintaxis de consulta que la indexación de AWS IoT flotas. Para obtener más información sobre la sintaxis de las reglas de selección, consulte la sintaxis de las consultas de indexación de AWS IoT flotas en la Guía AWS IoT Core para desarrolladores.

Utilice el * comodín para hacer coincidir varios dispositivos cliente con una cláusula de regla de selección. Puede utilizar este comodín al final del nombre del elemento para hacer coincidir los dispositivos cliente cuyos nombres comiencen por la cadena que especifique. También puede usar este comodín para que coincidan con todos los dispositivos cliente.

nota

Para seleccionar un valor que contenga dos puntos (:), evite los dos puntos y coloque un carácter de barra invertida (). \\ En formatos como JSON, debe evitar los caracteres de barra invertida, por lo que debe escribir dos caracteres de barra invertida antes del carácter de dos puntos. Por ejemplo, especifique seleccionar un thingName: MyTeam\\\\:ClientDevice1 elemento cuyo nombre sea. MyTeam:ClientDevice1

Puede especificar el siguiente selector:

  • thingName— El nombre del dispositivo de un AWS IoT cliente.

ejemplo Ejemplo de regla de selección

La siguiente regla de selección coincide con los dispositivos cliente cuyos nombres son MyClientDevice1 oMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
ejemplo Ejemplo de regla de selección (utilice caracteres comodín)

La siguiente regla de selección coincide con los dispositivos cliente cuyos nombres comiencen por. MyClientDevice

thingName: MyClientDevice*
ejemplo Ejemplo de regla de selección (hacer coincidir todos los dispositivos)

La siguiente regla de selección coincide con todos los dispositivos cliente.

thingName: *
policyName

La política de permisos que se aplica a los dispositivos cliente de este grupo de dispositivos. Especifique el nombre de la política que defina en el policies objeto.

policies

Las políticas de autorización de los dispositivos cliente para los dispositivos cliente que se conectan al dispositivo principal. Cada política de autorización especifica un conjunto de acciones y los recursos en los que un dispositivo cliente puede realizar esas acciones.

Este objeto contiene la siguiente información:

policyNameKey

El nombre de esta política de autorización. policyNameKeySustitúyala por un nombre que ayude a identificar esta política de autorización. Este nombre de política se utiliza para definir qué política se aplica a un grupo de dispositivos.

Este objeto contiene la siguiente información:

statementNameKey

El nombre de esta declaración de política. statementNameKeySustitúyala por un nombre que le ayude a identificar esta declaración de política.

Este objeto contiene la siguiente información:

operations

La lista de operaciones que permiten utilizar los recursos de esta política.

Puede incluir cualquiera de las siguientes operaciones:

  • mqtt:connect— Otorga permiso para conectarse al dispositivo principal. Los dispositivos cliente deben tener este permiso para conectarse a un dispositivo principal.

    Esta operación admite los siguientes recursos:

    • mqtt:clientId:deviceClientId— Restrinja el acceso en función del ID de cliente que utilice el dispositivo cliente para conectarse al intermediario MQTT del dispositivo principal. deviceClientIdSustitúyalo por el ID de cliente que se va a utilizar.

  • mqtt:publish— Otorga permiso para publicar mensajes de MQTT en los temas.

    Esta operación admite los siguientes recursos:

    • mqtt:topic:mqttTopic— Restrinja el acceso en función del tema de MQTT en el que un dispositivo cliente publica un mensaje. Sustituya MQTTTopic por el tema que desee utilizar.

      Este recurso no admite los caracteres comodín de los temas MQTT.

  • mqtt:subscribe— Otorga permiso para suscribirse a los filtros de temas de MQTT para recibir mensajes.

    Esta operación admite los siguientes recursos:

    • mqtt:topicfilter:mqttTopicFilter— Restrinja el acceso en función de los temas de MQTT en los que un dispositivo cliente puede suscribirse a los mensajes. mqttTopicFilterSustitúyalo por el filtro de temas que desee utilizar.

      Este recurso admite los caracteres comodín de los temas # MQTT + y MQTT. Para obtener más información, consulte los temas de MQTT en la AWS IoT Core Guía para desarrolladores.

      El dispositivo cliente puede suscribirse a los filtros de temas exactos que usted permita. Por ejemplo, si permites que el dispositivo cliente se suscriba al mqtt:topicfilter:client/+/status recurso, el dispositivo cliente puede suscribirse, client/+/status pero noclient/client1/status.

Puede especificar el * comodín para permitir el acceso a todas las acciones.

resources

La lista de recursos que permiten las operaciones de esta política. Especifique los recursos que corresponden a las operaciones de esta política. Por ejemplo, puede especificar una lista de recursos de temas de MQTT (mqtt:topic:mqttTopic) en una política que especifique la mqtt:publish operación.

Puede especificar el * comodín para permitir el acceso a todos los recursos. No puedes usar el * comodín para hacer coincidir los identificadores de recursos parciales. Por ejemplo, puede especificar"resources": "*", pero no puede especificar. "resources": "mqtt:clientId:*"

statementDescription

(Opcional) Una descripción de esta declaración de política.

certificates

(Opcional) Las opciones de configuración del certificado para este dispositivo principal. Este objeto contiene la siguiente información:

serverCertificateValiditySeconds

(Opcional) Cantidad de tiempo (en segundos) tras la cual caduca el certificado del servidor MQTT local. Puede configurar esta opción para personalizar la frecuencia con la que los dispositivos cliente se desconectan y se vuelven a conectar al dispositivo principal.

Este componente rota el certificado del servidor MQTT local 24 horas antes de que caduque. El broker MQTT, como el componente Broker MQTT de Moquette, genera un nuevo certificado y se reinicia. Cuando esto ocurre, todos los dispositivos cliente conectados a este dispositivo principal se desconectan. Los dispositivos cliente se pueden volver a conectar al dispositivo principal tras un breve período de tiempo.

Predeterminado: 604800 (7 días)

Valor mínimo: 172800 (2 días)

Valor máximo: 864000 (10 días)

performance

(Opcional) Las opciones de configuración del rendimiento de este dispositivo principal. Este objeto contiene la siguiente información:

maxActiveAuthTokens

(Opcional) El número máximo de tokens de autorización de los dispositivos cliente activos. Puede aumentar este número para permitir que un mayor número de dispositivos cliente se conecten a un dispositivo de un solo núcleo, sin tener que volver a autenticarlos.

Valor predeterminado: 2500

cloudRequestQueueSize

(Opcional) El número máximo de Nube de AWS solicitudes que se van a poner en cola antes de que este componente las rechace.

Valor predeterminado: 100

maxConcurrentCloudRequests

(Opcional) El número máximo de solicitudes simultáneas que se van a enviar al. Nube de AWS Puede aumentar este número para mejorar el rendimiento de la autenticación en los dispositivos principales a los que se conecta un gran número de dispositivos cliente.

Valor predeterminado: 1

certificateAuthority

(Opcional) Opciones de configuración de la autoridad de certificación para reemplazar la autoridad intermedia del dispositivo principal por su propia autoridad de certificación intermedia.

nota

Si configura su dispositivo principal de Greengrass con una autoridad de certificación (CA) personalizada y utiliza la misma CA para emitir los certificados de los dispositivos cliente, Greengrass omite las comprobaciones de las políticas de autorización para las operaciones de MQTT de los dispositivos cliente. El componente de autenticación del dispositivo cliente confía plenamente en los clientes que utilizan certificados firmados por la CA para la que está configurado.

Para restringir este comportamiento al utilizar una CA personalizada, cree y firme los dispositivos cliente con una CA diferente o intermedia y, a continuación, ajuste los certificateChainUri campos certificateUri y para que apunten a la CA intermedia correcta.

Este objeto contiene la siguiente información.

URI del certificado

La ubicación del certificado. Puede ser un URI del sistema de archivos o un URI que apunte a un certificado almacenado en un módulo de seguridad de hardware.

certificateChainUri

La ubicación de la cadena de certificados de la CA del dispositivo principal. Debe ser la cadena de certificados completa que lleva a su CA raíz. Puede ser un URI del sistema de archivos o un URI que apunte a una cadena de certificados almacenada en un módulo de seguridad de hardware.

privateKeyUri

La ubicación de la clave privada del dispositivo principal. Puede ser un URI del sistema de archivos o un URI que apunta a una clave privada de certificado almacenada en un módulo de seguridad de hardware.

security

(Opcional) Opciones de configuración de seguridad para este dispositivo principal. Este objeto contiene la siguiente información.

clientDeviceTrustDurationMinutes

El tiempo en minutos durante el que se puede confiar en la información de autenticación de un dispositivo cliente antes de que sea necesario volver a autenticarse con el dispositivo principal. El valor predeterminado es 1.

metrics

(Opcional) Las opciones de métricas de este dispositivo principal. Las métricas de error solo se mostrarán si hay un error en la autenticación del dispositivo cliente. Este objeto contiene la siguiente información:

disableMetrics

Si el disableMetrics campo está establecido comotrue, la autenticación del dispositivo cliente no recopilará métricas.

Valor predeterminado: false

aggregatePeriodSeconds

El período de agregación en segundos que determina la frecuencia con la que la autenticación del dispositivo cliente agrega las métricas y las envía al agente de telemetría. Esto no cambia la frecuencia con la que se publican las métricas, ya que el agente de telemetría sigue publicándolas una vez al día.

Valor predeterminado: 3600

startupTimeoutSeconds

(Opcional) El tiempo máximo en segundos para que se inicie el componente. El estado del componente cambia a BROKEN si supera este tiempo de espera.

Valor predeterminado: 120

ejemplo Ejemplo: actualización de la combinación de configuraciones (mediante una política restrictiva)

El siguiente ejemplo de configuración especifica que se permita a los dispositivos cliente cuyos nombres comiencen por MyClientDevice conectarse y publicar o suscribirse en todos los temas.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
ejemplo Ejemplo: actualización de la combinación de configuraciones (mediante una política permisiva)

El siguiente ejemplo de configuración especifica permitir que todos los dispositivos cliente se conecten y publiquen o se suscriban sobre todos los temas.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
v2.4.0 - v2.4.1
deviceGroups

Los grupos de dispositivos son grupos de dispositivos cliente que tienen permisos para conectarse y comunicarse con un dispositivo principal. Utilice reglas de selección para identificar grupos de dispositivos cliente y defina políticas de autorización de dispositivos cliente que especifiquen los permisos para cada grupo de dispositivos.

Este objeto contiene la siguiente información:

formatVersion

La versión de formato de este objeto de configuración.

Puede elegir entre las siguientes opciones:

  • 2021-03-05

definitions

Los grupos de dispositivos de este dispositivo principal. Cada definición especifica una regla de selección para evaluar si un dispositivo cliente es miembro del grupo. Cada definición también especifica la política de permisos que se aplicará a los dispositivos cliente que coincidan con la regla de selección. Si un dispositivo cliente es miembro de varios grupos de dispositivos, los permisos del dispositivo se componen de la política de permisos de cada grupo.

Este objeto contiene la siguiente información:

groupNameKey

El nombre de este grupo de dispositivos. groupNameKeySustitúyalo por un nombre que ayude a identificar este grupo de dispositivos.

Este objeto contiene la siguiente información:

selectionRule

La consulta que especifica qué dispositivos cliente son miembros de este grupo de dispositivos. Cuando un dispositivo cliente se conecta, el dispositivo principal evalúa esta regla de selección para determinar si el dispositivo cliente es miembro de este grupo de dispositivos. Si el dispositivo cliente es miembro, el dispositivo principal utiliza la política de este grupo de dispositivos para autorizar las acciones del dispositivo cliente.

Cada regla de selección incluye al menos una cláusula de regla de selección, que es una consulta de expresión única que puede coincidir con los dispositivos del cliente. Las reglas de selección utilizan la misma sintaxis de consulta que la indexación de AWS IoT flotas. Para obtener más información sobre la sintaxis de las reglas de selección, consulte la sintaxis de las consultas de indexación de AWS IoT flotas en la Guía AWS IoT Core para desarrolladores.

Utilice el * comodín para hacer coincidir varios dispositivos cliente con una cláusula de regla de selección. Puede utilizar este comodín al final del nombre del elemento para hacer coincidir los dispositivos cliente cuyos nombres comiencen por la cadena que especifique. También puede usar este comodín para que coincidan con todos los dispositivos cliente.

nota

Para seleccionar un valor que contenga dos puntos (:), evite los dos puntos y coloque un carácter de barra invertida (). \\ En formatos como JSON, debe evitar los caracteres de barra invertida, por lo que debe escribir dos caracteres de barra invertida antes del carácter de dos puntos. Por ejemplo, especifique seleccionar un thingName: MyTeam\\\\:ClientDevice1 elemento cuyo nombre sea. MyTeam:ClientDevice1

Puede especificar el siguiente selector:

  • thingName— El nombre del dispositivo de un AWS IoT cliente.

ejemplo Ejemplo de regla de selección

La siguiente regla de selección coincide con los dispositivos cliente cuyos nombres son MyClientDevice1 oMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
ejemplo Ejemplo de regla de selección (utilice caracteres comodín)

La siguiente regla de selección coincide con los dispositivos cliente cuyos nombres comiencen por. MyClientDevice

thingName: MyClientDevice*
ejemplo Ejemplo de regla de selección (hacer coincidir todos los dispositivos)

La siguiente regla de selección coincide con todos los dispositivos cliente.

thingName: *
policyName

La política de permisos que se aplica a los dispositivos cliente de este grupo de dispositivos. Especifique el nombre de la política que defina en el policies objeto.

policies

Las políticas de autorización de los dispositivos cliente para los dispositivos cliente que se conectan al dispositivo principal. Cada política de autorización especifica un conjunto de acciones y los recursos en los que un dispositivo cliente puede realizar esas acciones.

Este objeto contiene la siguiente información:

policyNameKey

El nombre de esta política de autorización. policyNameKeySustitúyala por un nombre que ayude a identificar esta política de autorización. Este nombre de política se utiliza para definir qué política se aplica a un grupo de dispositivos.

Este objeto contiene la siguiente información:

statementNameKey

El nombre de esta declaración de política. statementNameKeySustitúyala por un nombre que le ayude a identificar esta declaración de política.

Este objeto contiene la siguiente información:

operations

La lista de operaciones que permiten utilizar los recursos de esta política.

Puede incluir cualquiera de las siguientes operaciones:

  • mqtt:connect— Otorga permiso para conectarse al dispositivo principal. Los dispositivos cliente deben tener este permiso para conectarse a un dispositivo principal.

    Esta operación admite los siguientes recursos:

    • mqtt:clientId:deviceClientId— Restrinja el acceso en función del ID de cliente que utilice el dispositivo cliente para conectarse al intermediario MQTT del dispositivo principal. deviceClientIdSustitúyalo por el ID de cliente que se va a utilizar.

  • mqtt:publish— Otorga permiso para publicar mensajes de MQTT en los temas.

    Esta operación admite los siguientes recursos:

    • mqtt:topic:mqttTopic— Restrinja el acceso en función del tema de MQTT en el que un dispositivo cliente publica un mensaje. Sustituya MQTTTopic por el tema que desee utilizar.

      Este recurso no admite los caracteres comodín de los temas MQTT.

  • mqtt:subscribe— Otorga permiso para suscribirse a los filtros de temas de MQTT para recibir mensajes.

    Esta operación admite los siguientes recursos:

    • mqtt:topicfilter:mqttTopicFilter— Restrinja el acceso en función de los temas de MQTT en los que un dispositivo cliente puede suscribirse a los mensajes. mqttTopicFilterSustitúyalo por el filtro de temas que desee utilizar.

      Este recurso admite los caracteres comodín de los temas # MQTT + y MQTT. Para obtener más información, consulte los temas de MQTT en la AWS IoT Core Guía para desarrolladores.

      El dispositivo cliente puede suscribirse a los filtros de temas exactos que usted permita. Por ejemplo, si permites que el dispositivo cliente se suscriba al mqtt:topicfilter:client/+/status recurso, el dispositivo cliente puede suscribirse, client/+/status pero noclient/client1/status.

Puede especificar el * comodín para permitir el acceso a todas las acciones.

resources

La lista de recursos que permiten las operaciones de esta política. Especifique los recursos que corresponden a las operaciones de esta política. Por ejemplo, puede especificar una lista de recursos de temas de MQTT (mqtt:topic:mqttTopic) en una política que especifique la mqtt:publish operación.

Puede especificar el * comodín para permitir el acceso a todos los recursos. No puedes usar el * comodín para hacer coincidir los identificadores de recursos parciales. Por ejemplo, puede especificar"resources": "*", pero no puede especificar. "resources": "mqtt:clientId:*"

statementDescription

(Opcional) Una descripción de esta declaración de política.

certificates

(Opcional) Las opciones de configuración del certificado para este dispositivo principal. Este objeto contiene la siguiente información:

serverCertificateValiditySeconds

(Opcional) Cantidad de tiempo (en segundos) tras la cual caduca el certificado del servidor MQTT local. Puede configurar esta opción para personalizar la frecuencia con la que los dispositivos cliente se desconectan y se vuelven a conectar al dispositivo principal.

Este componente rota el certificado del servidor MQTT local 24 horas antes de que caduque. El broker MQTT, como el componente Broker MQTT de Moquette, genera un nuevo certificado y se reinicia. Cuando esto ocurre, todos los dispositivos cliente conectados a este dispositivo principal se desconectan. Los dispositivos cliente se pueden volver a conectar al dispositivo principal tras un breve período de tiempo.

Predeterminado: 604800 (7 días)

Valor mínimo: 172800 (2 días)

Valor máximo: 864000 (10 días)

performance

(Opcional) Las opciones de configuración del rendimiento de este dispositivo principal. Este objeto contiene la siguiente información:

maxActiveAuthTokens

(Opcional) El número máximo de tokens de autorización de los dispositivos cliente activos. Puede aumentar este número para permitir que un mayor número de dispositivos cliente se conecten a un dispositivo de un solo núcleo, sin tener que volver a autenticarlos.

Valor predeterminado: 2500

cloudRequestQueueSize

(Opcional) El número máximo de Nube de AWS solicitudes que se van a poner en cola antes de que este componente las rechace.

Valor predeterminado: 100

maxConcurrentCloudRequests

(Opcional) El número máximo de solicitudes simultáneas que se van a enviar al. Nube de AWS Puede aumentar este número para mejorar el rendimiento de la autenticación en los dispositivos principales a los que se conecta un gran número de dispositivos cliente.

Valor predeterminado: 1

certificateAuthority

(Opcional) Opciones de configuración de la autoridad de certificación para reemplazar la autoridad intermedia del dispositivo principal por su propia autoridad de certificación intermedia. Este objeto contiene la siguiente información.

Este objeto contiene la siguiente información:

URI del certificado

La ubicación del certificado. Puede ser un URI del sistema de archivos o un URI que apunte a un certificado almacenado en un módulo de seguridad de hardware.

certificateChainUri

La ubicación de la cadena de certificados de la CA del dispositivo principal. Debe ser la cadena de certificados completa que lleva a su CA raíz. Puede ser un URI del sistema de archivos o un URI que apunte a una cadena de certificados almacenada en un módulo de seguridad de hardware.

privateKeyUri

La ubicación de la clave privada del dispositivo principal. Puede ser un URI del sistema de archivos o un URI que apunta a una clave privada de certificado almacenada en un módulo de seguridad de hardware.

security

(Opcional) Opciones de configuración de seguridad para este dispositivo principal. Este objeto contiene la siguiente información.

clientDeviceTrustDurationMinutes

El tiempo en minutos durante el que se puede confiar en la información de autenticación de un dispositivo cliente antes de que sea necesario volver a autenticarse con el dispositivo principal. El valor predeterminado es 1.

metrics

(Opcional) Las opciones de métricas de este dispositivo principal. Las métricas de error solo se mostrarán si hay un error en la autenticación del dispositivo cliente. Este objeto contiene la siguiente información:

disableMetrics

Si el disableMetrics campo está establecido comotrue, la autenticación del dispositivo cliente no recopilará métricas.

Valor predeterminado: false

aggregatePeriodSeconds

El período de agregación en segundos que determina la frecuencia con la que la autenticación del dispositivo cliente agrega las métricas y las envía al agente de telemetría. Esto no cambia la frecuencia con la que se publican las métricas, ya que el agente de telemetría sigue publicándolas una vez al día.

Valor predeterminado: 3600

ejemplo Ejemplo: actualización de la combinación de configuraciones (mediante una política restrictiva)

El siguiente ejemplo de configuración especifica que se permita a los dispositivos cliente cuyos nombres comiencen por MyClientDevice conectarse y publicar o suscribirse en todos los temas.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
ejemplo Ejemplo: actualización de la combinación de configuraciones (mediante una política permisiva)

El siguiente ejemplo de configuración especifica permitir que todos los dispositivos cliente se conecten y publiquen o se suscriban sobre todos los temas.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
v2.3.x
deviceGroups

Los grupos de dispositivos son grupos de dispositivos cliente que tienen permisos para conectarse y comunicarse con un dispositivo principal. Utilice reglas de selección para identificar grupos de dispositivos cliente y defina políticas de autorización de dispositivos cliente que especifiquen los permisos para cada grupo de dispositivos.

Este objeto contiene la siguiente información:

formatVersion

La versión de formato de este objeto de configuración.

Puede elegir entre las siguientes opciones:

  • 2021-03-05

definitions

Los grupos de dispositivos de este dispositivo principal. Cada definición especifica una regla de selección para evaluar si un dispositivo cliente es miembro del grupo. Cada definición también especifica la política de permisos que se aplicará a los dispositivos cliente que coincidan con la regla de selección. Si un dispositivo cliente es miembro de varios grupos de dispositivos, los permisos del dispositivo se componen de la política de permisos de cada grupo.

Este objeto contiene la siguiente información:

groupNameKey

El nombre de este grupo de dispositivos. groupNameKeySustitúyalo por un nombre que ayude a identificar este grupo de dispositivos.

Este objeto contiene la siguiente información:

selectionRule

La consulta que especifica qué dispositivos cliente son miembros de este grupo de dispositivos. Cuando un dispositivo cliente se conecta, el dispositivo principal evalúa esta regla de selección para determinar si el dispositivo cliente es miembro de este grupo de dispositivos. Si el dispositivo cliente es miembro, el dispositivo principal utiliza la política de este grupo de dispositivos para autorizar las acciones del dispositivo cliente.

Cada regla de selección incluye al menos una cláusula de regla de selección, que es una consulta de expresión única que puede coincidir con los dispositivos del cliente. Las reglas de selección utilizan la misma sintaxis de consulta que la indexación de AWS IoT flotas. Para obtener más información sobre la sintaxis de las reglas de selección, consulte la sintaxis de las consultas de indexación de AWS IoT flotas en la Guía AWS IoT Core para desarrolladores.

Utilice el * comodín para hacer coincidir varios dispositivos cliente con una cláusula de regla de selección. Puede utilizar este comodín al final del nombre del elemento para hacer coincidir los dispositivos cliente cuyos nombres comiencen por la cadena que especifique. También puede usar este comodín para que coincidan con todos los dispositivos cliente.

nota

Para seleccionar un valor que contenga dos puntos (:), evite los dos puntos y coloque un carácter de barra invertida (). \\ En formatos como JSON, debe evitar los caracteres de barra invertida, por lo que debe escribir dos caracteres de barra invertida antes del carácter de dos puntos. Por ejemplo, especifique seleccionar un thingName: MyTeam\\\\:ClientDevice1 elemento cuyo nombre sea. MyTeam:ClientDevice1

Puede especificar el siguiente selector:

  • thingName— El nombre del dispositivo de un AWS IoT cliente.

ejemplo Ejemplo de regla de selección

La siguiente regla de selección coincide con los dispositivos cliente cuyos nombres son MyClientDevice1 oMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
ejemplo Ejemplo de regla de selección (utilice caracteres comodín)

La siguiente regla de selección coincide con los dispositivos cliente cuyos nombres comiencen por. MyClientDevice

thingName: MyClientDevice*
ejemplo Ejemplo de regla de selección (hacer coincidir todos los dispositivos)

La siguiente regla de selección coincide con todos los dispositivos cliente.

thingName: *
policyName

La política de permisos que se aplica a los dispositivos cliente de este grupo de dispositivos. Especifique el nombre de la política que defina en el policies objeto.

policies

Las políticas de autorización de los dispositivos cliente para los dispositivos cliente que se conectan al dispositivo principal. Cada política de autorización especifica un conjunto de acciones y los recursos en los que un dispositivo cliente puede realizar esas acciones.

Este objeto contiene la siguiente información:

policyNameKey

El nombre de esta política de autorización. policyNameKeySustitúyala por un nombre que ayude a identificar esta política de autorización. Este nombre de política se utiliza para definir qué política se aplica a un grupo de dispositivos.

Este objeto contiene la siguiente información:

statementNameKey

El nombre de esta declaración de política. statementNameKeySustitúyala por un nombre que le ayude a identificar esta declaración de política.

Este objeto contiene la siguiente información:

operations

La lista de operaciones que permiten utilizar los recursos de esta política.

Puede incluir cualquiera de las siguientes operaciones:

  • mqtt:connect— Otorga permiso para conectarse al dispositivo principal. Los dispositivos cliente deben tener este permiso para conectarse a un dispositivo principal.

    Esta operación admite los siguientes recursos:

    • mqtt:clientId:deviceClientId— Restrinja el acceso en función del ID de cliente que utilice el dispositivo cliente para conectarse al intermediario MQTT del dispositivo principal. deviceClientIdSustitúyalo por el ID de cliente que se va a utilizar.

  • mqtt:publish— Otorga permiso para publicar mensajes de MQTT en los temas.

    Esta operación admite los siguientes recursos:

    • mqtt:topic:mqttTopic— Restrinja el acceso en función del tema de MQTT en el que un dispositivo cliente publica un mensaje. Sustituya MQTTTopic por el tema que desee utilizar.

      Este recurso no admite los caracteres comodín de los temas MQTT.

  • mqtt:subscribe— Otorga permiso para suscribirse a los filtros de temas de MQTT para recibir mensajes.

    Esta operación admite los siguientes recursos:

    • mqtt:topicfilter:mqttTopicFilter— Restrinja el acceso en función de los temas de MQTT en los que un dispositivo cliente puede suscribirse a los mensajes. mqttTopicFilterSustitúyalo por el filtro de temas que desee utilizar.

      Este recurso admite los caracteres comodín de los temas # MQTT + y MQTT. Para obtener más información, consulte los temas de MQTT en la AWS IoT Core Guía para desarrolladores.

      El dispositivo cliente puede suscribirse a los filtros de temas exactos que usted permita. Por ejemplo, si permites que el dispositivo cliente se suscriba al mqtt:topicfilter:client/+/status recurso, el dispositivo cliente puede suscribirse, client/+/status pero noclient/client1/status.

Puede especificar el * comodín para permitir el acceso a todas las acciones.

resources

La lista de recursos que permiten las operaciones de esta política. Especifique los recursos que corresponden a las operaciones de esta política. Por ejemplo, puede especificar una lista de recursos de temas de MQTT (mqtt:topic:mqttTopic) en una política que especifique la mqtt:publish operación.

Puede especificar el * comodín para permitir el acceso a todos los recursos. No puedes usar el * comodín para hacer coincidir los identificadores de recursos parciales. Por ejemplo, puede especificar"resources": "*", pero no puede especificar. "resources": "mqtt:clientId:*"

statementDescription

(Opcional) Una descripción de esta declaración de política.

certificates

(Opcional) Las opciones de configuración del certificado para este dispositivo principal. Este objeto contiene la siguiente información:

serverCertificateValiditySeconds

(Opcional) Cantidad de tiempo (en segundos) tras la cual caduca el certificado del servidor MQTT local. Puede configurar esta opción para personalizar la frecuencia con la que los dispositivos cliente se desconectan y se vuelven a conectar al dispositivo principal.

Este componente rota el certificado del servidor MQTT local 24 horas antes de que caduque. El broker MQTT, como el componente Broker MQTT de Moquette, genera un nuevo certificado y se reinicia. Cuando esto ocurre, todos los dispositivos cliente conectados a este dispositivo principal se desconectan. Los dispositivos cliente se pueden volver a conectar al dispositivo principal tras un breve período de tiempo.

Predeterminado: 604800 (7 días)

Valor mínimo: 172800 (2 días)

Valor máximo: 864000 (10 días)

performance

(Opcional) Las opciones de configuración del rendimiento de este dispositivo principal. Este objeto contiene la siguiente información:

maxActiveAuthTokens

(Opcional) El número máximo de tokens de autorización de los dispositivos cliente activos. Puede aumentar este número para permitir que un mayor número de dispositivos cliente se conecten a un dispositivo de un solo núcleo sin volver a autenticarlos.

Valor predeterminado: 2500

cloudRequestQueueSize

(Opcional) El número máximo de Nube de AWS solicitudes que se pueden poner en cola antes de que este componente las rechace.

Valor predeterminado: 100

maxConcurrentCloudRequests

(Opcional) El número máximo de solicitudes simultáneas que se van a enviar al. Nube de AWS Puede aumentar este número para mejorar el rendimiento de la autenticación en los dispositivos principales a los que se conecta un gran número de dispositivos cliente.

Valor predeterminado: 1

certificateAuthority

(Opcional) Opciones de configuración de la autoridad de certificación para reemplazar la autoridad intermedia del dispositivo principal por su propia autoridad de certificación intermedia. Este objeto contiene la siguiente información.

URI del certificado

La ubicación del certificado. Puede ser un URI del sistema de archivos o un URI que apunte a un certificado almacenado en un módulo de seguridad de hardware.

certificateChainUri

La ubicación de la cadena de certificados de la CA del dispositivo principal. Debe ser la cadena de certificados completa que lleva a su CA raíz. Puede ser un URI del sistema de archivos o un URI que apunte a una cadena de certificados almacenada en un módulo de seguridad de hardware.

privateKeyUri

La ubicación de la clave privada del dispositivo principal. Puede ser un URI del sistema de archivos o un URI que apunta a una clave privada de certificado almacenada en un módulo de seguridad de hardware.

security

(Opcional) Opciones de configuración de seguridad para este dispositivo principal. Este objeto contiene la siguiente información.

clientDeviceTrustDurationMinutes

El tiempo en minutos durante el que se puede confiar en la información de autenticación de un dispositivo cliente antes de que sea necesario volver a autenticarse con el dispositivo principal. El valor predeterminado es 1.

ejemplo Ejemplo: actualización de la combinación de configuraciones (mediante una política restrictiva)

El siguiente ejemplo de configuración especifica que se permita a los dispositivos cliente cuyos nombres comiencen por MyClientDevice conectarse y publicar o suscribirse en todos los temas.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
ejemplo Ejemplo: actualización de la combinación de configuraciones (mediante una política permisiva)

El siguiente ejemplo de configuración especifica permitir que todos los dispositivos cliente se conecten y publiquen o se suscriban sobre todos los temas.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
v2.2.x
deviceGroups

Los grupos de dispositivos son grupos de dispositivos cliente que tienen permisos para conectarse y comunicarse con un dispositivo principal. Utilice reglas de selección para identificar grupos de dispositivos cliente y defina políticas de autorización de dispositivos cliente que especifiquen los permisos para cada grupo de dispositivos.

Este objeto contiene la siguiente información:

formatVersion

La versión de formato de este objeto de configuración.

Puede elegir entre las siguientes opciones:

  • 2021-03-05

definitions

Los grupos de dispositivos de este dispositivo principal. Cada definición especifica una regla de selección para evaluar si un dispositivo cliente es miembro del grupo. Cada definición también especifica la política de permisos que se aplicará a los dispositivos cliente que coincidan con la regla de selección. Si un dispositivo cliente es miembro de varios grupos de dispositivos, los permisos del dispositivo se componen de la política de permisos de cada grupo.

Este objeto contiene la siguiente información:

groupNameKey

El nombre de este grupo de dispositivos. groupNameKeySustitúyalo por un nombre que ayude a identificar este grupo de dispositivos.

Este objeto contiene la siguiente información:

selectionRule

La consulta que especifica qué dispositivos cliente son miembros de este grupo de dispositivos. Cuando un dispositivo cliente se conecta, el dispositivo principal evalúa esta regla de selección para determinar si el dispositivo cliente es miembro de este grupo de dispositivos. Si el dispositivo cliente es miembro, el dispositivo principal utiliza la política de este grupo de dispositivos para autorizar las acciones del dispositivo cliente.

Cada regla de selección incluye al menos una cláusula de regla de selección, que es una consulta de expresión única que puede coincidir con los dispositivos del cliente. Las reglas de selección utilizan la misma sintaxis de consulta que la indexación de AWS IoT flotas. Para obtener más información sobre la sintaxis de las reglas de selección, consulte la sintaxis de las consultas de indexación de AWS IoT flotas en la Guía AWS IoT Core para desarrolladores.

Utilice el * comodín para hacer coincidir varios dispositivos cliente con una cláusula de regla de selección. Puede utilizar este comodín al final del nombre del elemento para hacer coincidir los dispositivos cliente cuyos nombres comiencen por la cadena que especifique. También puede usar este comodín para que coincidan con todos los dispositivos cliente.

nota

Para seleccionar un valor que contenga dos puntos (:), evite los dos puntos y coloque un carácter de barra invertida (). \\ En formatos como JSON, debe evitar los caracteres de barra invertida, por lo que debe escribir dos caracteres de barra invertida antes del carácter de dos puntos. Por ejemplo, especifique seleccionar un thingName: MyTeam\\\\:ClientDevice1 elemento cuyo nombre sea. MyTeam:ClientDevice1

Puede especificar el siguiente selector:

  • thingName— El nombre del dispositivo de un AWS IoT cliente.

ejemplo Ejemplo de regla de selección

La siguiente regla de selección coincide con los dispositivos cliente cuyos nombres son MyClientDevice1 oMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
ejemplo Ejemplo de regla de selección (utilice caracteres comodín)

La siguiente regla de selección coincide con los dispositivos cliente cuyos nombres comiencen por. MyClientDevice

thingName: MyClientDevice*
ejemplo Ejemplo de regla de selección (hacer coincidir todos los dispositivos)

La siguiente regla de selección coincide con todos los dispositivos cliente.

thingName: *
policyName

La política de permisos que se aplica a los dispositivos cliente de este grupo de dispositivos. Especifique el nombre de la política que defina en el policies objeto.

policies

Las políticas de autorización de los dispositivos cliente para los dispositivos cliente que se conectan al dispositivo principal. Cada política de autorización especifica un conjunto de acciones y los recursos en los que un dispositivo cliente puede realizar esas acciones.

Este objeto contiene la siguiente información:

policyNameKey

El nombre de esta política de autorización. policyNameKeySustitúyala por un nombre que ayude a identificar esta política de autorización. Este nombre de política se utiliza para definir qué política se aplica a un grupo de dispositivos.

Este objeto contiene la siguiente información:

statementNameKey

El nombre de esta declaración de política. statementNameKeySustitúyala por un nombre que le ayude a identificar esta declaración de política.

Este objeto contiene la siguiente información:

operations

La lista de operaciones que permiten utilizar los recursos de esta política.

Puede incluir cualquiera de las siguientes operaciones:

  • mqtt:connect— Otorga permiso para conectarse al dispositivo principal. Los dispositivos cliente deben tener este permiso para conectarse a un dispositivo principal.

    Esta operación admite los siguientes recursos:

    • mqtt:clientId:deviceClientId— Restrinja el acceso en función del ID de cliente que utilice el dispositivo cliente para conectarse al intermediario MQTT del dispositivo principal. deviceClientIdSustitúyalo por el ID de cliente que se va a utilizar.

  • mqtt:publish— Otorga permiso para publicar mensajes de MQTT en los temas.

    Esta operación admite los siguientes recursos:

    • mqtt:topic:mqttTopic— Restrinja el acceso en función del tema de MQTT en el que un dispositivo cliente publica un mensaje. Sustituya MQTTTopic por el tema que desee utilizar.

      Este recurso no admite los caracteres comodín de los temas MQTT.

  • mqtt:subscribe— Otorga permiso para suscribirse a los filtros de temas de MQTT para recibir mensajes.

    Esta operación admite los siguientes recursos:

    • mqtt:topicfilter:mqttTopicFilter— Restrinja el acceso en función de los temas de MQTT en los que un dispositivo cliente puede suscribirse a los mensajes. mqttTopicFilterSustitúyalo por el filtro de temas que desee utilizar.

      Este recurso admite los caracteres comodín de los temas # MQTT + y MQTT. Para obtener más información, consulte los temas de MQTT en la AWS IoT Core Guía para desarrolladores.

      El dispositivo cliente puede suscribirse a los filtros de temas exactos que usted permita. Por ejemplo, si permites que el dispositivo cliente se suscriba al mqtt:topicfilter:client/+/status recurso, el dispositivo cliente puede suscribirse, client/+/status pero noclient/client1/status.

Puede especificar el * comodín para permitir el acceso a todas las acciones.

resources

La lista de recursos que permiten las operaciones de esta política. Especifique los recursos que corresponden a las operaciones de esta política. Por ejemplo, puede especificar una lista de recursos de temas de MQTT (mqtt:topic:mqttTopic) en una política que especifique la mqtt:publish operación.

Puede especificar el * comodín para permitir el acceso a todos los recursos. No puedes usar el * comodín para hacer coincidir los identificadores de recursos parciales. Por ejemplo, puede especificar"resources": "*", pero no puede especificar. "resources": "mqtt:clientId:*"

statementDescription

(Opcional) Una descripción de esta declaración de política.

certificates

(Opcional) Las opciones de configuración del certificado para este dispositivo principal. Este objeto contiene la siguiente información:

serverCertificateValiditySeconds

(Opcional) Cantidad de tiempo (en segundos) tras la cual caduca el certificado del servidor MQTT local. Puede configurar esta opción para personalizar la frecuencia con la que los dispositivos cliente se desconectan y se vuelven a conectar al dispositivo principal.

Este componente rota el certificado del servidor MQTT local 24 horas antes de que caduque. El broker MQTT, como el componente Broker MQTT de Moquette, genera un nuevo certificado y se reinicia. Cuando esto ocurre, todos los dispositivos cliente conectados a este dispositivo principal se desconectan. Los dispositivos cliente se pueden volver a conectar al dispositivo principal tras un breve período de tiempo.

Predeterminado: 604800 (7 días)

Valor mínimo: 172800 (2 días)

Valor máximo: 864000 (10 días)

performance

(Opcional) Las opciones de configuración del rendimiento de este dispositivo principal. Este objeto contiene la siguiente información:

maxActiveAuthTokens

(Opcional) El número máximo de tokens de autorización de los dispositivos cliente activos. Puede aumentar este número para permitir que un mayor número de dispositivos cliente se conecten a un dispositivo de un solo núcleo sin volver a autenticarlos.

Valor predeterminado: 2500

cloudRequestQueueSize

(Opcional) El número máximo de Nube de AWS solicitudes que se pueden poner en cola antes de que este componente las rechace.

Valor predeterminado: 100

maxConcurrentCloudRequests

(Opcional) El número máximo de solicitudes simultáneas que se van a enviar al. Nube de AWS Puede aumentar este número para mejorar el rendimiento de la autenticación en los dispositivos principales a los que se conecta un gran número de dispositivos cliente.

Valor predeterminado: 1

ejemplo Ejemplo: actualización de la combinación de configuraciones (mediante una política restrictiva)

El siguiente ejemplo de configuración especifica que se permita a los dispositivos cliente cuyos nombres comiencen por MyClientDevice conectarse y publicar o suscribirse en todos los temas.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
ejemplo Ejemplo: actualización de la combinación de configuraciones (mediante una política permisiva)

El siguiente ejemplo de configuración especifica permitir que todos los dispositivos cliente se conecten y publiquen o se suscriban sobre todos los temas.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
v2.1.x
deviceGroups

Los grupos de dispositivos son grupos de dispositivos cliente que tienen permisos para conectarse y comunicarse con un dispositivo principal. Utilice reglas de selección para identificar grupos de dispositivos cliente y defina políticas de autorización de dispositivos cliente que especifiquen los permisos para cada grupo de dispositivos.

Este objeto contiene la siguiente información:

formatVersion

La versión de formato de este objeto de configuración.

Puede elegir entre las siguientes opciones:

  • 2021-03-05

definitions

Los grupos de dispositivos de este dispositivo principal. Cada definición especifica una regla de selección para evaluar si un dispositivo cliente es miembro del grupo. Cada definición también especifica la política de permisos que se aplicará a los dispositivos cliente que coincidan con la regla de selección. Si un dispositivo cliente es miembro de varios grupos de dispositivos, los permisos del dispositivo se componen de la política de permisos de cada grupo.

Este objeto contiene la siguiente información:

groupNameKey

El nombre de este grupo de dispositivos. groupNameKeySustitúyalo por un nombre que ayude a identificar este grupo de dispositivos.

Este objeto contiene la siguiente información:

selectionRule

La consulta que especifica qué dispositivos cliente son miembros de este grupo de dispositivos. Cuando un dispositivo cliente se conecta, el dispositivo principal evalúa esta regla de selección para determinar si el dispositivo cliente es miembro de este grupo de dispositivos. Si el dispositivo cliente es miembro, el dispositivo principal utiliza la política de este grupo de dispositivos para autorizar las acciones del dispositivo cliente.

Cada regla de selección incluye al menos una cláusula de regla de selección, que es una consulta de expresión única que puede coincidir con los dispositivos del cliente. Las reglas de selección utilizan la misma sintaxis de consulta que la indexación de AWS IoT flotas. Para obtener más información sobre la sintaxis de las reglas de selección, consulte la sintaxis de las consultas de indexación de AWS IoT flotas en la Guía AWS IoT Core para desarrolladores.

Utilice el * comodín para hacer coincidir varios dispositivos cliente con una cláusula de regla de selección. Puede utilizar este comodín al final del nombre del elemento para hacer coincidir los dispositivos cliente cuyos nombres comiencen por la cadena que especifique. También puede usar este comodín para que coincidan con todos los dispositivos cliente.

nota

Para seleccionar un valor que contenga dos puntos (:), evite los dos puntos y coloque un carácter de barra invertida (). \\ En formatos como JSON, debe evitar los caracteres de barra invertida, por lo que debe escribir dos caracteres de barra invertida antes del carácter de dos puntos. Por ejemplo, especifique seleccionar un thingName: MyTeam\\\\:ClientDevice1 elemento cuyo nombre sea. MyTeam:ClientDevice1

Puede especificar el siguiente selector:

  • thingName— El nombre del dispositivo de un AWS IoT cliente.

ejemplo Ejemplo de regla de selección

La siguiente regla de selección coincide con los dispositivos cliente cuyos nombres son MyClientDevice1 oMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
ejemplo Ejemplo de regla de selección (utilice caracteres comodín)

La siguiente regla de selección coincide con los dispositivos cliente cuyos nombres comiencen por. MyClientDevice

thingName: MyClientDevice*
ejemplo Ejemplo de regla de selección (hacer coincidir todos los dispositivos)

La siguiente regla de selección coincide con todos los dispositivos cliente.

thingName: *
policyName

La política de permisos que se aplica a los dispositivos cliente de este grupo de dispositivos. Especifique el nombre de la política que defina en el policies objeto.

policies

Las políticas de autorización de los dispositivos cliente para los dispositivos cliente que se conectan al dispositivo principal. Cada política de autorización especifica un conjunto de acciones y los recursos en los que un dispositivo cliente puede realizar esas acciones.

Este objeto contiene la siguiente información:

policyNameKey

El nombre de esta política de autorización. policyNameKeySustitúyala por un nombre que ayude a identificar esta política de autorización. Este nombre de política se utiliza para definir qué política se aplica a un grupo de dispositivos.

Este objeto contiene la siguiente información:

statementNameKey

El nombre de esta declaración de política. statementNameKeySustitúyala por un nombre que le ayude a identificar esta declaración de política.

Este objeto contiene la siguiente información:

operations

La lista de operaciones que permiten utilizar los recursos de esta política.

Puede incluir cualquiera de las siguientes operaciones:

  • mqtt:connect— Otorga permiso para conectarse al dispositivo principal. Los dispositivos cliente deben tener este permiso para conectarse a un dispositivo principal.

    Esta operación admite los siguientes recursos:

    • mqtt:clientId:deviceClientId— Restrinja el acceso en función del ID de cliente que utilice el dispositivo cliente para conectarse al intermediario MQTT del dispositivo principal. deviceClientIdSustitúyalo por el ID de cliente que se va a utilizar.

  • mqtt:publish— Otorga permiso para publicar mensajes de MQTT en los temas.

    Esta operación admite los siguientes recursos:

    • mqtt:topic:mqttTopic— Restrinja el acceso en función del tema de MQTT en el que un dispositivo cliente publica un mensaje. Sustituya MQTTTopic por el tema que desee utilizar.

      Este recurso no admite los caracteres comodín de los temas MQTT.

  • mqtt:subscribe— Otorga permiso para suscribirse a los filtros de temas de MQTT para recibir mensajes.

    Esta operación admite los siguientes recursos:

    • mqtt:topicfilter:mqttTopicFilter— Restrinja el acceso en función de los temas de MQTT en los que un dispositivo cliente puede suscribirse a los mensajes. mqttTopicFilterSustitúyalo por el filtro de temas que desee utilizar.

      Este recurso admite los caracteres comodín de los temas # MQTT + y MQTT. Para obtener más información, consulte los temas de MQTT en la AWS IoT Core Guía para desarrolladores.

      El dispositivo cliente puede suscribirse a los filtros de temas exactos que usted permita. Por ejemplo, si permites que el dispositivo cliente se suscriba al mqtt:topicfilter:client/+/status recurso, el dispositivo cliente puede suscribirse, client/+/status pero noclient/client1/status.

Puede especificar el * comodín para permitir el acceso a todas las acciones.

resources

La lista de recursos que permiten las operaciones de esta política. Especifique los recursos que corresponden a las operaciones de esta política. Por ejemplo, puede especificar una lista de recursos de temas de MQTT (mqtt:topic:mqttTopic) en una política que especifique la mqtt:publish operación.

Puede especificar el * comodín para permitir el acceso a todos los recursos. No puedes usar el * comodín para hacer coincidir los identificadores de recursos parciales. Por ejemplo, puede especificar"resources": "*", pero no puede especificar. "resources": "mqtt:clientId:*"

statementDescription

(Opcional) Una descripción de esta declaración de política.

certificates

(Opcional) Las opciones de configuración del certificado para este dispositivo principal. Este objeto contiene la siguiente información:

serverCertificateValiditySeconds

(Opcional) Cantidad de tiempo (en segundos) tras la cual caduca el certificado del servidor MQTT local. Puede configurar esta opción para personalizar la frecuencia con la que los dispositivos cliente se desconectan y se vuelven a conectar al dispositivo principal.

Este componente rota el certificado del servidor MQTT local 24 horas antes de que caduque. El broker MQTT, como el componente Broker MQTT de Moquette, genera un nuevo certificado y se reinicia. Cuando esto ocurre, todos los dispositivos cliente conectados a este dispositivo principal se desconectan. Los dispositivos cliente se pueden volver a conectar al dispositivo principal tras un breve período de tiempo.

Predeterminado: 604800 (7 días)

Valor mínimo: 172800 (2 días)

Valor máximo: 864000 (10 días)

ejemplo Ejemplo: actualización de la combinación de configuraciones (mediante una política restrictiva)

El siguiente ejemplo de configuración especifica que se permita a los dispositivos cliente cuyos nombres comiencen por MyClientDevice conectarse y publicar o suscribirse en todos los temas.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
ejemplo Ejemplo: actualización de la combinación de configuraciones (mediante una política permisiva)

El siguiente ejemplo de configuración especifica permitir que todos los dispositivos cliente se conecten y publiquen o se suscriban sobre todos los temas.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
v2.0.x
deviceGroups

Los grupos de dispositivos son grupos de dispositivos cliente que tienen permisos para conectarse y comunicarse con un dispositivo principal. Utilice reglas de selección para identificar grupos de dispositivos cliente y defina políticas de autorización de dispositivos cliente que especifiquen los permisos para cada grupo de dispositivos.

Este objeto contiene la siguiente información:

formatVersion

La versión de formato de este objeto de configuración.

Puede elegir entre las siguientes opciones:

  • 2021-03-05

definitions

Los grupos de dispositivos de este dispositivo principal. Cada definición especifica una regla de selección para evaluar si un dispositivo cliente es miembro del grupo. Cada definición también especifica la política de permisos que se aplicará a los dispositivos cliente que coincidan con la regla de selección. Si un dispositivo cliente es miembro de varios grupos de dispositivos, los permisos del dispositivo se componen de la política de permisos de cada grupo.

Este objeto contiene la siguiente información:

groupNameKey

El nombre de este grupo de dispositivos. groupNameKeySustitúyalo por un nombre que ayude a identificar este grupo de dispositivos.

Este objeto contiene la siguiente información:

selectionRule

La consulta que especifica qué dispositivos cliente son miembros de este grupo de dispositivos. Cuando un dispositivo cliente se conecta, el dispositivo principal evalúa esta regla de selección para determinar si el dispositivo cliente es miembro de este grupo de dispositivos. Si el dispositivo cliente es miembro, el dispositivo principal utiliza la política de este grupo de dispositivos para autorizar las acciones del dispositivo cliente.

Cada regla de selección incluye al menos una cláusula de regla de selección, que es una consulta de expresión única que puede coincidir con los dispositivos del cliente. Las reglas de selección utilizan la misma sintaxis de consulta que la indexación de AWS IoT flotas. Para obtener más información sobre la sintaxis de las reglas de selección, consulte la sintaxis de las consultas de indexación de AWS IoT flotas en la Guía AWS IoT Core para desarrolladores.

Utilice el * comodín para hacer coincidir varios dispositivos cliente con una cláusula de regla de selección. Puede utilizar este comodín al final del nombre del elemento para hacer coincidir los dispositivos cliente cuyos nombres comiencen por la cadena que especifique. También puede usar este comodín para que coincidan con todos los dispositivos cliente.

nota

Para seleccionar un valor que contenga dos puntos (:), evite los dos puntos y coloque un carácter de barra invertida (). \\ En formatos como JSON, debe evitar los caracteres de barra invertida, por lo que debe escribir dos caracteres de barra invertida antes del carácter de dos puntos. Por ejemplo, especifique seleccionar un thingName: MyTeam\\\\:ClientDevice1 elemento cuyo nombre sea. MyTeam:ClientDevice1

Puede especificar el siguiente selector:

  • thingName— El nombre del dispositivo de un AWS IoT cliente.

ejemplo Ejemplo de regla de selección

La siguiente regla de selección coincide con los dispositivos cliente cuyos nombres son MyClientDevice1 oMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
ejemplo Ejemplo de regla de selección (utilice caracteres comodín)

La siguiente regla de selección coincide con los dispositivos cliente cuyos nombres comiencen por. MyClientDevice

thingName: MyClientDevice*
ejemplo Ejemplo de regla de selección (hacer coincidir todos los dispositivos)

La siguiente regla de selección coincide con todos los dispositivos cliente.

thingName: *
policyName

La política de permisos que se aplica a los dispositivos cliente de este grupo de dispositivos. Especifique el nombre de la política que defina en el policies objeto.

policies

Las políticas de autorización de los dispositivos cliente para los dispositivos cliente que se conectan al dispositivo principal. Cada política de autorización especifica un conjunto de acciones y los recursos en los que un dispositivo cliente puede realizar esas acciones.

Este objeto contiene la siguiente información:

policyNameKey

El nombre de esta política de autorización. policyNameKeySustitúyala por un nombre que ayude a identificar esta política de autorización. Este nombre de política se utiliza para definir qué política se aplica a un grupo de dispositivos.

Este objeto contiene la siguiente información:

statementNameKey

El nombre de esta declaración de política. statementNameKeySustitúyala por un nombre que le ayude a identificar esta declaración de política.

Este objeto contiene la siguiente información:

operations

La lista de operaciones que permiten utilizar los recursos de esta política.

Puede incluir cualquiera de las siguientes operaciones:

  • mqtt:connect— Otorga permiso para conectarse al dispositivo principal. Los dispositivos cliente deben tener este permiso para conectarse a un dispositivo principal.

    Esta operación admite los siguientes recursos:

    • mqtt:clientId:deviceClientId— Restrinja el acceso en función del ID de cliente que utilice el dispositivo cliente para conectarse al intermediario MQTT del dispositivo principal. deviceClientIdSustitúyalo por el ID de cliente que se va a utilizar.

  • mqtt:publish— Otorga permiso para publicar mensajes de MQTT en los temas.

    Esta operación admite los siguientes recursos:

    • mqtt:topic:mqttTopic— Restrinja el acceso en función del tema de MQTT en el que un dispositivo cliente publica un mensaje. Sustituya MQTTTopic por el tema que desee utilizar.

      Este recurso no admite los caracteres comodín de los temas MQTT.

  • mqtt:subscribe— Otorga permiso para suscribirse a los filtros de temas de MQTT para recibir mensajes.

    Esta operación admite los siguientes recursos:

    • mqtt:topicfilter:mqttTopicFilter— Restrinja el acceso en función de los temas de MQTT en los que un dispositivo cliente puede suscribirse a los mensajes. mqttTopicFilterSustitúyalo por el filtro de temas que desee utilizar.

      Este recurso admite los caracteres comodín de los temas # MQTT + y MQTT. Para obtener más información, consulte los temas de MQTT en la AWS IoT Core Guía para desarrolladores.

      El dispositivo cliente puede suscribirse a los filtros de temas exactos que usted permita. Por ejemplo, si permites que el dispositivo cliente se suscriba al mqtt:topicfilter:client/+/status recurso, el dispositivo cliente puede suscribirse, client/+/status pero noclient/client1/status.

Puede especificar el * comodín para permitir el acceso a todas las acciones.

resources

La lista de recursos que permiten las operaciones de esta política. Especifique los recursos que corresponden a las operaciones de esta política. Por ejemplo, puede especificar una lista de recursos de temas de MQTT (mqtt:topic:mqttTopic) en una política que especifique la mqtt:publish operación.

Puede especificar el * comodín para permitir el acceso a todos los recursos. No puedes usar el * comodín para hacer coincidir los identificadores de recursos parciales. Por ejemplo, puede especificar"resources": "*", pero no puede especificar. "resources": "mqtt:clientId:*"

statementDescription

(Opcional) Una descripción de esta declaración de política.

ejemplo Ejemplo: actualización de la combinación de configuraciones (mediante una política restrictiva)

El siguiente ejemplo de configuración especifica que se permita a los dispositivos cliente cuyos nombres comiencen por MyClientDevice conectarse y publicar o suscribirse en todos los temas.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
ejemplo Ejemplo: actualización de la combinación de configuraciones (mediante una política permisiva)

El siguiente ejemplo de configuración especifica permitir que todos los dispositivos cliente se conecten y publiquen o se suscriban sobre todos los temas.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }

Archivo de registro local

Este componente utiliza el mismo archivo de registro que el componente núcleo de Greengrass.

Linux
/greengrass/v2/logs/greengrass.log
Windows
C:\greengrass\v2\logs\greengrass.log
Para ver los registros de este componente
  • Ejecute el siguiente comando en el dispositivo principal para ver el archivo de registro de este componente en tiempo real. Sustituya /greengrass/v2 o C:\greengrass\v2 por la ruta a la carpeta AWS IoT Greengrass raíz.

    Linux
    sudo tail -f /greengrass/v2/logs/greengrass.log
    Windows (PowerShell)
    Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait

Registros de cambios

En la siguiente tabla se describen los cambios en cada versión del componente.

Versión

Cambios

2.5.0

Nuevas características
  • Permite la sustitución de los recursos de políticas por ${iot:Connection.Thing.ThingName} variables.

  • Permite los recursos de políticas con caracteres comodín comomqtt:topic:my*.

2.4.5

Nuevas características

Añade compatibilidad con prefijos comodín para seleccionar nombres de cosas con el parámetro. selectionRule

Mejoras y correcciones de errores

Soluciona un problema por el que, en algunos casos, los certificados no se actualizaban con nueva información de conectividad.

2.4.4

Versión actualizada para la versión 2.12.0 de Greengrass nucleus.

2.4.3

Versión actualizada para la versión 2.11.0 de Greengrass nucleus.

2.4.2

Nuevas características

Añade una nueva opción de configuraciónstartupTimeoutSeconds.

2.4.1

Versión actualizada para la versión 2.10.0 de Greengrass nucleus.

2.4.0

Nuevas características
  • Añade compatibilidad con la autenticación del dispositivo cliente para emitir métricas operativas que publicará el agente de telemetría.

Mejoras y correcciones de errores
  • Soluciona un problema por el que la autenticación del dispositivo cliente tarda más de 10 segundos en verificar la identidad de un dispositivo cliente.

  • Correcciones y mejoras menores adicionales.

2.3.2

Mejoras y correcciones de errores
  • Añade compatibilidad con el almacenamiento en caché de la información del nombre de host, de modo que el componente genere correctamente los sujetos de los certificados cuando se reinicie sin conexión a Internet.

2.3.1

Mejoras y correcciones de errores
  • Corrige una pérdida de memoria.

2.3.0

aviso

Esta versión ya no está disponible. Las mejoras de esta versión están disponibles en versiones posteriores de este componente.

Nuevas características

  • Añade compatibilidad con la autenticación sin conexión de los dispositivos cliente para que puedan seguir conectándose al dispositivo principal cuando este no esté conectado a Internet.

  • Añade compatibilidad con la autoridad de certificación proporcionada por el cliente, que el dispositivo principal utiliza como certificado raíz para generar certificados de intermediario de MQTT.

2.2.3

Versión actualizada para la versión 2.8.0 de Greengrass nucleus.

2.2.2

Mejoras y correcciones de errores
  • Soluciona un problema por el que el certificado del servidor MQTT local rota con más frecuencia de lo previsto en determinadas situaciones.

2.2.1

Versión actualizada para la versión 2.7.0 de Greengrass nucleus.

2.2.0

Nuevas características
  • Añade compatibilidad con componentes personalizados para llamar a las operaciones de comunicación entre procesos (IPC) para autenticar y autorizar los dispositivos cliente. Puede utilizar estas operaciones en un componente de intermediario MQTT personalizado, por ejemplo. Para obtener más información, consulte IPC: Autenticar y autorizar dispositivos cliente.

  • Agrega las threadPoolSize opciones maxActiveAuthTokenscloudQueueSize, y que puede configurar para ajustar el rendimiento de este componente.

2.1.0

Nuevas características
  • Añade la serverCertificateValiditySeconds opción que puede configurar para personalizar la fecha de caducidad del certificado del servidor MQTT broker. Puede configurar el certificado del servidor para que caduque entre 2 y 10 días.

Mejoras y correcciones de errores
  • Soluciona problemas relacionados con la forma en que este componente gestiona las actualizaciones de restablecimiento de la configuración.

  • Soluciona un problema por el que el certificado del servidor MQTT local rota con más frecuencia de lo previsto en determinadas situaciones.

    Para aplicar esta corrección, también debe utilizar la versión 2.1.0 o posterior del componente broker MQTT de Moquette.

  • Mejora los mensajes que este componente registra cuando rota los certificados.

  • Versión actualizada para la versión 2.6.0 de Greengrass nucleus.

2.0.4

Versión actualizada para la versión 2.5.0 de Greengrass nucleus.

2.0.3

Mejoras y correcciones de errores
  • Las credenciales ahora se actualizan si se rota la clave privada del dispositivo principal.

  • Actualizaciones para que los mensajes de registro sean más claros.

2.0.2

Versión actualizada para la versión 2.4.0 de Greengrass nucleus.

2.0.1

Versión actualizada para la versión 2.3.0 de Greengrass nucleus.

2.0.0

Versión inicial.