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 do 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 Interaja com dispositivos 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 autenticação do dispositivo cliente versão 2.3.1 ou posterior.

Esse componente tem as seguintes versões:

  • 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 reinicia 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 os registros.

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

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 AWS IoTPolítica mínima 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:ListClientDevicesAssociatedWithCoreDevicepara permitir que o dispositivo principal liste clientes para autenticação offline.

  • 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 deve ser capaz de realizar solicitações de saída para os seguintes endpoints e portas, 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 você deve atender aos requisitos do componente e de todas as suas dependências para implantá-lo com êxito. Esta seção lista 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. Você também pode visualizar as dependências de cada versão do componente no AWS IoT Greengrass console. Na página de detalhes do componente, procure a lista de dependências.

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 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 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo 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 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo 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 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo 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 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo 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 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo 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 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo 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 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo 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 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo 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 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo 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 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo 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 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo 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 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo 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 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo 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 desse componente.

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

Para obter mais informações sobre dependências de componentes, consulte a referência da receita do componente.

Configuração

Esse componente fornece os seguintes parâmetros de configuração que você pode personalizar 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 inscrição existente do cliente for revogada, o cliente não poderá mais se inscrever em um tópico. No entanto, ele continuará recebendo mensagens de qualquer tópico inscrito 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. Você pode 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 intermediário e implantá-lo novamente mais tarde.

v2.5.0
deviceGroups

Grupos de dispositivos são grupos de dispositivos clientes 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 clientes e definir políticas de autorização de dispositivos clientes que especifiquem as permissões para cada grupo de dispositivos.

Esse objeto contém as seguintes informações:

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 correspondam à 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 seguintes informações:

groupNameKey

O nome desse grupo de dispositivos. Substituir groupNameKey com um nome que ajuda a identificar esse grupo de dispositivos.

Esse objeto contém as seguintes informações:

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 compreende pelo menos uma cláusula de regra de seleção, que é uma consulta de expressão única que pode corresponder aos dispositivos do 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 AWS IoT frotas no Guia do AWS IoT Core desenvolvedor.

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

nota

Para selecionar um valor que contenha um caractere de dois pontos (:), 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 sejaMyTeam:ClientDevice1.

Você pode 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 clientes cujos nomes são MyClientDevice1 ouMyClientDevice2.

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

A regra de seleção a seguir corresponde aos dispositivos clientes cujos nomes começam comMyClientDevice.

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

A regra de seleção a seguir corresponde aos dispositivos clientes cujos nomes terminam comMyClientDevice.

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

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

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 policies objeto.

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 seguintes informações:

policyNameKey

O nome dessa política de autorização. Substituir policyNameKey com um nome que o 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 seguintes informações:

statementNameKey

O nome dessa declaração de política. Substituir statementNameKey com um nome que o ajude a identificar essa declaração de política.

Esse objeto contém as seguintes informações:

operations

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

Você pode incluir qualquer uma das seguintes 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 oferece suporte aos 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. Substituir deviceClientId com o ID do cliente a ser usado.

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

    Essa operação oferece suporte aos seguintes recursos:

    • mqtt:topic:mqttTopic— Restrinja o acesso com base no MQTT tópico em que um dispositivo cliente publica uma mensagem. Substituir mqttTopic com o 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 oferece suporte aos seguintes recursos:

    • mqtt:topicfilter:mqttTopicFilter— Restrinja o acesso com base nos MQTT tópicos em que um dispositivo cliente pode assinar mensagens. Substituir mqttTopicFilter com o 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ê permite. Por exemplo, se você permitir que o dispositivo cliente assine o mqtt:topicfilter:client/+/status recurso, o dispositivo cliente poderá se inscrever, client/+/status mas nãoclient/client1/status.

Você pode especificar o * curinga para permitir o acesso a todas as ações.

resources

A lista de recursos para permitir as operações desta 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.

Você pode especificar o * caractere curinga em qualquer lugar dentro da variável de recurso para permitir o acesso a todos os recursos. Por exemplo, você pode especificar mqtt:topic:my* para permitir o acesso aos recursos que correspondam a essa entrada.

