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.
Temas
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:ListClientDevicesAssociatedWithCoreDevice
para 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 |
---|---|---|---|
|
443 | Sí |
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
- 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
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.
groupNameKey
Sustitú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 unthingName: 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.
policyNameKey
Sustitú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.
statementNameKey
Sustitú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:
— Restrinja el acceso en función del ID de cliente que utilice el dispositivo cliente para conectarse al intermediario MQTT del dispositivo principal.deviceClientId
deviceClientId
Sustitú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:
— Restrinja el acceso en función del tema de MQTT en el que un dispositivo cliente publica un mensaje. SustituyamqttTopic
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:
— Restrinja el acceso en función de los temas de MQTT en los que un dispositivo cliente puede suscribirse a los mensajes.mqttTopicFilter
mqttTopicFilter
Sustitú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:
) en una política que especifique lamqttTopic
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 permitamqtt: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
camposcertificateUri
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 cadena
topic
.{ "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.
groupNameKey
Sustitú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 unthingName: 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.
policyNameKey
Sustitú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.
statementNameKey
Sustitú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:
— Restrinja el acceso en función del ID de cliente que utilice el dispositivo cliente para conectarse al intermediario MQTT del dispositivo principal.deviceClientId
deviceClientId
Sustitú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:
— Restrinja el acceso en función del tema de MQTT en el que un dispositivo cliente publica un mensaje. SustituyamqttTopic
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:
— Restrinja el acceso en función de los temas de MQTT en los que un dispositivo cliente puede suscribirse a los mensajes.mqttTopicFilter
mqttTopicFilter
Sustitú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:
) en una política que especifique lamqttTopic
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
camposcertificateUri
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.
groupNameKey
Sustitú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 unthingName: 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.
policyNameKey
Sustitú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.
statementNameKey
Sustitú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:
— Restrinja el acceso en función del ID de cliente que utilice el dispositivo cliente para conectarse al intermediario MQTT del dispositivo principal.deviceClientId
deviceClientId
Sustitú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:
— Restrinja el acceso en función del tema de MQTT en el que un dispositivo cliente publica un mensaje. SustituyamqttTopic
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:
— Restrinja el acceso en función de los temas de MQTT en los que un dispositivo cliente puede suscribirse a los mensajes.mqttTopicFilter
mqttTopicFilter
Sustitú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:
) en una política que especifique lamqttTopic
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
camposcertificateUri
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.
groupNameKey
Sustitú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 unthingName: 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.
policyNameKey
Sustitú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.
statementNameKey
Sustitú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:
— Restrinja el acceso en función del ID de cliente que utilice el dispositivo cliente para conectarse al intermediario MQTT del dispositivo principal.deviceClientId
deviceClientId
Sustitú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:
— Restrinja el acceso en función del tema de MQTT en el que un dispositivo cliente publica un mensaje. SustituyamqttTopic
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:
— Restrinja el acceso en función de los temas de MQTT en los que un dispositivo cliente puede suscribirse a los mensajes.mqttTopicFilter
mqttTopicFilter
Sustitú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:
) en una política que especifique lamqttTopic
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.
groupNameKey
Sustitú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 unthingName: 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.
policyNameKey
Sustitú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.
statementNameKey
Sustitú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:
— Restrinja el acceso en función del ID de cliente que utilice el dispositivo cliente para conectarse al intermediario MQTT del dispositivo principal.deviceClientId
deviceClientId
Sustitú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:
— Restrinja el acceso en función del tema de MQTT en el que un dispositivo cliente publica un mensaje. SustituyamqttTopic
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:
— Restrinja el acceso en función de los temas de MQTT en los que un dispositivo cliente puede suscribirse a los mensajes.mqttTopicFilter
mqttTopicFilter
Sustitú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:
) en una política que especifique lamqttTopic
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.
groupNameKey
Sustitú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 unthingName: 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.
policyNameKey
Sustitú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.
statementNameKey
Sustitú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:
— Restrinja el acceso en función del ID de cliente que utilice el dispositivo cliente para conectarse al intermediario MQTT del dispositivo principal.deviceClientId
deviceClientId
Sustitú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:
— Restrinja el acceso en función del tema de MQTT en el que un dispositivo cliente publica un mensaje. SustituyamqttTopic
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:
— Restrinja el acceso en función de los temas de MQTT en los que un dispositivo cliente puede suscribirse a los mensajes.mqttTopicFilter
mqttTopicFilter
Sustitú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:
) en una política que especifique lamqttTopic
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.
groupNameKey
Sustitú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 unthingName: 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.
policyNameKey
Sustitú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.
statementNameKey
Sustitú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:
— Restrinja el acceso en función del ID de cliente que utilice el dispositivo cliente para conectarse al intermediario MQTT del dispositivo principal.deviceClientId
deviceClientId
Sustitú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:
— Restrinja el acceso en función del tema de MQTT en el que un dispositivo cliente publica un mensaje. SustituyamqttTopic
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:
— Restrinja el acceso en función de los temas de MQTT en los que un dispositivo cliente puede suscribirse a los mensajes.mqttTopicFilter
mqttTopicFilter
Sustitú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:
) en una política que especifique lamqttTopic
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.
groupNameKey
Sustitú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 unthingName: 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.
policyNameKey
Sustitú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.
statementNameKey
Sustitú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:
— Restrinja el acceso en función del ID de cliente que utilice el dispositivo cliente para conectarse al intermediario MQTT del dispositivo principal.deviceClientId
deviceClientId
Sustitú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:
— Restrinja el acceso en función del tema de MQTT en el que un dispositivo cliente publica un mensaje. SustituyamqttTopic
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:
— Restrinja el acceso en función de los temas de MQTT en los que un dispositivo cliente puede suscribirse a los mensajes.mqttTopicFilter
mqttTopicFilter
Sustitú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:
) en una política que especifique lamqttTopic
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
-
/logs/greengrass.log/greengrass/v2
- 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
o/greengrass/v2
C:\greengrass\v2
por la ruta a la carpeta AWS IoT Greengrass raíz.- Linux
-
sudo tail -f
/logs/greengrass.log/greengrass/v2
- 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 |
|
2.4.5 |
|
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 |
|
2.4.1 |
Versión actualizada para la versión 2.10.0 de Greengrass nucleus. |
2.4.0 |
|
2.3.2 |
|
2.3.1 |
|
2.3.0 |
avisoEsta versión ya no está disponible. Las mejoras de esta versión están disponibles en versiones posteriores de este componente. Nuevas características
|
2.2.3 |
Versión actualizada para la versión 2.8.0 de Greengrass nucleus. |
2.2.2 |
|
2.2.1 |
Versión actualizada para la versión 2.7.0 de Greengrass nucleus. |
2.2.0 |
|
2.1.0 |
|
2.0.4 |
Versión actualizada para la versión 2.5.0 de Greengrass nucleus. |
2.0.3 |
|
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. |