Autenticação do dispositivo cliente - AWS IoT Greengrass

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Autenticação do dispositivo cliente

O componente de autenticação do dispositivo cliente (aws.greengrass.clientdevices.Auth) autentica os dispositivos cliente e autoriza as ações do dispositivo cliente.

nota

Os dispositivos cliente são dispositivos IoT locais que se conectam a um dispositivo principal do Greengrass para enviar MQTT mensagens e dados para processamento. Para obter mais informações, consulte Interagir com dispositivos de IoT locais.

Versões

nota

A versão 2.3.0 da autenticação do dispositivo cliente foi descontinuada. É altamente recomendável que você atualize para a versão 2.3.1 ou superior da autenticação do dispositivo cliente.

Esse componente tem as seguintes versões:

  • 2.5.x

  • 2.4.x

  • 2.3.x

  • 2.2.x

  • 2.1.x

  • 2.0.x

Tipo

Este componente é um componente de plug-in (aws.greengrass.plugin). O núcleo do Greengrass executa esse componente na mesma Java Virtual Machine (JVM) do núcleo. O núcleo é reiniciado quando você altera a versão desse componente no dispositivo principal.

Esse componente usa o mesmo arquivo de log do núcleo do Greengrass. Para obter mais informações, consulte Monitore AWS IoT Greengrass logs.

Para obter mais informações, consulte Tipos de componente.

Sistema operacional

Esse componente pode ser instalado em dispositivos principais que executam os seguintes sistemas operacionais:

  • Linux

  • Windows

Requisitos

Esse componente tem os seguintes requisitos:

  • A função de serviço do Greengrass deve estar associada à sua Conta da AWS e permitir a iot:DescribeCertificate permissão.

  • A AWS IoT política do dispositivo principal deve permitir as seguintes permissões:

    • greengrass:GetConnectivityInfo, onde os recursos incluem o ARN do dispositivo principal que executa esse componente

    • greengrass:VerifyClientDeviceIoTCertificateAssociation, onde os recursos incluem o Amazon Resource Name (ARN) de cada dispositivo cliente que se conecta ao dispositivo principal

    • greengrass:VerifyClientDeviceIdentity

    • greengrass:PutCertificateAuthorities

    • iot:Publish, onde os recursos incluem ARN o seguinte MQTT tópico:

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

    • iot:Subscribe, onde os recursos incluem os seguintes filtros ARNs de MQTT tópicos:

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

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

    • iot:Receive, onde os recursos incluem ARNs os seguintes MQTT tópicos:

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

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

    Para ter mais informações, consulte Políticas do AWS IoT para operações de plano de dados e Política mínima de AWS IoT para oferecer suporte aos dispositivos do cliente.

  • (Opcional) Para usar a autenticação off-line, a função AWS Identity and Access Management (IAM) usada pelo AWS IoT Greengrass serviço deve conter a seguinte permissão:

    • greengrass:ListClientDevicesAssociatedWithCoreDevice para permitir que o dispositivo principal liste clientes para autenticação off-line.

  • O componente de autenticação do dispositivo cliente tem suporte para ser executado em umVPC. Para implantar esse componente em umVPC, é necessário o seguinte.

    • O componente de autenticação do dispositivo cliente deve ter conectividade com AWS IoT data, AWS IoT Credentials e Amazon S3.

Endpoints e portas

Esse componente precisa ser capaz de realizar solicitações de saída para os endpoints e portas a seguir, além dos endpoints e portas necessários para a operação básica. Para obter mais informações, consulte Permitir o tráfego de dispositivos por meio de um proxy ou firewall.

Endpoint Port (Porta) Obrigatório Descrição

iot.region.amazonaws.com

443 Sim

Usado para obter informações sobre certificados de AWS IoT coisas.

Dependências

Quando você implanta um componente, AWS IoT Greengrass também implanta versões compatíveis de suas dependências. Isso significa que é preciso atender aos requisitos do componente e de todas as dependências dele para implantá-lo com êxito. Nesta seção, há uma lista de todas as dependências das versões lançadas desse componente e as restrições de versão semântica que definem as versões dos componentes para cada dependência. Também é possível visualizar as dependências de cada versão do componente no console do AWS IoT Greengrass. Na página de detalhes do componente, procure a lista de dependências.

2.5.2

A tabela a seguir lista as dependências da versão 2.5.2 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2,6,0 <2,15,0 Flexível
2.5.1

A tabela a seguir lista as dependências da versão 2.5.1 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.6.0 <2.14.0 Flexível
2.4.4 - 2.5.0

A tabela a seguir lista as dependências da versão 2.4.4 deste componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.6.0 <2.13.0 Flexível
2.4.3

A tabela a seguir lista as dependências da versão 2.4.3 deste componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.6.0 <2.12.0 Flexível
2.4.1 and 2.4.2

A tabela a seguir lista as dependências das versões 2.4.1 e 2.4.2 deste componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.6.0 <2.11.0 Flexível
2.3.0 – 2.4.0

A tabela a seguir lista as dependências das versões 2.3.0 a 2.4.0 deste componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.6.0 <2.10.0 Flexível
2.3.0

A tabela a seguir lista as dependências da versão 2.3.0 deste componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.6.0 <2.10.0 Flexível
2.2.3

A tabela a seguir lista as dependências da versão 2.2.3 deste componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.6.0 <=2.9.0 Flexível
2.2.2

A tabela a seguir lista as dependências da versão 2.2.2 deste componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.6.0 <=2.8.0 Flexível
2.2.1

A tabela a seguir lista as dependências da versão 2.2.1 deste componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.6.0 <2.8.0 Flexível
2.2.0

A tabela a seguir lista as dependências da versão 2.2.0 deste componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.6.0 <2.7.0 Flexível
2.1.0

A tabela a seguir lista as dependências da versão 2.1.0 deste componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.2.0 <2.7.0 Flexível
2.0.4

A tabela a seguir lista as dependências da versão 2.0.4 deste componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.2.0 <2.6.0 Flexível
2.0.2 and 2.0.3

A tabela a seguir lista as dependências das versões 2.0.2 e 2.0.3 deste componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.2.0 <2.5.0 Flexível
2.0.1

A tabela a seguir lista as dependências da versão 2.0.1 deste componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.2.0 <2.4.0 Flexível
2.0.0

A tabela a seguir lista as dependências da versão 2.0.0 deste componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.2.0 <2.3.0 Flexível

Para obter mais informações sobre as dependências dos componentes, consulte referência de fórmula do componente.

Configuração

Esse componente fornece os seguintes parâmetros de configuração que podem ser personalizados ao implantar o componente.

nota

A permissão de assinatura é avaliada durante uma solicitação de assinatura do cliente ao MQTT corretor local. Se a permissão de assinatura existente do cliente for revogada, ele não poderá mais assinar um tópico. No entanto, ele continuará recebendo mensagens dos tópicos assinados anteriormente. Para evitar esse comportamento, o MQTT corretor local deve ser reiniciado após revogar a permissão de assinatura para forçar a reautorização dos clientes.

Para o componente MQTT 5 broker (EMQX), atualize a restartIdentifier configuração para reiniciar o MQTT 5 broker.

Para o componente broker MQTT 3.1.1 (Moquette), ele reinicia semanalmente por padrão quando o certificado do servidor é alterado, forçando os clientes a reautorizarem. É possível forçar uma reinicialização alterando as informações de conectividade (endereços IP) do dispositivo principal ou fazendo uma implantação para remover o componente do agente e implantá-lo novamente mais tarde.

v2.5.0
deviceGroups

Grupos de dispositivos são grupos de dispositivos cliente que têm permissões para se conectar e se comunicar com um dispositivo principal. Use regras de seleção para identificar grupos de dispositivos cliente e definir políticas de autorização de dispositivos cliente que especifiquem as permissões para cada grupo de dispositivos.

Esse objeto contém as informações a seguir:

formatVersion

A versão do formato desse objeto de configuração.

Escolha uma das seguintes opções:

  • 2021-03-05

definitions

Os grupos de dispositivos desse dispositivo principal. Cada definição especifica uma regra de seleção para avaliar se um dispositivo cliente é membro do grupo. Cada definição também especifica a política de permissões a ser aplicada aos dispositivos cliente que correspondem à regra de seleção. Se um dispositivo cliente for membro de vários grupos de dispositivos, as permissões do dispositivo serão compostas pela política de permissões de cada grupo.

Esse objeto contém as informações a seguir:

groupNameKey

O nome desse grupo de dispositivos. groupNameKeySubstitua por um nome que ajude a identificar esse grupo de dispositivos.

Esse objeto contém as informações a seguir:

selectionRule

A consulta que especifica quais dispositivos cliente são membros desse grupo de dispositivos. Quando um dispositivo cliente se conecta, o dispositivo principal avalia essa regra de seleção para determinar se o dispositivo cliente é membro desse grupo de dispositivos. Se o dispositivo cliente for membro, o dispositivo principal usa a política desse grupo de dispositivos para autorizar as ações do dispositivo cliente.

Cada regra de seleção inclui pelo menos uma cláusula de regra de seleção, que é uma consulta de expressão única que pode corresponder aos dispositivos cliente. As regras de seleção usam a mesma sintaxe de consulta da indexação de AWS IoT frotas. Para obter mais informações sobre a sintaxe da regra de seleção, consulte a sintaxe da consulta de indexação de frotas do AWS IoT no Guia do desenvolvedor do AWS IoT Core .

Use o curinga * para combinar vários dispositivos cliente com uma cláusula de regra de seleção. É possível usar esse curinga no início e no final do nome da coisa para corresponder aos dispositivos cliente cujos nomes começam ou terminam com a string especificada por você. Também é possível usar esse curinga para corresponder a todos os dispositivos cliente.

nota

Para selecionar um valor que contenha um caractere de dois pontos (:), faça o escape dos dois pontos com um caractere de barra invertida (\). Em formatos comoJSON, você deve escapar dos caracteres de barra invertida, então você insere dois caracteres de barra invertida antes do caractere de dois pontos. Por exemplo, especifique thingName: MyTeam\\:ClientDevice1 para selecionar uma coisa cujo nome seja MyTeam:ClientDevice1.

É possível especificar o seguinte seletor:

  • thingName— O nome da AWS IoT coisa de um dispositivo cliente.

exemplo Exemplo de regra de seleção

A regra de seleção a seguir corresponde aos dispositivos cliente cujos nomes são MyClientDevice1 ou MyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
exemplo Exemplo de regra de seleção (usar curingas)

A regra de seleção a seguir corresponde aos dispositivos cliente cujos nomes começam com MyClientDevice.

thingName: MyClientDevice*
exemplo Exemplo de regra de seleção (usar curingas)

A regra de seleção a seguir corresponde aos dispositivos cliente cujos nomes terminam com MyClientDevice.

thingName: *MyClientDevice
exemplo Exemplo de regra de seleção (corresponder a todos os dispositivos)

A regra de seleção a seguir corresponde a todos os dispositivos cliente.

thingName: *
policyName

A política de permissões que se aplica aos dispositivos cliente nesse grupo de dispositivos. Especifique o nome de uma política que você define no objeto policies.

policies

As políticas de autorização do dispositivo cliente para dispositivos cliente que se conectam ao dispositivo principal. Cada política de autorização especifica um conjunto de ações e os recursos nos quais um dispositivo cliente pode realizar essas ações.

Esse objeto contém as informações a seguir:

policyNameKey

O nome dessa política de autorização. policyNameKeySubstitua por um nome que ajude a identificar essa política de autorização. Você usa esse nome de política para definir qual política se aplica a um grupo de dispositivos.