A seguinte variável de recurso é suportada:

  • 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 desta declaração de política.

certificates

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

serverCertificateValiditySeconds

(Opcional) O tempo (em segundos) após o qual o certificado do MQTT servidor local expira. Você pode 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 clientes conectados a esse dispositivo principal são desconectados. Os dispositivos cliente podem se reconectar ao dispositivo principal após um curto período de tempo.

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 seguintes informações:

maxActiveAuthTokens

(Opcional) O número máximo de tokens ativos de autorização do dispositivo cliente. Você pode aumentar esse número para permitir que um número maior de dispositivos clientes 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 o. Nuvem AWS Você pode aumentar esse número para melhorar o desempenho da autenticação em dispositivos principais nos quais você conecta um grande número de dispositivos clientes.

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 sua 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 CA intermediária e, em seguida, ajuste os certificateChainUri campos certificateUri e para apontar para a CA intermediária correta.

Esse objeto contém as seguintes informações.

certificateUri

A localização 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

A localização da cadeia de certificados da CA do dispositivo principal. Essa deve ser a cadeia completa de certificados de volta à sua 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

A localização 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 para esse dispositivo principal. Esse objeto contém as seguintes informações.

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 para esse 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 seguintes informações:

disableMetrics

Se o disableMetrics campo for definido comotrue, 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 para permitir que dispositivos clientes cujos nomes comecem com MyClientDevice se conectem e publiquem ou se inscrevam 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 para permitir que todos os dispositivos cliente se conectem e publiquem ou se inscrevam 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ção (usando uma política de nome de coisa)

O exemplo de configuração a seguir permite que dispositivos cliente publiquem tópicos que começam com o nome do item do dispositivo cliente e terminam com a stringtopic.