Esse objeto contém as informações a seguir:

statementNameKey

O nome dessa declaração de política. statementNameKeySubstitua por um nome que ajude a identificar essa declaração de política.

Esse objeto contém as informações a seguir:

operations

A lista de operações para permitir os recursos dessa política.

Você pode incluir usando uma destas operações:

  • mqtt:connect: concede permissão para se conectar ao dispositivo principal. Os dispositivos cliente devem ter essa permissão para se conectar a um dispositivo principal.

    Essa operação é compatível com os seguintes recursos:

    • mqtt:clientId:deviceClientId— Restrinja o acesso com base na ID do cliente que um dispositivo cliente usa para se conectar ao MQTT agente do dispositivo principal. deviceClientIdSubstitua pela ID do cliente a ser usada.

  • mqtt:publish— Concede permissão para publicar MQTT mensagens em tópicos.

    Essa operação é compatível com os seguintes recursos:

    • mqtt:topic:mqttTopic— Restrinja o acesso com base no MQTT tópico em que um dispositivo cliente publica uma mensagem. mqttTopicSubstitua pelo tópico a ser usado.

      Esse recurso não oferece suporte a curingas de MQTT tópicos.

  • mqtt:subscribe— Concede permissão para assinar filtros de MQTT tópicos para receber mensagens.

    Essa operação é compatível com os seguintes recursos:

    • mqtt:topicfilter:mqttTopicFilter— Restrinja o acesso com base nos MQTT tópicos em que um dispositivo cliente pode assinar mensagens. mqttTopicFilterSubstitua pelo filtro de tópicos a ser usado.

      Esse recurso oferece suporte aos curingas + e # MQTT tópicos. Para obter mais informações, consulte MQTTos tópicos no Guia do AWS IoT Core desenvolvedor.

      O dispositivo cliente pode assinar os filtros de tópicos exatos que você permitir. Por exemplo, se você permitir que o dispositivo cliente assine o recurso mqtt:topicfilter:client/+/status, o dispositivo cliente poderá assinar client/+/status, mas não client/client1/status.

É possível especificar o curinga * para permitir o acesso a todas as ações.

resources

A lista de recursos para permitir as operações dessa política. Especifique os recursos que correspondem às operações dessa política. Por exemplo, você pode especificar uma lista de recursos de MQTT tópicos (mqtt:topic:mqttTopic) em uma política que especifica a mqtt:publish operação.

É possível especificar o curinga * em qualquer lugar dentro da variável de recurso para permitir o acesso a todos os recursos. Por exemplo, é possível especificar mqtt:topic:my* para permitir o acesso aos recursos que correspondam a essa entrada.

A seguinte variável de recurso é compatível:

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

    Isso se resume ao nome da coisa no AWS IoT Core registro para a qual a política está sendo avaliada. AWS IoT Core usa o certificado que o dispositivo apresenta ao se autenticar para determinar qual coisa usar para verificar a conexão. Essa variável de política só está disponível quando um dispositivo se conecta MQTT MQTT por meio do WebSocket protocolo.

statementDescription

(Opcional) Uma descrição para essa declaração de política.

certificates

(Opcional) As opções de configuração do certificado para esse dispositivo principal. Esse objeto contém as informações a seguir:

serverCertificateValiditySeconds

(Opcional) O tempo (em segundos) após o qual o certificado do MQTT servidor local expira. É possível configurar essa opção para personalizar a frequência com que os dispositivos cliente se desconectam e se reconectam ao dispositivo principal.

Esse componente gira o certificado do MQTT servidor local 24 horas antes de expirar. O MQTT agente, como o componente do MQTT agente Moquette, gera um novo certificado e reinicia. Quando isso acontece, todos os dispositivos cliente conectados a esse dispositivo principal são desconectados. Os dispositivos cliente podem se reconectar ao dispositivo principal após um curto período.

Padrão: 604800 (7 dias)

Valor mínimo: 172800 (2 dias)

Valor máximo: 864000 (10 dias)

performance

(Opcional) As opções de configuração de desempenho desse dispositivo principal. Esse objeto contém as informações a seguir:

maxActiveAuthTokens

(Opcional) O número máximo de tokens de autorização do dispositivo cliente ativos. É possível aumentar esse número para permitir que um número maior de dispositivos cliente se conecte a um único dispositivo principal, sem precisar reautenticá-los.

Padrão: 2500

cloudRequestQueueSize

(Opcional) O número máximo de Nuvem AWS solicitações a serem colocadas na fila antes que esse componente rejeite as solicitações.

Padrão: 100

maxConcurrentCloudRequests

(Opcional) O número máximo de solicitações simultâneas a serem enviadas para a Nuvem AWS. É possível aumentar esse número para melhorar o desempenho da autenticação em dispositivos principais nos quais você conecta um grande número de dispositivos cliente.

Padrão: 1

certificateAuthority

(Opcional) Opções de configuração da autoridade de certificação para substituir a autoridade intermediária do dispositivo principal pela própria autoridade de certificação intermediária.

nota

Se você configurar seu dispositivo principal do Greengrass com uma autoridade de certificação (CA) personalizada e usar a mesma CA para emitir certificados de dispositivo cliente, o Greengrass ignorará as verificações da política de autorização para operações do dispositivo cliente. MQTT O componente de autenticação do dispositivo cliente confia totalmente nos clientes usando certificados assinados pela CA que ele está configurado para usar.

Para restringir esse comportamento ao usar uma CA personalizada, crie e assine dispositivos cliente usando outra CA ou uma CA intermediária e, em seguida, ajuste os campos certificateUri e certificateChainUri para apontar para a CA intermediária correta.

Esse objeto contém as informações a seguir.

certificateUri

O local do certificado. Pode ser um sistema de arquivos URI ou um URI que aponta para um certificado armazenado em um módulo de segurança de hardware.

certificateChainUri

O local da cadeia de certificados para a CA do dispositivo principal. Essa deve ser a cadeia completa de certificados até a CA raiz. Pode ser um sistema de arquivos URI ou um URI que aponta para uma cadeia de certificados armazenada em um módulo de segurança de hardware.

privateKeyUri

O local da chave privada do dispositivo principal. Isso pode ser um sistema de arquivos URI ou um URI que aponta para uma chave privada de certificado armazenada em um módulo de segurança de hardware.

security

(Opcional) Opções de configuração de segurança desse dispositivo principal. Esse objeto contém as informações a seguir.

clientDeviceTrustDurationMinutes

A duração em minutos em que as informações de autenticação de um dispositivo cliente podem ser confiáveis antes que seja necessário se autenticar novamente com o dispositivo principal. O valor padrão é 1.

metrics

(Opcional) As opções de métricas desse dispositivo principal. As métricas de erro só serão exibidas se houver um erro com a autenticação do dispositivo cliente. Esse objeto contém as informações a seguir:

disableMetrics

Se o campo disableMetrics for definido como true, a autenticação do dispositivo cliente não coletará métricas.

Padrão: false

aggregatePeriodSeconds

O período de agregação em segundos que determina com que frequência a autenticação do dispositivo cliente agrega métricas e as envia ao agente de telemetria. Isso não altera a frequência com que as métricas são publicadas porque o agente de telemetria ainda as publica uma vez por dia.

Padrão: 3600

startupTimeoutSeconds

(Opcional) O tempo máximo em segundos para o componente iniciar. O estado do componente muda para BROKEN se ele exceder esse tempo limite.

Padrão: 120

exemplo Exemplo: atualização de mesclagem de configurações (usando uma política restritiva)

O exemplo de configuração a seguir especifica a permissão para que os dispositivos cliente cujos nomes começam com MyClientDevice se conectem e publiquem/assinem em todos os tópicos.

{ "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" ] } } } } }
exemplo Exemplo: atualização de mesclagem de configurações (usando uma política permissiva)

O exemplo de configuração a seguir especifica a permissão para que todos os dispositivos cliente se conectem e publiquem/assinem em todos os tópicos.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
exemplo Exemplo: atualização de mesclagem de configurações (usando uma política de nome da coisa)

O exemplo de configuração a seguir permite que dispositivos cliente publiquem em tópicos que começam com o nome da coisa do dispositivo cliente e terminam com a string 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

Grupos de dispositivos são grupos de dispositivos cliente que têm permissões para se conectar e se comunicar com um dispositivo principal. Use regras de seleção para identificar grupos de dispositivos cliente e definir políticas de autorização de dispositivos cliente que especifiquem as permissões para cada grupo de dispositivos.

Esse objeto contém as informações a seguir:

formatVersion

A versão do formato desse objeto de configuração.

Escolha uma das seguintes opções:

  • 2021-03-05

definitions

Os grupos de dispositivos desse dispositivo principal. Cada definição especifica uma regra de seleção para avaliar se um dispositivo cliente é membro do grupo. Cada definição também especifica a política de permissões a ser aplicada aos dispositivos cliente que correspondem à regra de seleção. Se um dispositivo cliente for membro de vários grupos de dispositivos, as permissões do dispositivo serão compostas pela política de permissões de cada grupo.

Esse objeto contém as informações a seguir:

groupNameKey

O nome desse grupo de dispositivos. groupNameKeySubstitua por um nome que ajude a identificar esse grupo de dispositivos.

Esse objeto contém as informações a seguir:

selectionRule

A consulta que especifica quais dispositivos cliente são membros desse grupo de dispositivos. Quando um dispositivo cliente se conecta, o dispositivo principal avalia essa regra de seleção para determinar se o dispositivo cliente é membro desse grupo de dispositivos. Se o dispositivo cliente for membro, o dispositivo principal usa a política desse grupo de dispositivos para autorizar as ações do dispositivo cliente.

Cada regra de seleção inclui pelo menos uma cláusula de regra de seleção, que é uma consulta de expressão única que pode corresponder aos dispositivos cliente. As regras de seleção usam a mesma sintaxe de consulta da indexação de AWS IoT frotas. Para obter mais informações sobre a sintaxe da regra de seleção, consulte a sintaxe da consulta de indexação de frotas do AWS IoT no Guia do desenvolvedor do AWS IoT Core .

Use o curinga * para combinar vários dispositivos cliente com uma cláusula de regra de seleção. É possível usar esse curinga no início e no final do nome da coisa para corresponder aos dispositivos cliente cujos nomes começam ou terminam com a string especificada por você. Também é possível usar esse curinga para corresponder a todos os dispositivos cliente.

nota

Para selecionar um valor que contenha um caractere de dois pontos (:), faça o escape dos dois pontos com um caractere de barra invertida (\). Em formatos comoJSON, você deve escapar dos caracteres de barra invertida, então você insere dois caracteres de barra invertida antes do caractere de dois pontos. Por exemplo, especifique thingName: MyTeam\\:ClientDevice1 para selecionar uma coisa cujo nome seja MyTeam:ClientDevice1.

É possível especificar o seguinte seletor:

  • thingName— O nome da AWS IoT coisa de um dispositivo cliente.

exemplo Exemplo de regra de seleção

A regra de seleção a seguir corresponde aos dispositivos cliente cujos nomes são MyClientDevice1 ou MyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
exemplo Exemplo de regra de seleção (usar curingas)

A regra de seleção a seguir corresponde aos dispositivos cliente cujos nomes começam com MyClientDevice.

thingName: MyClientDevice*
exemplo Exemplo de regra de seleção (usar curingas)

A regra de seleção a seguir corresponde aos dispositivos cliente cujos nomes terminam com MyClientDevice.

thingName: *MyClientDevice
exemplo Exemplo de regra de seleção (corresponder a todos os dispositivos)

A regra de seleção a seguir corresponde a todos os dispositivos cliente.

thingName: *
policyName

A política de permissões que se aplica aos dispositivos cliente nesse grupo de dispositivos. Especifique o nome de uma política que você define no objeto policies.

policies

As políticas de autorização do dispositivo cliente para dispositivos cliente que se conectam ao dispositivo principal. Cada política de autorização especifica um conjunto de ações e os recursos nos quais um dispositivo cliente pode realizar essas ações.

Esse objeto contém as informações a seguir:

policyNameKey

O nome dessa política de autorização. policyNameKeySubstitua por um nome que ajude a identificar essa política de autorização. Você usa esse nome de política para definir qual política se aplica a um grupo de dispositivos.

Esse objeto contém as informações a seguir:

statementNameKey

O nome dessa declaração de política. statementNameKeySubstitua por um nome que ajude a identificar essa declaração de política.

Esse objeto contém as informações a seguir:

operations

A lista de operações para permitir os recursos dessa política.

Você pode incluir usando uma destas operações:

  • mqtt:connect: concede permissão para se conectar ao dispositivo principal. Os dispositivos cliente devem ter essa permissão para se conectar a um dispositivo principal.

    Essa operação é compatível com os seguintes recursos:

    • mqtt:clientId:deviceClientId— Restrinja o acesso com base na ID do cliente que um dispositivo cliente usa para se conectar ao MQTT agente do dispositivo principal. deviceClientIdSubstitua pela ID do cliente a ser usada.

  • mqtt:publish— Concede permissão para publicar MQTT mensagens em tópicos.

    Essa operação é compatível com os seguintes recursos:

    • mqtt:topic:mqttTopic— Restrinja o acesso com base no MQTT tópico em que um dispositivo cliente publica uma mensagem. mqttTopicSubstitua pelo tópico a ser usado.

      Esse recurso não oferece suporte a curingas de MQTT tópicos.

  • mqtt:subscribe— Concede permissão para assinar filtros de MQTT tópicos para receber mensagens.

    Essa operação é compatível com os seguintes recursos:

    • mqtt:topicfilter:mqttTopicFilter— Restrinja o acesso com base nos MQTT tópicos em que um dispositivo cliente pode assinar mensagens. mqttTopicFilterSubstitua pelo filtro de tópicos a ser usado.

      Esse recurso oferece suporte aos curingas + e # MQTT tópicos. Para obter mais informações, consulte MQTTos tópicos no Guia do AWS IoT Core desenvolvedor.

      O dispositivo cliente pode assinar os filtros de tópicos exatos que você permitir. Por exemplo, se você permitir que o dispositivo cliente assine o recurso mqtt:topicfilter:client/+/status, o dispositivo cliente poderá assinar client/+/status, mas não client/client1/status.

É possível especificar o curinga * para permitir o acesso a todas as ações.

resources

A lista de recursos para permitir as operações dessa política. Especifique os recursos que correspondem às operações dessa política. Por exemplo, você pode especificar uma lista de recursos de MQTT tópicos (mqtt:topic:mqttTopic) em uma política que especifica a mqtt:publish operação.

É possível especificar o curinga * para permitir o acesso a todos os recursos. Não é possível usar o curinga * para corresponder a identificadores parciais de recursos. Por exemplo, é possível especificar "resources": "*", mas não é possível especificar "resources": "mqtt:clientId:*".

statementDescription

(Opcional) Uma descrição para essa declaração de política.

certificates

(Opcional) As opções de configuração do certificado para esse dispositivo principal. Esse objeto contém as informações a seguir:

serverCertificateValiditySeconds

(Opcional) O tempo (em segundos) após o qual o certificado do MQTT servidor local expira. É possível configurar essa opção para personalizar a frequência com que os dispositivos cliente se desconectam e se reconectam ao dispositivo principal.

Esse componente gira o certificado do MQTT servidor local 24 horas antes de expirar. O MQTT agente, como o componente do MQTT agente Moquette, gera um novo certificado e reinicia. Quando isso acontece, todos os dispositivos cliente conectados a esse dispositivo principal são desconectados. Os dispositivos cliente podem se reconectar ao dispositivo principal após um curto período.

Padrão: 604800 (7 dias)

Valor mínimo: 172800 (2 dias)

Valor máximo: 864000 (10 dias)

performance

(Opcional) As opções de configuração de desempenho desse dispositivo principal. Esse objeto contém as informações a seguir:

maxActiveAuthTokens

(Opcional) O número máximo de tokens de autorização do dispositivo cliente ativos. É possível aumentar esse número para permitir que um número maior de dispositivos cliente se conecte a um único dispositivo principal, sem precisar reautenticá-los.

Padrão: 2500

cloudRequestQueueSize

(Opcional) O número máximo de Nuvem AWS solicitações a serem colocadas na fila antes que esse componente rejeite as solicitações.

Padrão: 100

maxConcurrentCloudRequests

(Opcional) O número máximo de solicitações simultâneas a serem enviadas para a Nuvem AWS. É possível aumentar esse número para melhorar o desempenho da autenticação em dispositivos principais nos quais você conecta um grande número de dispositivos cliente.

Padrão: 1

certificateAuthority

(Opcional) Opções de configuração da autoridade de certificação para substituir a autoridade intermediária do dispositivo principal pela própria autoridade de certificação intermediária.

nota

Se você configurar seu dispositivo principal do Greengrass com uma autoridade de certificação (CA) personalizada e usar a mesma CA para emitir certificados de dispositivo cliente, o Greengrass ignorará as verificações da política de autorização para operações do dispositivo cliente. MQTT O componente de autenticação do dispositivo cliente confia totalmente nos clientes usando certificados assinados pela CA que ele está configurado para usar.

Para restringir esse comportamento ao usar uma CA personalizada, crie e assine dispositivos cliente usando outra CA ou uma CA intermediária e, em seguida, ajuste os campos certificateUri e certificateChainUri para apontar para a CA intermediária correta.

Esse objeto contém as informações a seguir.

certificateUri

O local do certificado. Pode ser um sistema de arquivos URI ou um URI que aponta para um certificado armazenado em um módulo de segurança de hardware.

certificateChainUri

O local da cadeia de certificados para a CA do dispositivo principal. Essa deve ser a cadeia completa de certificados até a CA raiz. Pode ser um sistema de arquivos URI ou um URI que aponta para uma cadeia de certificados armazenada em um módulo de segurança de hardware.

privateKeyUri

O local da chave privada do dispositivo principal. Isso pode ser um sistema de arquivos URI ou um URI que aponta para uma chave privada de certificado armazenada em um módulo de segurança de hardware.

security

(Opcional) Opções de configuração de segurança desse dispositivo principal. Esse objeto contém as informações a seguir.

clientDeviceTrustDurationMinutes

A duração em minutos em que as informações de autenticação de um dispositivo cliente podem ser confiáveis antes que seja necessário se autenticar novamente com o dispositivo principal. O valor padrão é 1.

metrics

(Opcional) As opções de métricas desse dispositivo principal. As métricas de erro só serão exibidas se houver um erro com a autenticação do dispositivo cliente. Esse objeto contém as informações a seguir:

disableMetrics

Se o campo disableMetrics for definido como true, a autenticação do dispositivo cliente não coletará métricas.

Padrão: false

aggregatePeriodSeconds

O período de agregação em segundos que determina com que frequência a autenticação do dispositivo cliente agrega métricas e as envia ao agente de telemetria. Isso não altera a frequência com que as métricas são publicadas porque o agente de telemetria ainda as publica uma vez por dia.

Padrão: 3600

startupTimeoutSeconds

(Opcional) O tempo máximo em segundos para o componente iniciar. O estado do componente muda para BROKEN se ele exceder esse tempo limite.

Padrão: 120

exemplo Exemplo: atualização de mesclagem de configurações (usando uma política restritiva)

O exemplo de configuração a seguir especifica a permissão para que os dispositivos cliente cujos nomes começam com MyClientDevice se conectem e publiquem/assinem em todos os tópicos.

{ "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" ] } } } } }
exemplo Exemplo: atualização de mesclagem de configurações (usando uma política permissiva)

O exemplo de configuração a seguir especifica a permissão para que todos os dispositivos cliente se conectem e publiquem/assinem em todos os tópicos.