{ "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 clientes 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 clientes e definir políticas de autorização de dispositivos clientes que especifiquem as permissões para cada grupo de dispositivos.

Esse objeto contém as seguintes informações:

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 correspondam à 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 seguintes informações:

groupNameKey

O nome desse grupo de dispositivos. Substituir groupNameKey com um nome que ajuda a identificar esse grupo de dispositivos.

Esse objeto contém as seguintes informações:

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 compreende pelo menos uma cláusula de regra de seleção, que é uma consulta de expressão única que pode corresponder aos dispositivos do 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 AWS IoT frotas no Guia do AWS IoT Core desenvolvedor.

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

nota

Para selecionar um valor que contenha um caractere de dois pontos (:), 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 sejaMyTeam:ClientDevice1.

Você pode 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 clientes cujos nomes são MyClientDevice1 ouMyClientDevice2.

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

A regra de seleção a seguir corresponde aos dispositivos clientes cujos nomes começam comMyClientDevice.

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

A regra de seleção a seguir corresponde aos dispositivos clientes cujos nomes terminam comMyClientDevice.

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

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

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 policies objeto.

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 seguintes informações:

policyNameKey

O nome dessa política de autorização. Substituir policyNameKey com um nome que o 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 seguintes informações:

statementNameKey

O nome dessa declaração de política. Substituir statementNameKey com um nome que o ajude a identificar essa declaração de política.

Esse objeto contém as seguintes informações:

operations

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

Você pode incluir qualquer uma das seguintes 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 oferece suporte aos 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. Substituir deviceClientId com o ID do cliente a ser usado.

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

    Essa operação oferece suporte aos seguintes recursos:

    • mqtt:topic:mqttTopic— Restrinja o acesso com base no MQTT tópico em que um dispositivo cliente publica uma mensagem. Substituir mqttTopic com o 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 oferece suporte aos seguintes recursos:

    • mqtt:topicfilter:mqttTopicFilter— Restrinja o acesso com base nos MQTT tópicos em que um dispositivo cliente pode assinar mensagens. Substituir mqttTopicFilter com o 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ê permite. Por exemplo, se você permitir que o dispositivo cliente assine o mqtt:topicfilter:client/+/status recurso, o dispositivo cliente poderá se inscrever, client/+/status mas nãoclient/client1/status.

Você pode especificar o * curinga para permitir o acesso a todas as ações.

resources

A lista de recursos para permitir as operações desta 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.

Você pode especificar o * curinga para permitir o acesso a todos os recursos. Você não pode usar o * caractere curinga para corresponder a identificadores parciais de recursos. Por exemplo, você pode especificar"resources": "*", mas não pode especificar"resources": "mqtt:clientId:*".

statementDescription

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

certificates

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

serverCertificateValiditySeconds

(Opcional) O tempo (em segundos) após o qual o certificado do MQTT servidor local expira. Você pode 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 clientes conectados a esse dispositivo principal são desconectados. Os dispositivos cliente podem se reconectar ao dispositivo principal após um curto período de tempo.

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 seguintes informações:

maxActiveAuthTokens

(Opcional) O número máximo de tokens ativos de autorização do dispositivo cliente. Você pode aumentar esse número para permitir que um número maior de dispositivos clientes 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 o. Nuvem AWS Você pode aumentar esse número para melhorar o desempenho da autenticação em dispositivos principais nos quais você conecta um grande número de dispositivos clientes.

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 sua 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 CA intermediária e, em seguida, ajuste os certificateChainUri campos certificateUri e para apontar para a CA intermediária correta.

Esse objeto contém as seguintes informações.

certificateUri

A localização 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

A localização da cadeia de certificados da CA do dispositivo principal. Essa deve ser a cadeia completa de certificados de volta à sua 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

A localização 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 para esse dispositivo principal. Esse objeto contém as seguintes informações.

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 para esse 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 seguintes informações:

disableMetrics

Se o disableMetrics campo for definido comotrue, 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 para permitir que dispositivos clientes cujos nomes comecem com MyClientDevice se conectem e publiquem ou se inscrevam 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 para permitir que todos os dispositivos cliente se conectem e publiquem ou se inscrevam 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 clientes 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 clientes e definir políticas de autorização de dispositivos clientes que especifiquem as permissões para cada grupo de dispositivos.

Esse objeto contém as seguintes informações:

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 correspondam à 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 seguintes informações:

groupNameKey

O nome desse grupo de dispositivos. Substituir groupNameKey com um nome que ajuda a identificar esse grupo de dispositivos.

Esse objeto contém as seguintes informações:

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 compreende pelo menos uma cláusula de regra de seleção, que é uma consulta de expressão única que pode corresponder aos dispositivos do 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 AWS IoT frotas no Guia do AWS IoT Core desenvolvedor.

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

nota

Para selecionar um valor que contenha um caractere de dois pontos (:), 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 sejaMyTeam:ClientDevice1.

Você pode 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 clientes cujos nomes são MyClientDevice1 ouMyClientDevice2.

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

A regra de seleção a seguir corresponde aos dispositivos clientes cujos nomes começam comMyClientDevice.

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

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

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 policies objeto.

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 seguintes informações:

policyNameKey

O nome dessa política de autorização. Substituir policyNameKey com um nome que o 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 seguintes informações:

statementNameKey

O nome dessa declaração de política. Substituir statementNameKey com um nome que o ajude a identificar essa declaração de política.

Esse objeto contém as seguintes informações:

operations

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

Você pode incluir qualquer uma das seguintes 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 oferece suporte aos 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. Substituir deviceClientId com o ID do cliente a ser usado.

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

    Essa operação oferece suporte aos seguintes recursos:

    • mqtt:topic:mqttTopic— Restrinja o acesso com base no MQTT tópico em que um dispositivo cliente publica uma mensagem. Substituir mqttTopic com o 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 oferece suporte aos seguintes recursos:

    • mqtt:topicfilter:mqttTopicFilter— Restrinja o acesso com base nos MQTT tópicos em que um dispositivo cliente pode assinar mensagens. Substituir mqttTopicFilter com o 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ê permite. Por exemplo, se você permitir que o dispositivo cliente assine o mqtt:topicfilter:client/+/status recurso, o dispositivo cliente poderá se inscrever, client/+/status mas nãoclient/client1/status.

Você pode especificar o * curinga para permitir o acesso a todas as ações.

resources

A lista de recursos para permitir as operações desta 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.

Você pode especificar o * curinga para permitir o acesso a todos os recursos. Você não pode usar o * caractere curinga para corresponder a identificadores parciais de recursos. Por exemplo, você pode especificar"resources": "*", mas não pode especificar"resources": "mqtt:clientId:*".

statementDescription

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

certificates

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

serverCertificateValiditySeconds

(Opcional) O tempo (em segundos) após o qual o certificado do MQTT servidor local expira. Você pode 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 clientes conectados a esse dispositivo principal são desconectados. Os dispositivos cliente podem se reconectar ao dispositivo principal após um curto período de tempo.

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 seguintes informações:

maxActiveAuthTokens

(Opcional) O número máximo de tokens ativos de autorização do dispositivo cliente. Você pode aumentar esse número para permitir que um número maior de dispositivos clientes 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 o. Nuvem AWS Você pode aumentar esse número para melhorar o desempenho da autenticação em dispositivos principais nos quais você conecta um grande número de dispositivos clientes.

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 sua 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 CA intermediária e, em seguida, ajuste os certificateChainUri campos certificateUri e para apontar para a CA intermediária correta.

Esse objeto contém as seguintes informações.

certificateUri

A localização 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

A localização da cadeia de certificados da CA do dispositivo principal. Essa deve ser a cadeia completa de certificados de volta à sua 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

A localização 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 para esse dispositivo principal. Esse objeto contém as seguintes informações.

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 para esse 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 seguintes informações:

disableMetrics

Se o disableMetrics campo for definido comotrue, 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 para permitir que dispositivos clientes cujos nomes comecem com MyClientDevice se conectem e publiquem ou se inscrevam 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 para permitir que todos os dispositivos cliente se conectem e publiquem ou se inscrevam 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 clientes 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 clientes e definir políticas de autorização de dispositivos clientes que especifiquem as permissões para cada grupo de dispositivos.

Esse objeto contém as seguintes informações:

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 correspondam à 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 seguintes informações:

groupNameKey

O nome desse grupo de dispositivos. Substituir groupNameKey com um nome que ajuda a identificar esse grupo de dispositivos.

Esse objeto contém as seguintes informações:

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 compreende pelo menos uma cláusula de regra de seleção, que é uma consulta de expressão única que pode corresponder aos dispositivos do 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 AWS IoT frotas no Guia do AWS IoT Core desenvolvedor.

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

nota

Para selecionar um valor que contenha um caractere de dois pontos (:), 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 sejaMyTeam:ClientDevice1.

Você pode 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 clientes cujos nomes são MyClientDevice1 ouMyClientDevice2.

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

A regra de seleção a seguir corresponde aos dispositivos clientes cujos nomes começam comMyClientDevice.

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

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

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 policies objeto.

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 seguintes informações:

policyNameKey

O nome dessa política de autorização. Substituir policyNameKey com um nome que o 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 seguintes informações:

statementNameKey

O nome dessa declaração de política. Substituir statementNameKey com um nome que o ajude a identificar essa declaração de política.

Esse objeto contém as seguintes informações:

operations

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

Você pode incluir qualquer uma das seguintes 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 oferece suporte aos 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. Substituir deviceClientId com o ID do cliente a ser usado.

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

    Essa operação oferece suporte aos seguintes recursos:

    • mqtt:topic:mqttTopic— Restrinja o acesso com base no MQTT tópico em que um dispositivo cliente publica uma mensagem. Substituir mqttTopic com o 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 oferece suporte aos seguintes recursos:

    • mqtt:topicfilter:mqttTopicFilter— Restrinja o acesso com base nos MQTT tópicos em que um dispositivo cliente pode assinar mensagens. Substituir mqttTopicFilter com o 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ê permite. Por exemplo, se você permitir que o dispositivo cliente assine o mqtt:topicfilter:client/+/status recurso, o dispositivo cliente poderá se inscrever, client/+/status mas nãoclient/client1/status.

Você pode especificar o * curinga para permitir o acesso a todas as ações.

resources

A lista de recursos para permitir as operações desta 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.

Você pode especificar o * curinga para permitir o acesso a todos os recursos. Você não pode usar o * caractere curinga para corresponder a identificadores parciais de recursos. Por exemplo, você pode especificar"resources": "*", mas não pode especificar"resources": "mqtt:clientId:*".

statementDescription

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

certificates

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

serverCertificateValiditySeconds

(Opcional) O tempo (em segundos) após o qual o certificado do MQTT servidor local expira. Você pode 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 clientes conectados a esse dispositivo principal são desconectados. Os dispositivos cliente podem se reconectar ao dispositivo principal após um curto período de tempo.

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 seguintes informações:

maxActiveAuthTokens

(Opcional) O número máximo de tokens ativos de autorização do dispositivo cliente. Você pode aumentar esse número para permitir que um número maior de dispositivos clientes 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 o. Nuvem AWS Você pode aumentar esse número para melhorar o desempenho da autenticação em dispositivos principais nos quais você conecta um grande número de dispositivos clientes.

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 sua própria autoridade de certificação intermediária. Esse objeto contém as seguintes informações.

Esse objeto contém as seguintes informações:

certificateUri

A localização 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

A localização da cadeia de certificados da CA do dispositivo principal. Essa deve ser a cadeia completa de certificados de volta à sua 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

A localização 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 para esse dispositivo principal. Esse objeto contém as seguintes informações.

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 para esse 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 seguintes informações:

disableMetrics

Se o disableMetrics campo for definido comotrue, 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 para permitir que dispositivos clientes cujos nomes comecem com MyClientDevice se conectem e publiquem ou se inscrevam 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 para permitir que todos os dispositivos cliente se conectem e publiquem ou se inscrevam 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 clientes 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 clientes e definir políticas de autorização de dispositivos clientes que especifiquem as permissões para cada grupo de dispositivos.

Esse objeto contém as seguintes informações:

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 correspondam à 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 seguintes informações:

groupNameKey

O nome desse grupo de dispositivos. Substituir groupNameKey com um nome que ajuda a identificar esse grupo de dispositivos.

Esse objeto contém as seguintes informações:

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 compreende pelo menos uma cláusula de regra de seleção, que é uma consulta de expressão única que pode corresponder aos dispositivos do 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 AWS IoT frotas no Guia do AWS IoT Core desenvolvedor.

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

nota

Para selecionar um valor que contenha um caractere de dois pontos (:), 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 sejaMyTeam:ClientDevice1.

Você pode 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 clientes cujos nomes são MyClientDevice1 ouMyClientDevice2.

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

A regra de seleção a seguir corresponde aos dispositivos clientes cujos nomes começam comMyClientDevice.

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

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

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 policies objeto.

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 seguintes informações:

policyNameKey

O nome dessa política de autorização. Substituir policyNameKey com um nome que o 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 seguintes informações:

statementNameKey

O nome dessa declaração de política. Substituir statementNameKey com um nome que o ajude a identificar essa declaração de política.

Esse objeto contém as seguintes informações:

operations

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

Você pode incluir qualquer uma das seguintes 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 oferece suporte aos 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. Substituir deviceClientId com o ID do cliente a ser usado.

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

    Essa operação oferece suporte aos seguintes recursos:

    • mqtt:topic:mqttTopic— Restrinja o acesso com base no MQTT tópico em que um dispositivo cliente publica uma mensagem. Substituir mqttTopic com o 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 oferece suporte aos seguintes recursos:

    • mqtt:topicfilter:mqttTopicFilter— Restrinja o acesso com base nos MQTT tópicos em que um dispositivo cliente pode assinar mensagens. Substituir mqttTopicFilter com o 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ê permite. Por exemplo, se você permitir que o dispositivo cliente assine o mqtt:topicfilter:client/+/status recurso, o dispositivo cliente poderá se inscrever, client/+/status mas nãoclient/client1/status.

Você pode especificar o * curinga para permitir o acesso a todas as ações.

resources

A lista de recursos para permitir as operações desta 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.

Você pode especificar o * curinga para permitir o acesso a todos os recursos. Você não pode usar o * caractere curinga para corresponder a identificadores parciais de recursos. Por exemplo, você pode especificar"resources": "*", mas não pode especificar"resources": "mqtt:clientId:*".

statementDescription

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

certificates

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

serverCertificateValiditySeconds

(Opcional) O tempo (em segundos) após o qual o certificado do MQTT servidor local expira. Você pode 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 clientes conectados a esse dispositivo principal são desconectados. Os dispositivos cliente podem se reconectar ao dispositivo principal após um curto período de tempo.

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 seguintes informações:

maxActiveAuthTokens

(Opcional) O número máximo de tokens ativos de autorização do dispositivo cliente. Você pode aumentar esse número para permitir que um número maior de dispositivos clientes 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 o. Nuvem AWS Você pode aumentar esse número para melhorar o desempenho da autenticação em dispositivos principais nos quais você conecta um grande número de dispositivos clientes.

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 sua própria autoridade de certificação intermediária. Esse objeto contém as seguintes informações.

certificateUri

A localização 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

A localização da cadeia de certificados da CA do dispositivo principal. Essa deve ser a cadeia completa de certificados de volta à sua 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

A localização 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 para esse dispositivo principal. Esse objeto contém as seguintes informações.

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 para permitir que dispositivos clientes cujos nomes comecem com MyClientDevice se conectem e publiquem ou se inscrevam 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 para permitir que todos os dispositivos cliente se conectem e publiquem ou se inscrevam 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 clientes 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 clientes e definir políticas de autorização de dispositivos clientes que especifiquem as permissões para cada grupo de dispositivos.

Esse objeto contém as seguintes informações:

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 correspondam à 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 seguintes informações:

groupNameKey

O nome desse grupo de dispositivos. Substituir groupNameKey com um nome que ajuda a identificar esse grupo de dispositivos.

Esse objeto contém as seguintes informações:

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 compreende pelo menos uma cláusula de regra de seleção, que é uma consulta de expressão única que pode corresponder aos dispositivos do 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 AWS IoT frotas no Guia do AWS IoT Core desenvolvedor.

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

nota

Para selecionar um valor que contenha um caractere de dois pontos (:), 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 sejaMyTeam:ClientDevice1.

Você pode 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 clientes cujos nomes são MyClientDevice1 ouMyClientDevice2.

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

A regra de seleção a seguir corresponde aos dispositivos clientes cujos nomes começam comMyClientDevice.

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

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

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 policies objeto.

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 seguintes informações:

policyNameKey

O nome dessa política de autorização. Substituir policyNameKey com um nome que o 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 seguintes informações:

statementNameKey

O nome dessa declaração de política. Substituir statementNameKey com um nome que o ajude a identificar essa declaração de política.

Esse objeto contém as seguintes informações:

operations

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

Você pode incluir qualquer uma das seguintes 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 oferece suporte aos 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. Substituir deviceClientId com o ID do cliente a ser usado.

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

    Essa operação oferece suporte aos seguintes recursos:

    • mqtt:topic:mqttTopic— Restrinja o acesso com base no MQTT tópico em que um dispositivo cliente publica uma mensagem. Substituir mqttTopic com o 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 oferece suporte aos seguintes recursos:

    • mqtt:topicfilter:mqttTopicFilter— Restrinja o acesso com base nos MQTT tópicos em que um dispositivo cliente pode assinar mensagens. Substituir mqttTopicFilter com o 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ê permite. Por exemplo, se você permitir que o dispositivo cliente assine o mqtt:topicfilter:client/+/status recurso, o dispositivo cliente poderá se inscrever, client/+/status mas nãoclient/client1/status.

Você pode especificar o * curinga para permitir o acesso a todas as ações.

resources

A lista de recursos para permitir as operações desta 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.

Você pode especificar o * curinga para permitir o acesso a todos os recursos. Você não pode usar o * caractere curinga para corresponder a identificadores parciais de recursos. Por exemplo, você pode especificar"resources": "*", mas não pode especificar"resources": "mqtt:clientId:*".

statementDescription

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

certificates

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

serverCertificateValiditySeconds

(Opcional) O tempo (em segundos) após o qual o certificado do MQTT servidor local expira. Você pode 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 clientes conectados a esse dispositivo principal são desconectados. Os dispositivos cliente podem se reconectar ao dispositivo principal após um curto período de tempo.

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 seguintes informações:

maxActiveAuthTokens

(Opcional) O número máximo de tokens ativos de autorização do dispositivo cliente. Você pode aumentar esse número para permitir que um número maior de dispositivos clientes 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 o. Nuvem AWS Você pode aumentar esse número para melhorar o desempenho da autenticação em dispositivos principais nos quais você conecta um grande número de dispositivos clientes.

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 para permitir que dispositivos clientes cujos nomes comecem com MyClientDevice se conectem e publiquem ou se inscrevam 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 para permitir que todos os dispositivos cliente se conectem e publiquem ou se inscrevam 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 clientes 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 clientes e definir políticas de autorização de dispositivos clientes que especifiquem as permissões para cada grupo de dispositivos.

Esse objeto contém as seguintes informações:

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 correspondam à 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 seguintes informações:

groupNameKey

O nome desse grupo de dispositivos. Substituir groupNameKey com um nome que ajuda a identificar esse grupo de dispositivos.

Esse objeto contém as seguintes informações:

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 compreende pelo menos uma cláusula de regra de seleção, que é uma consulta de expressão única que pode corresponder aos dispositivos do 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 AWS IoT frotas no Guia do AWS IoT Core desenvolvedor.

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

nota

Para selecionar um valor que contenha um caractere de dois pontos (:), 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 sejaMyTeam:ClientDevice1.

Você pode 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 clientes cujos nomes são MyClientDevice1 ouMyClientDevice2.

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

A regra de seleção a seguir corresponde aos dispositivos clientes cujos nomes começam comMyClientDevice.

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

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

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 policies objeto.

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 seguintes informações:

policyNameKey

O nome dessa política de autorização. Substituir policyNameKey com um nome que o 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 seguintes informações:

statementNameKey

O nome dessa declaração de política. Substituir statementNameKey com um nome que o ajude a identificar essa declaração de política.

Esse objeto contém as seguintes informações:

operations

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

Você pode incluir qualquer uma das seguintes 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 oferece suporte aos 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. Substituir deviceClientId com o ID do cliente a ser usado.

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

    Essa operação oferece suporte aos seguintes recursos:

    • mqtt:topic:mqttTopic— Restrinja o acesso com base no MQTT tópico em que um dispositivo cliente publica uma mensagem. Substituir mqttTopic com o 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 oferece suporte aos seguintes recursos:

    • mqtt:topicfilter:mqttTopicFilter— Restrinja o acesso com base nos MQTT tópicos em que um dispositivo cliente pode assinar mensagens. Substituir mqttTopicFilter com o 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ê permite. Por exemplo, se você permitir que o dispositivo cliente assine o mqtt:topicfilter:client/+/status recurso, o dispositivo cliente poderá se inscrever, client/+/status mas nãoclient/client1/status.

Você pode especificar o * curinga para permitir o acesso a todas as ações.

resources

A lista de recursos para permitir as operações desta 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.

Você pode especificar o * curinga para permitir o acesso a todos os recursos. Você não pode usar o * caractere curinga para corresponder a identificadores parciais de recursos. Por exemplo, você pode especificar"resources": "*", mas não pode especificar"resources": "mqtt:clientId:*".

statementDescription

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

certificates

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

serverCertificateValiditySeconds

(Opcional) O tempo (em segundos) após o qual o certificado do MQTT servidor local expira. Você pode 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 clientes conectados a esse dispositivo principal são desconectados. Os dispositivos cliente podem se reconectar ao dispositivo principal após um curto período de tempo.

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 para permitir que dispositivos clientes cujos nomes comecem com MyClientDevice se conectem e publiquem ou se inscrevam 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 para permitir que todos os dispositivos cliente se conectem e publiquem ou se inscrevam 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 clientes 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 clientes e definir políticas de autorização de dispositivos clientes que especifiquem as permissões para cada grupo de dispositivos.

Esse objeto contém as seguintes informações:

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 correspondam à 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 seguintes informações:

groupNameKey

O nome desse grupo de dispositivos. Substituir groupNameKey com um nome que ajuda a identificar esse grupo de dispositivos.

Esse objeto contém as seguintes informações:

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 compreende pelo menos uma cláusula de regra de seleção, que é uma consulta de expressão única que pode corresponder aos dispositivos do 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 AWS IoT frotas no Guia do AWS IoT Core desenvolvedor.

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

nota

Para selecionar um valor que contenha um caractere de dois pontos (:), 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 sejaMyTeam:ClientDevice1.

Você pode 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 clientes cujos nomes são MyClientDevice1 ouMyClientDevice2.

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

A regra de seleção a seguir corresponde aos dispositivos clientes cujos nomes começam comMyClientDevice.

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

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

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 policies objeto.

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 seguintes informações:

policyNameKey

O nome dessa política de autorização. Substituir policyNameKey com um nome que o 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 seguintes informações:

statementNameKey

O nome dessa declaração de política. Substituir statementNameKey com um nome que o ajude a identificar essa declaração de política.

Esse objeto contém as seguintes informações:

operations

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

Você pode incluir qualquer uma das seguintes 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 oferece suporte aos 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. Substituir deviceClientId com o ID do cliente a ser usado.

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

    Essa operação oferece suporte aos seguintes recursos:

    • mqtt:topic:mqttTopic— Restrinja o acesso com base no MQTT tópico em que um dispositivo cliente publica uma mensagem. Substituir mqttTopic com o 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 oferece suporte aos seguintes recursos:

    • mqtt:topicfilter:mqttTopicFilter— Restrinja o acesso com base nos MQTT tópicos em que um dispositivo cliente pode assinar mensagens. Substituir mqttTopicFilter com o 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ê permite. Por exemplo, se você permitir que o dispositivo cliente assine o mqtt:topicfilter:client/+/status recurso, o dispositivo cliente poderá se inscrever, client/+/status mas nãoclient/client1/status.

Você pode especificar o * curinga para permitir o acesso a todas as ações.

resources

A lista de recursos para permitir as operações desta 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.

Você pode especificar o * curinga para permitir o acesso a todos os recursos. Você não pode usar o * caractere curinga para corresponder a identificadores parciais de recursos. Por exemplo, você pode especificar"resources": "*", mas não pode especificar"resources": "mqtt:clientId:*".

statementDescription

(Opcional) Uma descrição desta 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 para permitir que dispositivos clientes cujos nomes comecem com MyClientDevice se conectem e publiquem ou se inscrevam 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 para permitir que todos os dispositivos cliente se conectem e publiquem ou se inscrevam 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 do núcleo do Greengrass.

Linux
/greengrass/v2/logs/greengrass.log
Windows
C:\greengrass\v2\logs\greengrass.log
Para ver os registros desse componente
  • Execute o comando a seguir no dispositivo principal para visualizar o arquivo de log desse componente em tempo real. Substituir /greengrass/v2 ou C:\greengrass\v2 com o 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.

Version (Versão)

Alterações

2.5.1

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

2.5.0

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

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

2.4.5

Novos atributos

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

Correções de erros 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 a versão 2.12.0 do Greengrass nucleus.

2.4.3

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

2.4.2

Novos atributos

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

2.4.1

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

2.4.0

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

Correções de erros 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.

  • Pequenas correções e melhorias adicionais.

2.3.2

Correções de erros 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 quando reiniciado quando estiver off-line.

2.3.1

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

2.3.0

Atenção

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

Novos atributos

  • Adiciona suporte para autenticação offline de dispositivos cliente para que eles possam continuar se conectando ao dispositivo principal quando o dispositivo principal 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 a versão 2.8.0 do Greengrass nucleus.

2.2.2

Correções de erros 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 a versão 2.7.0 do Greengrass nucleus.

2.2.0

Novos atributos
  • 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 threadPoolSize opções maxActiveAuthTokenscloudQueueSize, e que você pode configurar para ajustar o desempenho desse componente.

2.1.0

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

Correções de erros 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 ao alternar certificados.

  • Versão atualizada para a versão 2.6.0 do Greengrass nucleus.

2.0.4

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

2.0.3

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

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

2.0.2

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

2.0.1

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

2.0.0

Versão inicial.