{ "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

Grupos de dispositivos são grupos de dispositivos cliente que têm permissões para se conectar e se comunicar com um dispositivo principal. Use regras de seleção para identificar grupos de dispositivos cliente e definir políticas de autorização de dispositivos cliente que especifiquem as permissões para cada grupo de dispositivos.

Esse objeto contém as informações a seguir:

formatVersion

A versão do formato desse objeto de configuração.

Escolha uma das seguintes opções:

  • 2021-03-05

definitions

Os grupos de dispositivos desse dispositivo principal. Cada definição especifica uma regra de seleção para avaliar se um dispositivo cliente é membro do grupo. Cada definição também especifica a política de permissões a ser aplicada aos dispositivos cliente que correspondem à regra de seleção. Se um dispositivo cliente for membro de vários grupos de dispositivos, as permissões do dispositivo serão compostas pela política de permissões de cada grupo.

Esse objeto contém as informações a seguir:

groupNameKey

O nome desse grupo de dispositivos. groupNameKeySubstitua por um nome que ajude a identificar esse grupo de dispositivos.

Esse objeto contém as informações a seguir:

selectionRule

A consulta que especifica quais dispositivos cliente são membros desse grupo de dispositivos. Quando um dispositivo cliente se conecta, o dispositivo principal avalia essa regra de seleção para determinar se o dispositivo cliente é membro desse grupo de dispositivos. Se o dispositivo cliente for membro, o dispositivo principal usa a política desse grupo de dispositivos para autorizar as ações do dispositivo cliente.

Cada regra de seleção inclui pelo menos uma cláusula de regra de seleção, que é uma consulta de expressão única que pode corresponder aos dispositivos cliente. As regras de seleção usam a mesma sintaxe de consulta da indexação de AWS IoT frotas. Para obter mais informações sobre a sintaxe da regra de seleção, consulte a sintaxe da consulta de indexação de frotas do AWS IoT no Guia do desenvolvedor do AWS IoT Core .

Use o curinga * para combinar vários dispositivos cliente com uma cláusula de regra de seleção. É possível usar esse curinga no final do nome da coisa para corresponder aos dispositivos cliente cujos nomes começam com uma string especificada por você. Também é possível usar esse curinga para corresponder a todos os dispositivos cliente.

nota

Para selecionar um valor que contenha um caractere de dois pontos (:), faça o escape dos dois pontos com um caractere de barra invertida (\\). Em formatos comoJSON, você deve escapar dos caracteres de barra invertida, então você insere dois caracteres de barra invertida antes do caractere de dois pontos. Por exemplo, especifique thingName: MyTeam\\\\:ClientDevice1 para selecionar uma coisa cujo nome seja MyTeam:ClientDevice1.

É possível especificar o seguinte seletor:

  • thingName: o nome da coisa do AWS IoT de um dispositivo cliente.

exemplo Exemplo de regra de seleção

A regra de seleção a seguir corresponde aos dispositivos cliente cujos nomes são MyClientDevice1 ou MyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
exemplo Exemplo de regra de seleção (usar curingas)

A regra de seleção a seguir corresponde aos dispositivos cliente cujos nomes começam com MyClientDevice.

thingName: MyClientDevice*
exemplo Exemplo de regra de seleção (corresponder a todos os dispositivos)

A regra de seleção a seguir corresponde a todos os dispositivos cliente.

thingName: *
policyName

A política de permissões que se aplica aos dispositivos cliente nesse grupo de dispositivos. Especifique o nome de uma política que você define no objeto policies.

policies

As políticas de autorização do dispositivo cliente para dispositivos cliente que se conectam ao dispositivo principal. Cada política de autorização especifica um conjunto de ações e os recursos nos quais um dispositivo cliente pode realizar essas ações.

Esse objeto contém as informações a seguir:

policyNameKey

O nome dessa política de autorização. policyNameKeySubstitua por um nome que ajude a identificar essa política de autorização. Você usa esse nome de política para definir qual política se aplica a um grupo de dispositivos.

Esse objeto contém as informações a seguir:

statementNameKey

O nome dessa declaração de política. statementNameKeySubstitua por um nome que ajude a identificar essa declaração de política.

Esse objeto contém as informações a seguir:

operations

A lista de operações para permitir os recursos dessa política.

Você pode incluir usando uma destas operações:

  • mqtt:connect: concede permissão para se conectar ao dispositivo principal. Os dispositivos cliente devem ter essa permissão para se conectar a um dispositivo principal.

    Essa operação é compatível com os seguintes recursos:

    • mqtt:clientId:deviceClientId— Restrinja o acesso com base na ID do cliente que um dispositivo cliente usa para se conectar ao MQTT agente do dispositivo principal. deviceClientIdSubstitua pela ID do cliente a ser usada.

  • mqtt:publish— Concede permissão para publicar MQTT mensagens em tópicos.

    Essa operação é compatível com os seguintes recursos:

    • mqtt:topic:mqttTopic— Restrinja o acesso com base no MQTT tópico em que um dispositivo cliente publica uma mensagem. mqttTopicSubstitua pelo tópico a ser usado.

      Esse recurso não oferece suporte a curingas de MQTT tópicos.

  • mqtt:subscribe— Concede permissão para assinar filtros de MQTT tópicos para receber mensagens.

    Essa operação é compatível com os seguintes recursos:

    • mqtt:topicfilter:mqttTopicFilter— Restrinja o acesso com base nos MQTT tópicos em que um dispositivo cliente pode assinar mensagens. mqttTopicFilterSubstitua pelo filtro de tópicos a ser usado.

      Esse recurso oferece suporte aos curingas + e # MQTT tópicos. Para obter mais informações, consulte MQTTos tópicos no Guia do AWS IoT Core desenvolvedor.

      O dispositivo cliente pode assinar os filtros de tópicos exatos que você permitir. Por exemplo, se você permitir que o dispositivo cliente assine o recurso mqtt:topicfilter:client/+/status, o dispositivo cliente poderá assinar client/+/status, mas não client/client1/status.

É possível especificar o curinga * para permitir o acesso a todas as ações.

resources

A lista de recursos para permitir as operações dessa política. Especifique os recursos que correspondem às operações dessa política. Por exemplo, você pode especificar uma lista de recursos de MQTT tópicos (mqtt:topic:mqttTopic) em uma política que especifica a mqtt:publish operação.

É possível especificar o curinga * para permitir o acesso a todos os recursos. Não é possível usar o curinga * para corresponder a identificadores parciais de recursos. Por exemplo, é possível especificar "resources": "*", mas não é possível especificar "resources": "mqtt:clientId:*".

statementDescription

(Opcional) Uma descrição para essa declaração de política.

certificates

(Opcional) As opções de configuração do certificado para esse dispositivo principal. Esse objeto contém as informações a seguir:

serverCertificateValiditySeconds

(Opcional) O tempo (em segundos) após o qual o certificado do MQTT servidor local expira. É possível configurar essa opção para personalizar a frequência com que os dispositivos cliente se desconectam e se reconectam ao dispositivo principal.

Esse componente gira o certificado do MQTT servidor local 24 horas antes de expirar. O MQTT agente, como o componente do MQTT agente Moquette, gera um novo certificado e reinicia. Quando isso acontece, todos os dispositivos cliente conectados a esse dispositivo principal são desconectados. Os dispositivos cliente podem se reconectar ao dispositivo principal após um curto período.

Padrão: 604800 (7 dias)

Valor mínimo: 172800 (2 dias)

Valor máximo: 864000 (10 dias)

performance

(Opcional) As opções de configuração de desempenho desse dispositivo principal. Esse objeto contém as informações a seguir:

maxActiveAuthTokens

(Opcional) O número máximo de tokens de autorização do dispositivo cliente ativos. É possível aumentar esse número para permitir que um número maior de dispositivos cliente se conecte a um único dispositivo principal, sem precisar reautenticá-los.

Padrão: 2500

cloudRequestQueueSize

(Opcional) O número máximo de Nuvem AWS solicitações a serem colocadas na fila antes que esse componente rejeite as solicitações.

Padrão: 100

maxConcurrentCloudRequests

(Opcional) O número máximo de solicitações simultâneas a serem enviadas para a Nuvem AWS. É possível aumentar esse número para melhorar o desempenho da autenticação em dispositivos principais nos quais você conecta um grande número de dispositivos cliente.

Padrão: 1

certificateAuthority

(Opcional) Opções de configuração da autoridade de certificação para substituir a autoridade intermediária do dispositivo principal pela própria autoridade de certificação intermediária.

nota

Se você configurar seu dispositivo principal do Greengrass com uma autoridade de certificação (CA) personalizada e usar a mesma CA para emitir certificados de dispositivo cliente, o Greengrass ignorará as verificações da política de autorização para operações do dispositivo cliente. MQTT O componente de autenticação do dispositivo cliente confia totalmente nos clientes usando certificados assinados pela CA que ele está configurado para usar.

Para restringir esse comportamento ao usar uma CA personalizada, crie e assine dispositivos cliente usando outra CA ou uma CA intermediária e, em seguida, ajuste os campos certificateUri e certificateChainUri para apontar para a CA intermediária correta.

Esse objeto contém as informações a seguir.

certificateUri

O local do certificado. Pode ser um sistema de arquivos URI ou um URI que aponta para um certificado armazenado em um módulo de segurança de hardware.

certificateChainUri

O local da cadeia de certificados para a CA do dispositivo principal. Essa deve ser a cadeia completa de certificados até a CA raiz. Pode ser um sistema de arquivos URI ou um URI que aponta para uma cadeia de certificados armazenada em um módulo de segurança de hardware.

privateKeyUri

O local da chave privada do dispositivo principal. Isso pode ser um sistema de arquivos URI ou um URI que aponta para uma chave privada de certificado armazenada em um módulo de segurança de hardware.

security

(Opcional) Opções de configuração de segurança desse dispositivo principal. Esse objeto contém as informações a seguir.

clientDeviceTrustDurationMinutes

A duração em minutos em que as informações de autenticação de um dispositivo cliente podem ser confiáveis antes que seja necessário se autenticar novamente com o dispositivo principal. O valor padrão é 1.

metrics

(Opcional) As opções de métricas desse dispositivo principal. As métricas de erro só serão exibidas se houver um erro com a autenticação do dispositivo cliente. Esse objeto contém as informações a seguir:

disableMetrics

Se o campo disableMetrics for definido como true, a autenticação do dispositivo cliente não coletará métricas.

Padrão: false

aggregatePeriodSeconds

O período de agregação em segundos que determina com que frequência a autenticação do dispositivo cliente agrega métricas e as envia ao agente de telemetria. Isso não altera a frequência com que as métricas são publicadas porque o agente de telemetria ainda as publica uma vez por dia.

Padrão: 3600

startupTimeoutSeconds

(Opcional) O tempo máximo em segundos para o componente iniciar. O estado do componente muda para BROKEN se ele exceder esse tempo limite.

Padrão: 120

exemplo Exemplo: atualização de mesclagem de configurações (usando uma política restritiva)

O exemplo de configuração a seguir especifica a permissão para que os dispositivos cliente cujos nomes começam com MyClientDevice se conectem e publiquem/assinem em todos os tópicos.

{ "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" ] } } } } }
exemplo Exemplo: atualização de mesclagem de configurações (usando uma política permissiva)

O exemplo de configuração a seguir especifica a permissão para que todos os dispositivos cliente se conectem e publiquem/assinem em todos os tópicos.

{ "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

Grupos de dispositivos são grupos de dispositivos cliente que têm permissões para se conectar e se comunicar com um dispositivo principal. Use regras de seleção para identificar grupos de dispositivos cliente e definir políticas de autorização de dispositivos cliente que especifiquem as permissões para cada grupo de dispositivos.

Esse objeto contém as informações a seguir:

formatVersion

A versão do formato desse objeto de configuração.

Escolha uma das seguintes opções:

  • 2021-03-05

definitions

Os grupos de dispositivos desse dispositivo principal. Cada definição especifica uma regra de seleção para avaliar se um dispositivo cliente é membro do grupo. Cada definição também especifica a política de permissões a ser aplicada aos dispositivos cliente que correspondem à regra de seleção. Se um dispositivo cliente for membro de vários grupos de dispositivos, as permissões do dispositivo serão compostas pela política de permissões de cada grupo.

Esse objeto contém as informações a seguir:

groupNameKey

O nome desse grupo de dispositivos. groupNameKeySubstitua por um nome que ajude a identificar esse grupo de dispositivos.

Esse objeto contém as informações a seguir:

selectionRule

A consulta que especifica quais dispositivos cliente são membros desse grupo de dispositivos. Quando um dispositivo cliente se conecta, o dispositivo principal avalia essa regra de seleção para determinar se o dispositivo cliente é membro desse grupo de dispositivos. Se o dispositivo cliente for membro, o dispositivo principal usa a política desse grupo de dispositivos para autorizar as ações do dispositivo cliente.

Cada regra de seleção inclui pelo menos uma cláusula de regra de seleção, que é uma consulta de expressão única que pode corresponder aos dispositivos cliente. As regras de seleção usam a mesma sintaxe de consulta da indexação de AWS IoT frotas. Para obter mais informações sobre a sintaxe da regra de seleção, consulte a sintaxe da consulta de indexação de frotas do AWS IoT no Guia do desenvolvedor do AWS IoT Core .

Use o curinga * para combinar vários dispositivos cliente com uma cláusula de regra de seleção. É possível usar esse curinga no final do nome da coisa para corresponder aos dispositivos cliente cujos nomes começam com uma string especificada por você. Também é possível usar esse curinga para corresponder a todos os dispositivos cliente.

nota

Para selecionar um valor que contenha um caractere de dois pontos (:), faça o escape dos dois pontos com um caractere de barra invertida (\\). Em formatos comoJSON, você deve escapar dos caracteres de barra invertida, então você insere dois caracteres de barra invertida antes do caractere de dois pontos. Por exemplo, especifique thingName: MyTeam\\\\:ClientDevice1 para selecionar uma coisa cujo nome seja MyTeam:ClientDevice1.

É possível especificar o seguinte seletor:

  • thingName: o nome da coisa do AWS IoT de um dispositivo cliente.

exemplo Exemplo de regra de seleção

A regra de seleção a seguir corresponde aos dispositivos cliente cujos nomes são MyClientDevice1 ou MyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
exemplo Exemplo de regra de seleção (usar curingas)

A regra de seleção a seguir corresponde aos dispositivos cliente cujos nomes começam com MyClientDevice.

thingName: MyClientDevice*
exemplo Exemplo de regra de seleção (corresponder a todos os dispositivos)

A regra de seleção a seguir corresponde a todos os dispositivos cliente.

thingName: *
policyName

A política de permissões que se aplica aos dispositivos cliente nesse grupo de dispositivos. Especifique o nome de uma política que você define no objeto policies.

policies

As políticas de autorização do dispositivo cliente para dispositivos cliente que se conectam ao dispositivo principal. Cada política de autorização especifica um conjunto de ações e os recursos nos quais um dispositivo cliente pode realizar essas ações.

Esse objeto contém as informações a seguir:

policyNameKey

O nome dessa política de autorização. policyNameKeySubstitua por um nome que ajude a identificar essa política de autorização. Você usa esse nome de política para definir qual política se aplica a um grupo de dispositivos.

Esse objeto contém as informações a seguir:

statementNameKey

O nome dessa declaração de política. statementNameKeySubstitua por um nome que ajude a identificar essa declaração de política.

Esse objeto contém as informações a seguir:

operations

A lista de operações para permitir os recursos dessa política.

Você pode incluir usando uma destas operações:

  • mqtt:connect: concede permissão para se conectar ao dispositivo principal. Os dispositivos cliente devem ter essa permissão para se conectar a um dispositivo principal.

    Essa operação é compatível com os seguintes recursos:

    • mqtt:clientId:deviceClientId— Restrinja o acesso com base na ID do cliente que um dispositivo cliente usa para se conectar ao MQTT agente do dispositivo principal. deviceClientIdSubstitua pela ID do cliente a ser usada.

  • mqtt:publish— Concede permissão para publicar MQTT mensagens em tópicos.

    Essa operação é compatível com os seguintes recursos:

    • mqtt:topic:mqttTopic— Restrinja o acesso com base no MQTT tópico em que um dispositivo cliente publica uma mensagem. mqttTopicSubstitua pelo tópico a ser usado.

      Esse recurso não oferece suporte a curingas de MQTT tópicos.

  • mqtt:subscribe— Concede permissão para assinar filtros de MQTT tópicos para receber mensagens.

    Essa operação é compatível com os seguintes recursos:

    • mqtt:topicfilter:mqttTopicFilter— Restrinja o acesso com base nos MQTT tópicos em que um dispositivo cliente pode assinar mensagens. mqttTopicFilterSubstitua pelo filtro de tópicos a ser usado.

      Esse recurso oferece suporte aos curingas + e # MQTT tópicos. Para obter mais informações, consulte MQTTos tópicos no Guia do AWS IoT Core desenvolvedor.

      O dispositivo cliente pode assinar os filtros de tópicos exatos que você permitir. Por exemplo, se você permitir que o dispositivo cliente assine o recurso mqtt:topicfilter:client/+/status, o dispositivo cliente poderá assinar client/+/status, mas não client/client1/status.

É possível especificar o curinga * para permitir o acesso a todas as ações.

resources

A lista de recursos para permitir as operações dessa política. Especifique os recursos que correspondem às operações dessa política. Por exemplo, você pode especificar uma lista de recursos de MQTT tópicos (mqtt:topic:mqttTopic) em uma política que especifica a mqtt:publish operação.

É possível especificar o curinga * para permitir o acesso a todos os recursos. Não é possível usar o curinga * para corresponder a identificadores parciais de recursos. Por exemplo, é possível especificar "resources": "*", mas não é possível especificar "resources": "mqtt:clientId:*".

statementDescription

(Opcional) Uma descrição para essa declaração de política.

certificates

(Opcional) As opções de configuração do certificado para esse dispositivo principal. Esse objeto contém as informações a seguir:

serverCertificateValiditySeconds

(Opcional) O tempo (em segundos) após o qual o certificado do MQTT servidor local expira. É possível configurar essa opção para personalizar a frequência com que os dispositivos cliente se desconectam e se reconectam ao dispositivo principal.

Esse componente gira o certificado do MQTT servidor local 24 horas antes de expirar. O MQTT agente, como o componente do MQTT agente Moquette, gera um novo certificado e reinicia. Quando isso acontece, todos os dispositivos cliente conectados a esse dispositivo principal são desconectados. Os dispositivos cliente podem se reconectar ao dispositivo principal após um curto período.

Padrão: 604800 (7 dias)

Valor mínimo: 172800 (2 dias)

Valor máximo: 864000 (10 dias)

performance

(Opcional) As opções de configuração de desempenho desse dispositivo principal. Esse objeto contém as informações a seguir:

maxActiveAuthTokens

(Opcional) O número máximo de tokens de autorização do dispositivo cliente ativos. É possível aumentar esse número para permitir que um número maior de dispositivos cliente se conecte a um único dispositivo principal, sem precisar reautenticá-los.

Padrão: 2500

cloudRequestQueueSize

(Opcional) O número máximo de Nuvem AWS solicitações a serem colocadas na fila antes que esse componente rejeite as solicitações.

Padrão: 100

maxConcurrentCloudRequests

(Opcional) O número máximo de solicitações simultâneas a serem enviadas para a Nuvem AWS. É possível aumentar esse número para melhorar o desempenho da autenticação em dispositivos principais nos quais você conecta um grande número de dispositivos cliente.

Padrão: 1

certificateAuthority

(Opcional) Opções de configuração da autoridade de certificação para substituir a autoridade intermediária do dispositivo principal pela própria autoridade de certificação intermediária. Esse objeto contém as informações a seguir.

Esse objeto contém as informações a seguir:

certificateUri

O local do certificado. Pode ser um sistema de arquivos URI ou um URI que aponta para um certificado armazenado em um módulo de segurança de hardware.

certificateChainUri

O local da cadeia de certificados para a CA do dispositivo principal. Essa deve ser a cadeia completa de certificados até a CA raiz. Pode ser um sistema de arquivos URI ou um URI que aponta para uma cadeia de certificados armazenada em um módulo de segurança de hardware.

privateKeyUri

O local da chave privada do dispositivo principal. Isso pode ser um sistema de arquivos URI ou um URI que aponta para uma chave privada de certificado armazenada em um módulo de segurança de hardware.

security

(Opcional) Opções de configuração de segurança desse dispositivo principal. Esse objeto contém as informações a seguir.

clientDeviceTrustDurationMinutes

A duração em minutos em que as informações de autenticação de um dispositivo cliente podem ser confiáveis antes que seja necessário se autenticar novamente com o dispositivo principal. O valor padrão é 1.

metrics

(Opcional) As opções de métricas desse dispositivo principal. As métricas de erro só serão exibidas se houver um erro com a autenticação do dispositivo cliente. Esse objeto contém as informações a seguir:

disableMetrics

Se o campo disableMetrics for definido como true, a autenticação do dispositivo cliente não coletará métricas.

Padrão: false

aggregatePeriodSeconds

O período de agregação em segundos que determina com que frequência a autenticação do dispositivo cliente agrega métricas e as envia ao agente de telemetria. Isso não altera a frequência com que as métricas são publicadas porque o agente de telemetria ainda as publica uma vez por dia.

Padrão: 3600

exemplo Exemplo: atualização de mesclagem de configurações (usando uma política restritiva)

O exemplo de configuração a seguir especifica a permissão para que os dispositivos cliente cujos nomes começam com MyClientDevice se conectem e publiquem/assinem em todos os tópicos.

{ "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" ] } } } } }
exemplo Exemplo: atualização de mesclagem de configurações (usando uma política permissiva)

O exemplo de configuração a seguir especifica a permissão para que todos os dispositivos cliente se conectem e publiquem/assinem em todos os tópicos.

{ "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

Grupos de dispositivos são grupos de dispositivos cliente que têm permissões para se conectar e se comunicar com um dispositivo principal. Use regras de seleção para identificar grupos de dispositivos cliente e definir políticas de autorização de dispositivos cliente que especifiquem as permissões para cada grupo de dispositivos.

Esse objeto contém as informações a seguir:

formatVersion

A versão do formato desse objeto de configuração.

Escolha uma das seguintes opções:

  • 2021-03-05

definitions

Os grupos de dispositivos desse dispositivo principal. Cada definição especifica uma regra de seleção para avaliar se um dispositivo cliente é membro do grupo. Cada definição também especifica a política de permissões a ser aplicada aos dispositivos cliente que correspondem à regra de seleção. Se um dispositivo cliente for membro de vários grupos de dispositivos, as permissões do dispositivo serão compostas pela política de permissões de cada grupo.

Esse objeto contém as informações a seguir:

groupNameKey

O nome desse grupo de dispositivos. groupNameKeySubstitua por um nome que ajude a identificar esse grupo de dispositivos.

Esse objeto contém as informações a seguir:

selectionRule

A consulta que especifica quais dispositivos cliente são membros desse grupo de dispositivos. Quando um dispositivo cliente se conecta, o dispositivo principal avalia essa regra de seleção para determinar se o dispositivo cliente é membro desse grupo de dispositivos. Se o dispositivo cliente for membro, o dispositivo principal usa a política desse grupo de dispositivos para autorizar as ações do dispositivo cliente.

Cada regra de seleção inclui pelo menos uma cláusula de regra de seleção, que é uma consulta de expressão única que pode corresponder aos dispositivos cliente. As regras de seleção usam a mesma sintaxe de consulta da indexação de AWS IoT frotas. Para obter mais informações sobre a sintaxe da regra de seleção, consulte a sintaxe da consulta de indexação de frotas do AWS IoT no Guia do desenvolvedor do AWS IoT Core .

Use o curinga * para combinar vários dispositivos cliente com uma cláusula de regra de seleção. É possível usar esse curinga no final do nome da coisa para corresponder aos dispositivos cliente cujos nomes começam com uma string especificada por você. Também é possível usar esse curinga para corresponder a todos os dispositivos cliente.

nota

Para selecionar um valor que contenha um caractere de dois pontos (:), faça o escape dos dois pontos com um caractere de barra invertida (\\). Em formatos comoJSON, você deve escapar dos caracteres de barra invertida, então você insere dois caracteres de barra invertida antes do caractere de dois pontos. Por exemplo, especifique thingName: MyTeam\\\\:ClientDevice1 para selecionar uma coisa cujo nome seja MyTeam:ClientDevice1.

É possível especificar o seguinte seletor:

  • thingName: o nome da coisa do AWS IoT de um dispositivo cliente.

exemplo Exemplo de regra de seleção

A regra de seleção a seguir corresponde aos dispositivos cliente cujos nomes são MyClientDevice1 ou MyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
exemplo Exemplo de regra de seleção (usar curingas)

A regra de seleção a seguir corresponde aos dispositivos cliente cujos nomes começam com MyClientDevice.

thingName: MyClientDevice*
exemplo Exemplo de regra de seleção (corresponder a todos os dispositivos)

A regra de seleção a seguir corresponde a todos os dispositivos cliente.

thingName: *
policyName

A política de permissões que se aplica aos dispositivos cliente nesse grupo de dispositivos. Especifique o nome de uma política que você define no objeto policies.

policies

As políticas de autorização do dispositivo cliente para dispositivos cliente que se conectam ao dispositivo principal. Cada política de autorização especifica um conjunto de ações e os recursos nos quais um dispositivo cliente pode realizar essas ações.

Esse objeto contém as informações a seguir:

policyNameKey

O nome dessa política de autorização. policyNameKeySubstitua por um nome que ajude a identificar essa política de autorização. Você usa esse nome de política para definir qual política se aplica a um grupo de dispositivos.

Esse objeto contém as informações a seguir:

statementNameKey

O nome dessa declaração de política. statementNameKeySubstitua por um nome que ajude a identificar essa declaração de política.

Esse objeto contém as informações a seguir:

operations

A lista de operações para permitir os recursos dessa política.

Você pode incluir usando uma destas operações:

  • mqtt:connect: concede permissão para se conectar ao dispositivo principal. Os dispositivos cliente devem ter essa permissão para se conectar a um dispositivo principal.

    Essa operação é compatível com os seguintes recursos:

    • mqtt:clientId:deviceClientId— Restrinja o acesso com base na ID do cliente que um dispositivo cliente usa para se conectar ao MQTT agente do dispositivo principal. deviceClientIdSubstitua pela ID do cliente a ser usada.

  • mqtt:publish— Concede permissão para publicar MQTT mensagens em tópicos.

    Essa operação é compatível com os seguintes recursos:

    • mqtt:topic:mqttTopic— Restrinja o acesso com base no MQTT tópico em que um dispositivo cliente publica uma mensagem. mqttTopicSubstitua pelo tópico a ser usado.

      Esse recurso não oferece suporte a curingas de MQTT tópicos.

  • mqtt:subscribe— Concede permissão para assinar filtros de MQTT tópicos para receber mensagens.

    Essa operação é compatível com os seguintes recursos:

    • mqtt:topicfilter:mqttTopicFilter— Restrinja o acesso com base nos MQTT tópicos em que um dispositivo cliente pode assinar mensagens. mqttTopicFilterSubstitua pelo filtro de tópicos a ser usado.

      Esse recurso oferece suporte aos curingas + e # MQTT tópicos. Para obter mais informações, consulte MQTTos tópicos no Guia do AWS IoT Core desenvolvedor.

      O dispositivo cliente pode assinar os filtros de tópicos exatos que você permitir. Por exemplo, se você permitir que o dispositivo cliente assine o recurso mqtt:topicfilter:client/+/status, o dispositivo cliente poderá assinar client/+/status, mas não client/client1/status.

É possível especificar o curinga * para permitir o acesso a todas as ações.

resources

A lista de recursos para permitir as operações dessa política. Especifique os recursos que correspondem às operações dessa política. Por exemplo, você pode especificar uma lista de recursos de MQTT tópicos (mqtt:topic:mqttTopic) em uma política que especifica a mqtt:publish operação.

É possível especificar o curinga * para permitir o acesso a todos os recursos. Não é possível usar o curinga * para corresponder a identificadores parciais de recursos. Por exemplo, é possível especificar "resources": "*", mas não é possível especificar "resources": "mqtt:clientId:*".

statementDescription

(Opcional) Uma descrição para essa declaração de política.

certificates

(Opcional) As opções de configuração do certificado para esse dispositivo principal. Esse objeto contém as informações a seguir:

serverCertificateValiditySeconds

(Opcional) O tempo (em segundos) após o qual o certificado do MQTT servidor local expira. É possível configurar essa opção para personalizar a frequência com que os dispositivos cliente se desconectam e se reconectam ao dispositivo principal.

Esse componente gira o certificado do MQTT servidor local 24 horas antes de expirar. O MQTT agente, como o componente do MQTT agente Moquette, gera um novo certificado e reinicia. Quando isso acontece, todos os dispositivos cliente conectados a esse dispositivo principal são desconectados. Os dispositivos cliente podem se reconectar ao dispositivo principal após um curto período.

Padrão: 604800 (7 dias)

Valor mínimo: 172800 (2 dias)

Valor máximo: 864000 (10 dias)

performance

(Opcional) As opções de configuração de desempenho desse dispositivo principal. Esse objeto contém as informações a seguir:

maxActiveAuthTokens

(Opcional) O número máximo de tokens de autorização do dispositivo cliente ativos. É possível aumentar esse número para permitir que um número maior de dispositivos cliente se conecte a um único dispositivo principal sem precisar reautenticá-los.

Padrão: 2500

cloudRequestQueueSize

(Opcional) O número máximo de Nuvem AWS solicitações a serem colocadas na fila antes que esse componente rejeite as solicitações.

Padrão: 100

maxConcurrentCloudRequests

(Opcional) O número máximo de solicitações simultâneas a serem enviadas para a Nuvem AWS. É possível aumentar esse número para melhorar o desempenho da autenticação em dispositivos principais nos quais você conecta um grande número de dispositivos cliente.

Padrão: 1

certificateAuthority

(Opcional) Opções de configuração da autoridade de certificação para substituir a autoridade intermediária do dispositivo principal pela própria autoridade de certificação intermediária. Esse objeto contém as informações a seguir.

certificateUri

O local do certificado. Pode ser um sistema de arquivos URI ou um URI que aponta para um certificado armazenado em um módulo de segurança de hardware.

certificateChainUri

O local da cadeia de certificados para a CA do dispositivo principal. Essa deve ser a cadeia completa de certificados até a CA raiz. Pode ser um sistema de arquivos URI ou um URI que aponta para uma cadeia de certificados armazenada em um módulo de segurança de hardware.

privateKeyUri

O local da chave privada do dispositivo principal. Isso pode ser um sistema de arquivos URI ou um URI que aponta para uma chave privada de certificado armazenada em um módulo de segurança de hardware.

security

(Opcional) Opções de configuração de segurança desse dispositivo principal. Esse objeto contém as informações a seguir.

clientDeviceTrustDurationMinutes

A duração em minutos em que as informações de autenticação de um dispositivo cliente podem ser confiáveis antes que seja necessário se autenticar novamente com o dispositivo principal. O valor padrão é 1.

exemplo Exemplo: atualização de mesclagem de configurações (usando uma política restritiva)

O exemplo de configuração a seguir especifica a permissão para que os dispositivos cliente cujos nomes começam com MyClientDevice se conectem e publiquem/assinem em todos os tópicos.

{ "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" ] } } } } }
exemplo Exemplo: atualização de mesclagem de configurações (usando uma política permissiva)

O exemplo de configuração a seguir especifica a permissão para que todos os dispositivos cliente se conectem e publiquem/assinem em todos os tópicos.

{ "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

Grupos de dispositivos são grupos de dispositivos cliente que têm permissões para se conectar e se comunicar com um dispositivo principal. Use regras de seleção para identificar grupos de dispositivos cliente e definir políticas de autorização de dispositivos cliente que especifiquem as permissões para cada grupo de dispositivos.

Esse objeto contém as informações a seguir:

formatVersion

A versão do formato desse objeto de configuração.

Escolha uma das seguintes opções:

  • 2021-03-05

definitions

Os grupos de dispositivos desse dispositivo principal. Cada definição especifica uma regra de seleção para avaliar se um dispositivo cliente é membro do grupo. Cada definição também especifica a política de permissões a ser aplicada aos dispositivos cliente que correspondem à regra de seleção. Se um dispositivo cliente for membro de vários grupos de dispositivos, as permissões do dispositivo serão compostas pela política de permissões de cada grupo.

Esse objeto contém as informações a seguir:

groupNameKey

O nome desse grupo de dispositivos. groupNameKeySubstitua por um nome que ajude a identificar esse grupo de dispositivos.

Esse objeto contém as informações a seguir:

selectionRule

A consulta que especifica quais dispositivos cliente são membros desse grupo de dispositivos. Quando um dispositivo cliente se conecta, o dispositivo principal avalia essa regra de seleção para determinar se o dispositivo cliente é membro desse grupo de dispositivos. Se o dispositivo cliente for membro, o dispositivo principal usa a política desse grupo de dispositivos para autorizar as ações do dispositivo cliente.

Cada regra de seleção inclui pelo menos uma cláusula de regra de seleção, que é uma consulta de expressão única que pode corresponder aos dispositivos cliente. As regras de seleção usam a mesma sintaxe de consulta da indexação de AWS IoT frotas. Para obter mais informações sobre a sintaxe da regra de seleção, consulte a sintaxe da consulta de indexação de frotas do AWS IoT no Guia do desenvolvedor do AWS IoT Core .

Use o curinga * para combinar vários dispositivos cliente com uma cláusula de regra de seleção. É possível usar esse curinga no final do nome da coisa para corresponder aos dispositivos cliente cujos nomes começam com uma string especificada por você. Também é possível usar esse curinga para corresponder a todos os dispositivos cliente.

nota

Para selecionar um valor que contenha um caractere de dois pontos (:), faça o escape dos dois pontos com um caractere de barra invertida (\\). Em formatos comoJSON, você deve escapar dos caracteres de barra invertida, então você insere dois caracteres de barra invertida antes do caractere de dois pontos. Por exemplo, especifique thingName: MyTeam\\\\:ClientDevice1 para selecionar uma coisa cujo nome seja MyTeam:ClientDevice1.

É possível especificar o seguinte seletor:

  • thingName: o nome da coisa do AWS IoT de um dispositivo cliente.

exemplo Exemplo de regra de seleção

A regra de seleção a seguir corresponde aos dispositivos cliente cujos nomes são MyClientDevice1 ou MyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
exemplo Exemplo de regra de seleção (usar curingas)

A regra de seleção a seguir corresponde aos dispositivos cliente cujos nomes começam com MyClientDevice.

thingName: MyClientDevice*
exemplo Exemplo de regra de seleção (corresponder a todos os dispositivos)

A regra de seleção a seguir corresponde a todos os dispositivos cliente.

thingName: *
policyName

A política de permissões que se aplica aos dispositivos cliente nesse grupo de dispositivos. Especifique o nome de uma política que você define no objeto policies.

policies

As políticas de autorização do dispositivo cliente para dispositivos cliente que se conectam ao dispositivo principal. Cada política de autorização especifica um conjunto de ações e os recursos nos quais um dispositivo cliente pode realizar essas ações.

Esse objeto contém as informações a seguir:

policyNameKey

O nome dessa política de autorização. policyNameKeySubstitua por um nome que ajude a identificar essa política de autorização. Você usa esse nome de política para definir qual política se aplica a um grupo de dispositivos.

Esse objeto contém as informações a seguir:

statementNameKey

O nome dessa declaração de política. statementNameKeySubstitua por um nome que ajude a identificar essa declaração de política.

Esse objeto contém as informações a seguir:

operations

A lista de operações para permitir os recursos dessa política.

Você pode incluir usando uma destas operações:

  • mqtt:connect: concede permissão para se conectar ao dispositivo principal. Os dispositivos cliente devem ter essa permissão para se conectar a um dispositivo principal.

    Essa operação é compatível com os seguintes recursos:

    • mqtt:clientId:deviceClientId— Restrinja o acesso com base na ID do cliente que um dispositivo cliente usa para se conectar ao MQTT agente do dispositivo principal. deviceClientIdSubstitua pela ID do cliente a ser usada.

  • mqtt:publish— Concede permissão para publicar MQTT mensagens em tópicos.

    Essa operação é compatível com os seguintes recursos:

    • mqtt:topic:mqttTopic— Restrinja o acesso com base no MQTT tópico em que um dispositivo cliente publica uma mensagem. mqttTopicSubstitua pelo tópico a ser usado.

      Esse recurso não oferece suporte a curingas de MQTT tópicos.

  • mqtt:subscribe— Concede permissão para assinar filtros de MQTT tópicos para receber mensagens.

    Essa operação é compatível com os seguintes recursos:

    • mqtt:topicfilter:mqttTopicFilter— Restrinja o acesso com base nos MQTT tópicos em que um dispositivo cliente pode assinar mensagens. mqttTopicFilterSubstitua pelo filtro de tópicos a ser usado.

      Esse recurso oferece suporte aos curingas + e # MQTT tópicos. Para obter mais informações, consulte MQTTos tópicos no Guia do AWS IoT Core desenvolvedor.

      O dispositivo cliente pode assinar os filtros de tópicos exatos que você permitir. Por exemplo, se você permitir que o dispositivo cliente assine o recurso mqtt:topicfilter:client/+/status, o dispositivo cliente poderá assinar client/+/status, mas não client/client1/status.

É possível especificar o curinga * para permitir o acesso a todas as ações.

resources

A lista de recursos para permitir as operações dessa política. Especifique os recursos que correspondem às operações dessa política. Por exemplo, você pode especificar uma lista de recursos de MQTT tópicos (mqtt:topic:mqttTopic) em uma política que especifica a mqtt:publish operação.

É possível especificar o curinga * para permitir o acesso a todos os recursos. Não é possível usar o curinga * para corresponder a identificadores parciais de recursos. Por exemplo, é possível especificar "resources": "*", mas não é possível especificar "resources": "mqtt:clientId:*".

statementDescription

(Opcional) Uma descrição para essa declaração de política.

certificates

(Opcional) As opções de configuração do certificado para esse dispositivo principal. Esse objeto contém as informações a seguir:

serverCertificateValiditySeconds

(Opcional) O tempo (em segundos) após o qual o certificado do MQTT servidor local expira. É possível configurar essa opção para personalizar a frequência com que os dispositivos cliente se desconectam e se reconectam ao dispositivo principal.

Esse componente gira o certificado do MQTT servidor local 24 horas antes de expirar. O MQTT agente, como o componente do MQTT agente Moquette, gera um novo certificado e reinicia. Quando isso acontece, todos os dispositivos cliente conectados a esse dispositivo principal são desconectados. Os dispositivos cliente podem se reconectar ao dispositivo principal após um curto período.

Padrão: 604800 (7 dias)

Valor mínimo: 172800 (2 dias)

Valor máximo: 864000 (10 dias)

performance

(Opcional) As opções de configuração de desempenho desse dispositivo principal. Esse objeto contém as informações a seguir:

maxActiveAuthTokens

(Opcional) O número máximo de tokens de autorização do dispositivo cliente ativos. É possível aumentar esse número para permitir que um número maior de dispositivos cliente se conecte a um único dispositivo principal sem precisar reautenticá-los.

Padrão: 2500

cloudRequestQueueSize

(Opcional) O número máximo de Nuvem AWS solicitações a serem colocadas na fila antes que esse componente rejeite as solicitações.

Padrão: 100

maxConcurrentCloudRequests

(Opcional) O número máximo de solicitações simultâneas a serem enviadas para a Nuvem AWS. É possível aumentar esse número para melhorar o desempenho da autenticação em dispositivos principais nos quais você conecta um grande número de dispositivos cliente.

Padrão: 1

exemplo Exemplo: atualização de mesclagem de configurações (usando uma política restritiva)

O exemplo de configuração a seguir especifica a permissão para que os dispositivos cliente cujos nomes começam com MyClientDevice se conectem e publiquem/assinem em todos os tópicos.

{ "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" ] } } } } }
exemplo Exemplo: atualização de mesclagem de configurações (usando uma política permissiva)

O exemplo de configuração a seguir especifica a permissão para que todos os dispositivos cliente se conectem e publiquem/assinem em todos os tópicos.

{ "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

Grupos de dispositivos são grupos de dispositivos cliente que têm permissões para se conectar e se comunicar com um dispositivo principal. Use regras de seleção para identificar grupos de dispositivos cliente e definir políticas de autorização de dispositivos cliente que especifiquem as permissões para cada grupo de dispositivos.

Esse objeto contém as informações a seguir:

formatVersion

A versão do formato desse objeto de configuração.

Escolha uma das seguintes opções:

  • 2021-03-05

definitions

Os grupos de dispositivos desse dispositivo principal. Cada definição especifica uma regra de seleção para avaliar se um dispositivo cliente é membro do grupo. Cada definição também especifica a política de permissões a ser aplicada aos dispositivos cliente que correspondem à regra de seleção. Se um dispositivo cliente for membro de vários grupos de dispositivos, as permissões do dispositivo serão compostas pela política de permissões de cada grupo.

Esse objeto contém as informações a seguir:

groupNameKey

O nome desse grupo de dispositivos. groupNameKeySubstitua por um nome que ajude a identificar esse grupo de dispositivos.

Esse objeto contém as informações a seguir:

selectionRule

A consulta que especifica quais dispositivos cliente são membros desse grupo de dispositivos. Quando um dispositivo cliente se conecta, o dispositivo principal avalia essa regra de seleção para determinar se o dispositivo cliente é membro desse grupo de dispositivos. Se o dispositivo cliente for membro, o dispositivo principal usa a política desse grupo de dispositivos para autorizar as ações do dispositivo cliente.

Cada regra de seleção inclui pelo menos uma cláusula de regra de seleção, que é uma consulta de expressão única que pode corresponder aos dispositivos cliente. As regras de seleção usam a mesma sintaxe de consulta da indexação de AWS IoT frotas. Para obter mais informações sobre a sintaxe da regra de seleção, consulte a sintaxe da consulta de indexação de frotas do AWS IoT no Guia do desenvolvedor do AWS IoT Core .

Use o curinga * para combinar vários dispositivos cliente com uma cláusula de regra de seleção. É possível usar esse curinga no final do nome da coisa para corresponder aos dispositivos cliente cujos nomes começam com uma string especificada por você. Também é possível usar esse curinga para corresponder a todos os dispositivos cliente.

nota

Para selecionar um valor que contenha um caractere de dois pontos (:), faça o escape dos dois pontos com um caractere de barra invertida (\\). Em formatos comoJSON, você deve escapar dos caracteres de barra invertida, então você insere dois caracteres de barra invertida antes do caractere de dois pontos. Por exemplo, especifique thingName: MyTeam\\\\:ClientDevice1 para selecionar uma coisa cujo nome seja MyTeam:ClientDevice1.

É possível especificar o seguinte seletor:

  • thingName: o nome da coisa do AWS IoT de um dispositivo cliente.

exemplo Exemplo de regra de seleção

A regra de seleção a seguir corresponde aos dispositivos cliente cujos nomes são MyClientDevice1 ou MyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
exemplo Exemplo de regra de seleção (usar curingas)

A regra de seleção a seguir corresponde aos dispositivos cliente cujos nomes começam com MyClientDevice.

thingName: MyClientDevice*
exemplo Exemplo de regra de seleção (corresponder a todos os dispositivos)

A regra de seleção a seguir corresponde a todos os dispositivos cliente.

thingName: *
policyName

A política de permissões que se aplica aos dispositivos cliente nesse grupo de dispositivos. Especifique o nome de uma política que você define no objeto policies.

policies

As políticas de autorização do dispositivo cliente para dispositivos cliente que se conectam ao dispositivo principal. Cada política de autorização especifica um conjunto de ações e os recursos nos quais um dispositivo cliente pode realizar essas ações.

Esse objeto contém as informações a seguir:

policyNameKey

O nome dessa política de autorização. policyNameKeySubstitua por um nome que ajude a identificar essa política de autorização. Você usa esse nome de política para definir qual política se aplica a um grupo de dispositivos.

Esse objeto contém as informações a seguir:

statementNameKey

O nome dessa declaração de política. statementNameKeySubstitua por um nome que ajude a identificar essa declaração de política.

Esse objeto contém as informações a seguir:

operations

A lista de operações para permitir os recursos dessa política.

Você pode incluir usando uma destas operações:

  • mqtt:connect: concede permissão para se conectar ao dispositivo principal. Os dispositivos cliente devem ter essa permissão para se conectar a um dispositivo principal.

    Essa operação é compatível com os seguintes recursos:

    • mqtt:clientId:deviceClientId— Restrinja o acesso com base na ID do cliente que um dispositivo cliente usa para se conectar ao MQTT agente do dispositivo principal. deviceClientIdSubstitua pela ID do cliente a ser usada.

  • mqtt:publish— Concede permissão para publicar MQTT mensagens em tópicos.

    Essa operação é compatível com os seguintes recursos:

    • mqtt:topic:mqttTopic— Restrinja o acesso com base no MQTT tópico em que um dispositivo cliente publica uma mensagem. mqttTopicSubstitua pelo tópico a ser usado.

      Esse recurso não oferece suporte a curingas de MQTT tópicos.

  • mqtt:subscribe— Concede permissão para assinar filtros de MQTT tópicos para receber mensagens.

    Essa operação é compatível com os seguintes recursos:

    • mqtt:topicfilter:mqttTopicFilter— Restrinja o acesso com base nos MQTT tópicos em que um dispositivo cliente pode assinar mensagens. mqttTopicFilterSubstitua pelo filtro de tópicos a ser usado.

      Esse recurso oferece suporte aos curingas + e # MQTT tópicos. Para obter mais informações, consulte MQTTos tópicos no Guia do AWS IoT Core desenvolvedor.

      O dispositivo cliente pode assinar os filtros de tópicos exatos que você permitir. Por exemplo, se você permitir que o dispositivo cliente assine o recurso mqtt:topicfilter:client/+/status, o dispositivo cliente poderá assinar client/+/status, mas não client/client1/status.

É possível especificar o curinga * para permitir o acesso a todas as ações.

resources

A lista de recursos para permitir as operações dessa política. Especifique os recursos que correspondem às operações dessa política. Por exemplo, você pode especificar uma lista de recursos de MQTT tópicos (mqtt:topic:mqttTopic) em uma política que especifica a mqtt:publish operação.

É possível especificar o curinga * para permitir o acesso a todos os recursos. Não é possível usar o curinga * para corresponder a identificadores parciais de recursos. Por exemplo, é possível especificar "resources": "*", mas não é possível especificar "resources": "mqtt:clientId:*".

statementDescription

(Opcional) Uma descrição para essa declaração de política.

certificates

(Opcional) As opções de configuração do certificado para esse dispositivo principal. Esse objeto contém as informações a seguir:

serverCertificateValiditySeconds

(Opcional) O tempo (em segundos) após o qual o certificado do MQTT servidor local expira. É possível configurar essa opção para personalizar a frequência com que os dispositivos cliente se desconectam e se reconectam ao dispositivo principal.

Esse componente gira o certificado do MQTT servidor local 24 horas antes de expirar. O MQTT agente, como o componente do MQTT agente Moquette, gera um novo certificado e reinicia. Quando isso acontece, todos os dispositivos cliente conectados a esse dispositivo principal são desconectados. Os dispositivos cliente podem se reconectar ao dispositivo principal após um curto período.

Padrão: 604800 (7 dias)

Valor mínimo: 172800 (2 dias)

Valor máximo: 864000 (10 dias)

exemplo Exemplo: atualização de mesclagem de configurações (usando uma política restritiva)

O exemplo de configuração a seguir especifica a permissão para que os dispositivos cliente cujos nomes começam com MyClientDevice se conectem e publiquem/assinem em todos os tópicos.

{ "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" ] } } } } }
exemplo Exemplo: atualização de mesclagem de configurações (usando uma política permissiva)

O exemplo de configuração a seguir especifica a permissão para que todos os dispositivos cliente se conectem e publiquem/assinem em todos os tópicos.

{ "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

Grupos de dispositivos são grupos de dispositivos cliente que têm permissões para se conectar e se comunicar com um dispositivo principal. Use regras de seleção para identificar grupos de dispositivos cliente e definir políticas de autorização de dispositivos cliente que especifiquem as permissões para cada grupo de dispositivos.

Esse objeto contém as informações a seguir:

formatVersion

A versão do formato desse objeto de configuração.

Escolha uma das seguintes opções:

  • 2021-03-05

definitions

Os grupos de dispositivos desse dispositivo principal. Cada definição especifica uma regra de seleção para avaliar se um dispositivo cliente é membro do grupo. Cada definição também especifica a política de permissões a ser aplicada aos dispositivos cliente que correspondem à regra de seleção. Se um dispositivo cliente for membro de vários grupos de dispositivos, as permissões do dispositivo serão compostas pela política de permissões de cada grupo.

Esse objeto contém as informações a seguir:

groupNameKey

O nome desse grupo de dispositivos. groupNameKeySubstitua por um nome que ajude a identificar esse grupo de dispositivos.

Esse objeto contém as informações a seguir:

selectionRule

A consulta que especifica quais dispositivos cliente são membros desse grupo de dispositivos. Quando um dispositivo cliente se conecta, o dispositivo principal avalia essa regra de seleção para determinar se o dispositivo cliente é membro desse grupo de dispositivos. Se o dispositivo cliente for membro, o dispositivo principal usa a política desse grupo de dispositivos para autorizar as ações do dispositivo cliente.

Cada regra de seleção inclui pelo menos uma cláusula de regra de seleção, que é uma consulta de expressão única que pode corresponder aos dispositivos cliente. As regras de seleção usam a mesma sintaxe de consulta da indexação de AWS IoT frotas. Para obter mais informações sobre a sintaxe da regra de seleção, consulte a sintaxe da consulta de indexação de frotas do AWS IoT no Guia do desenvolvedor do AWS IoT Core .

Use o curinga * para combinar vários dispositivos cliente com uma cláusula de regra de seleção. É possível usar esse curinga no final do nome da coisa para corresponder aos dispositivos cliente cujos nomes começam com uma string especificada por você. Também é possível usar esse curinga para corresponder a todos os dispositivos cliente.

nota

Para selecionar um valor que contenha um caractere de dois pontos (:), faça o escape dos dois pontos com um caractere de barra invertida (\\). Em formatos comoJSON, você deve escapar dos caracteres de barra invertida, então você insere dois caracteres de barra invertida antes do caractere de dois pontos. Por exemplo, especifique thingName: MyTeam\\\\:ClientDevice1 para selecionar uma coisa cujo nome seja MyTeam:ClientDevice1.

É possível especificar o seguinte seletor:

  • thingName: o nome da coisa do AWS IoT de um dispositivo cliente.

exemplo Exemplo de regra de seleção

A regra de seleção a seguir corresponde aos dispositivos cliente cujos nomes são MyClientDevice1 ou MyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
exemplo Exemplo de regra de seleção (usar curingas)

A regra de seleção a seguir corresponde aos dispositivos cliente cujos nomes começam com MyClientDevice.

thingName: MyClientDevice*
exemplo Exemplo de regra de seleção (corresponder a todos os dispositivos)

A regra de seleção a seguir corresponde a todos os dispositivos cliente.

thingName: *
policyName

A política de permissões que se aplica aos dispositivos cliente nesse grupo de dispositivos. Especifique o nome de uma política que você define no objeto policies.

policies

As políticas de autorização do dispositivo cliente para dispositivos cliente que se conectam ao dispositivo principal. Cada política de autorização especifica um conjunto de ações e os recursos nos quais um dispositivo cliente pode realizar essas ações.

Esse objeto contém as informações a seguir:

policyNameKey

O nome dessa política de autorização. policyNameKeySubstitua por um nome que ajude a identificar essa política de autorização. Você usa esse nome de política para definir qual política se aplica a um grupo de dispositivos.

Esse objeto contém as informações a seguir:

statementNameKey

O nome dessa declaração de política. statementNameKeySubstitua por um nome que ajude a identificar essa declaração de política.

Esse objeto contém as informações a seguir:

operations

A lista de operações para permitir os recursos dessa política.

Você pode incluir usando uma destas operações:

  • mqtt:connect: concede permissão para se conectar ao dispositivo principal. Os dispositivos cliente devem ter essa permissão para se conectar a um dispositivo principal.

    Essa operação é compatível com os seguintes recursos:

    • mqtt:clientId:deviceClientId— Restrinja o acesso com base na ID do cliente que um dispositivo cliente usa para se conectar ao MQTT agente do dispositivo principal. deviceClientIdSubstitua pela ID do cliente a ser usada.

  • mqtt:publish— Concede permissão para publicar MQTT mensagens em tópicos.

    Essa operação é compatível com os seguintes recursos:

    • mqtt:topic:mqttTopic— Restrinja o acesso com base no MQTT tópico em que um dispositivo cliente publica uma mensagem. mqttTopicSubstitua pelo tópico a ser usado.

      Esse recurso não oferece suporte a curingas de MQTT tópicos.

  • mqtt:subscribe— Concede permissão para assinar filtros de MQTT tópicos para receber mensagens.

    Essa operação é compatível com os seguintes recursos:

    • mqtt:topicfilter:mqttTopicFilter— Restrinja o acesso com base nos MQTT tópicos em que um dispositivo cliente pode assinar mensagens. mqttTopicFilterSubstitua pelo filtro de tópicos a ser usado.

      Esse recurso oferece suporte aos curingas + e # MQTT tópicos. Para obter mais informações, consulte MQTTos tópicos no Guia do AWS IoT Core desenvolvedor.

      O dispositivo cliente pode assinar os filtros de tópicos exatos que você permitir. Por exemplo, se você permitir que o dispositivo cliente assine o recurso mqtt:topicfilter:client/+/status, o dispositivo cliente poderá assinar client/+/status, mas não client/client1/status.

É possível especificar o curinga * para permitir o acesso a todas as ações.

resources

A lista de recursos para permitir as operações dessa política. Especifique os recursos que correspondem às operações dessa política. Por exemplo, você pode especificar uma lista de recursos de MQTT tópicos (mqtt:topic:mqttTopic) em uma política que especifica a mqtt:publish operação.

É possível especificar o curinga * para permitir o acesso a todos os recursos. Não é possível usar o curinga * para corresponder a identificadores parciais de recursos. Por exemplo, é possível especificar "resources": "*", mas não é possível especificar "resources": "mqtt:clientId:*".

statementDescription

(Opcional) Uma descrição para essa declaração de política.

exemplo Exemplo: atualização de mesclagem de configurações (usando uma política restritiva)

O exemplo de configuração a seguir especifica a permissão para que os dispositivos cliente cujos nomes começam com MyClientDevice se conectem e publiquem/assinem em todos os tópicos.

{ "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" ] } } } } }
exemplo Exemplo: atualização de mesclagem de configurações (usando uma política permissiva)

O exemplo de configuração a seguir especifica a permissão para que todos os dispositivos cliente se conectem e publiquem/assinem em todos os tópicos.

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

Arquivo de log local

Esse componente usa o mesmo arquivo de log do componente de núcleo do Greengrass.

Linux
/greengrass/v2/logs/greengrass.log
Windows
C:\greengrass\v2\logs\greengrass.log
Para exibir os logs desse componente
  • Execute o comando a seguir no dispositivo principal para visualizar o arquivo de log desse componente em tempo real. Substitua /greengrass/v2 ou C:\greengrass\v2 pelo caminho para a pasta AWS IoT Greengrass raiz.

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

Changelog

A tabela a seguir descreve as alterações em cada versão do componente.

Versão

Alterações

2.5.2

Versão atualizada para a versão 2.14.0 do Greengrass nucleus.

2.5.1

Correções de bugs e melhorias
  • Suporta FIPS endpoint.

2.5.0

Novos recursos
  • Permite a substituição de variáveis ${iot:Connection.Thing.ThingName} por recursos de política.

  • Permite recursos de política com curingas, como mqtt:topic:my*.

2.4.5

Novos recursos

Adiciona suporte para prefixos curinga para selecionar nomes de coisas com o parâmetro selectionRule.

Correções de bugs e melhorias

Corrige um problema em que os certificados não são atualizados com novas informações de conectividade em certos casos.

2.4.4

Versão atualizada para o núcleo do Greengrass 2.12.0.

2.4.3

Versão atualizada para o lançamento da versão 2.11.0 do núcleo do Greengrass.

2.4.2

Novos recursos

Adiciona uma nova opção de configuração startupTimeoutSeconds.

2.4.1

Versão atualizada para o lançamento da versão 2.10.0 do núcleo do Greengrass.

2.4.0

Novos recursos
  • Adiciona suporte à autenticação do dispositivo cliente para emitir métricas operacionais que serão publicadas pelo agente de telemetria.

Correções de bugs e melhorias
  • Corrige um problema em que a autenticação do dispositivo cliente leva mais de 10 segundos para verificar a identidade do dispositivo cliente.

  • Correções secundárias e melhorias adicionais.

2.3.2

Correções de bugs e melhorias
  • Adiciona suporte para armazenar em cache as informações do nome do host para que o componente gere corretamente os assuntos do certificado ao reiniciar enquanto estiver off-line.

2.3.1

Correções de bugs e melhorias
  • Corrige um vazamento de memória.

2.3.0

Atenção

Esta versão não está mais disponível. As melhorias nesta versão estão disponíveis em versões posteriores desse componente.

Novos recursos

  • Adiciona suporte para autenticação off-line de dispositivos cliente para que eles possam continuar se conectando ao dispositivo principal quando ele não estiver conectado à Internet.

  • Adiciona suporte à autoridade de certificação fornecida pelo cliente que o dispositivo principal usa como certificado raiz para gerar certificados de MQTT intermediário.

2.2.3

Versão atualizada para o lançamento da versão 2.8.0 do núcleo do Greengrass.

2.2.2

Correções de bugs e melhorias
  • Corrige um problema em que o certificado do MQTT servidor local gira com mais frequência do que o pretendido em determinados cenários.

2.2.1

Versão atualizada para o lançamento da versão 2.7.0 do núcleo do Greengrass.

2.2.0

Novos recursos
  • Adiciona suporte a componentes personalizados para chamar operações de comunicação entre processos (IPC) para autenticar e autorizar dispositivos clientes. Você pode usar essas operações em um componente de MQTT corretor personalizado, por exemplo. Para obter mais informações, consulte IPC: Autenticar e autorizar dispositivos cliente.

  • Adiciona as opções maxActiveAuthTokens, cloudQueueSize e threadPoolSize que podem ser configuradas para ajustar o desempenho desse componente.

2.1.0

Novos recursos
  • Adiciona a serverCertificateValiditySeconds opção que você pode configurar para personalizar quando o certificado do servidor MQTT broker expirar. É possível configurar o certificado do servidor para expirar após 2 a 10 dias.

Correções de bugs e melhorias
  • Corrige problemas com a forma como esse componente lida com as atualizações de redefinição de configuração.

  • Corrige um problema em que o certificado do MQTT servidor local gira com mais frequência do que o pretendido em determinados cenários.

    Para aplicar essa correção, você também deve usar a versão 2.1.0 ou posterior do componente corretor Moquette MQTT.

  • Melhora as mensagens que esse componente registra em log ao alternar certificados.

  • Versão atualizada para o lançamento da versão 2.6.0 do núcleo do Greengrass.

2.0.4

Versão atualizada para o lançamento da versão 2.5.0 do núcleo do Greengrass.

2.0.3

Correções de bugs e melhorias
  • As credenciais agora são atualizadas se você alternar a chave privada do dispositivo principal.

  • Atualizações para tornar as mensagens de log mais claras.

2.0.2

Versão atualizada para o lançamento da versão 2.4.0 do núcleo do Greengrass.

2.0.1

Versão atualizada para o lançamento da versão 2.3.0 do núcleo do Greengrass.

2.0.0

Versão inicial.