Autorização e autenticação do dispositivo para o AWS IoT Greengrass - 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á.

Autorização e autenticação do dispositivo para o AWS IoT Greengrass

Os dispositivos em ambientes AWS IoT Greengrass usam certificados X.509 para autenticação e políticas de AWS IoT para autorização. Certificados e políticas permitem que os dispositivos se conectem com segurança entre si, AWS IoT Core, e AWS IoT Greengrass.

Os certificados X.509 são certificados digitais que usam a infraestrutura de chave pública X.509 padrão para associar uma chave pública a uma identidade contida em um certificado. Os certificados X.509 são emitidos por uma entidade confiável chamada de autoridade de certificação (CA). A CA mantém um ou mais certificados especiais chamados certificados CA que são usados para emitir certificados X.509. Somente a autoridade de certificação tem acesso aos certificados CA.

Políticas AWS IoT definem o conjunto de operações permitidas para dispositivos de AWS IoT. Especificamente, elas permitem e negam acesso às operações de plano de dados do AWS IoT Core e AWS IoT Greengrass, como a publicação de mensagens MQTT e recuperação de sombras de dispositivo.

Todos os dispositivos exigem uma entrada no registro do AWS IoT Core e um certificado X.509 ativado com uma política de AWS IoT anexada. Os dispositivos se enquadram em duas categorias:

  • Dispositivos principais do Greengrass

    Os principais dispositivos do Greengrass usam certificados e AWS IoT políticas para se conectar a e. AWS IoT Core AWS IoT Greengrass Os certificados e políticas também permitem AWS IoT Greengrass implantar componentes e configurações nos dispositivos principais.

  • Dispositivos do cliente

    Os dispositivos clientes MQTT usam certificados e políticas para se conectar ao AWS IoT Core AWS IoT Greengrass serviço. Isso permite que os dispositivos do cliente AWS IoT Greengrass usem a descoberta na nuvem para encontrar e se conectar a um dispositivo principal do Greengrass. Um dispositivo cliente usa o mesmo certificado para se conectar ao serviço de AWS IoT Core nuvem e aos dispositivos principais. Os dispositivos cliente também usam informações de descoberta para autenticação mútua com o dispositivo de núcleo. Para ter mais informações, consulte Interaja com dispositivos IoT locais.

Certificados X.509

A comunicação entre dispositivos principais e dispositivos clientes e entre dispositivos AWS IoT Core e/ou AWS IoT Greengrass deve ser autenticada. Esta autenticação mútua é baseada nos certificados e nas chaves criptográficas do dispositivo X.509 registrado.

Em um ambiente AWS IoT Greengrass, os dispositivos usam certificados com chaves públicas e privadas para as seguintes conexões Transport Layer Security (TLS):

  • O componente AWS IoT cliente no dispositivo principal do Greengrass que se conecta à Internet AWS IoT Core e AWS IoT Greengrass pela Internet.

  • Dispositivos clientes que se conectam pela AWS IoT Greengrass Internet para descobrir os dispositivos principais.

  • O componente intermediário MQTT no núcleo do Greengrass que se conecta aos dispositivos Greengrass no grupo pela rede local.

AWS IoT Greengrassos dispositivos principais armazenam certificados na pasta raiz do Greengrass.

Certificados da autoridade de certificação (CA)

Os dispositivos principais e clientes do Greengrass baixam um certificado CA raiz usado para autenticação com os serviços AWS IoT Core e. AWS IoT Greengrass Recomendamos que você use um certificado CA raiz do Amazon Trust Services (ATS), como o Amazon Root CA 1. Para obter mais informações, consulte Certificados CA para a autenticação do servidor no Guia do desenvolvedor do AWS IoT Core.

Os dispositivos cliente também baixam um certificado CA do dispositivo principal do Greengrass. Eles usam esse certificado para validar o certificado do servidor MQTT no dispositivo principal durante a autenticação mútua.

Rotação de certificados no corretor MQTT local

Quando você ativa o suporte ao dispositivo cliente, os dispositivos principais do Greengrass geram um certificado de servidor MQTT local que os dispositivos cliente usam para autenticação mútua. Esse certificado é assinado pelo certificado CA do dispositivo principal, que o dispositivo principal armazena na AWS IoT Greengrass nuvem. Os dispositivos cliente recuperam o certificado CA do dispositivo principal quando descobrem o dispositivo principal. Eles usam o certificado CA do dispositivo principal para verificar o certificado do servidor MQTT do dispositivo principal quando se conectam ao dispositivo principal. O certificado CA do dispositivo principal expira após 5 anos.

O certificado do servidor MQTT expira a cada 7 dias por padrão, e você pode configurar essa duração entre 2 e 10 dias. Esse período limitado é baseado nas melhores práticas de segurança. Essa rotação ajuda a mitigar a ameaça de um invasor roubar o certificado e a chave privada do servidor MQTT para se passar pelo dispositivo principal do Greengrass.

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

Políticas do AWS IoT para operações de plano de dados

Use AWS IoT políticas para autorizar o acesso aos planos de AWS IoT Greengrass dados AWS IoT Core e. O plano de AWS IoT Core dados fornece operações para dispositivos, usuários e aplicativos. Essas operações incluem a capacidade de se conectar AWS IoT Core e se inscrever em tópicos. O plano AWS IoT Greengrass de dados fornece operações para dispositivos Greengrass. Para ter mais informações, consulte Ações de políticas do AWS IoT Greengrass V2. Essas operações incluem a capacidade de resolver dependências de componentes e baixar artefatos de componentes públicos.

Uma política de AWS IoT é um documento JSON semelhante a uma política do IAM. Ela contém uma ou mais declarações de política que especificam as seguintes propriedades:

  • Effect. O modo de acesso, que pode ser Allow ou Deny.

  • Action. A lista de ações permitidas ou negadas pela política.

  • Resource. A lista de recursos em que a ação é permitida ou negada.

As políticas AWS IoT oferecem suporte a * como um caractere curinga e tratam os caracteres curinga (+ e #) do MQTT como sequências literais. Para obter mais informações sobre o caractere curinga *, consulte Usando o caractere curinga em ARNs de recursos no Guia do usuário do AWS Identity and Access Management.

Para obter mais informações, consulte Políticas do AWS IoT e Ações de políticas do AWS IoT no Guia do desenvolvedor do AWS IoT Core.

Importante

As variáveis de política Thing (iot:Connection.Thing.*) não são suportadas em AWS IoT políticas para dispositivos principais ou operações de plano de dados do Greengrass. Em vez disso, você pode usar um caractere curinga que corresponda a vários dispositivos com nomes semelhantes. Por exemplo, você pode especificar MyGreengrassDevice* para corresponder MyGreengrassDevice1MyGreengrassDevice2, e assim por diante.

nota

AWS IoT Core permite que você anexe políticas AWS IoT a grupos de coisas para definir permissões para grupos de dispositivos. As políticas de grupos de coisas não permitem acesso às operações do plano de dados AWS IoT Greengrass. Para permitir que uma coisa acesse uma operação de plano de dados AWS IoT Greengrass, adicione a permissão a uma política AWS IoT que você anexa ao certificado da coisa.

Ações de políticas do AWS IoT Greengrass V2

AWS IoT Greengrass V2define as seguintes ações de política que os dispositivos principais e clientes do Greengrass podem usar nas AWS IoT políticas. Para especificar um recurso para uma ação política, você usa o Amazon Resource Name (ARN) do recurso.

Principais ações do dispositivo
greengrass:GetComponentVersionArtifact

Concede permissão para obter uma URL pré-assinada para baixar um artefato de componente público ou um artefato de componente Lambda.

Essa permissão é avaliada quando um dispositivo principal recebe uma implantação que especifica um componente público ou um Lambda com artefatos. Se o dispositivo principal já tiver o artefato, ele não baixará o artefato novamente.

Tipo de recurso: componentVersion

Formato ARN do recurso: arn:aws:greengrass:region:account-id:components:component-name:versions:component-version

greengrass:ResolveComponentCandidates

Concede permissão para identificar uma lista de componentes que atendem aos requisitos de componente, versão e plataforma para uma implantação. Se os requisitos entrarem em conflito ou se não existirem componentes que atendam aos requisitos, essa operação retornará um erro e a implantação falhará no dispositivo.

Essa permissão é avaliada quando um dispositivo principal recebe uma implantação que especifica componentes.

Tipo de recurso: Nenhum

Formato ARN do recurso: *

greengrass:GetDeploymentConfiguration

Concede permissão para obter uma URL pré-assinada para baixar um grande documento de implantação.

Essa permissão é avaliada quando um dispositivo principal recebe uma implantação que especifica um documento de implantação maior que 7 KB (se a implantação for direcionada a uma coisa) ou 31 KB (se a implantação for direcionada a um grupo de coisas). O documento de implantação inclui configurações de componentes, políticas de implantação e metadados de implantação. Para ter mais informações, consulte Implemente AWS IoT Greengrass componentes em dispositivos.

Esse recurso está disponível para a versão 2.3.0 e posterior do componente de núcleo do Greengrass.

Tipo de recurso: Nenhum

Formato ARN do recurso: *

greengrass:ListThingGroupsForCoreDevice

Concede permissão para obter a hierarquia de grupos de coisas de um dispositivo principal.

Essa permissão é verificada quando um dispositivo principal recebe uma implantação doAWS IoT Greengrass. O dispositivo principal usa essa ação para identificar se ele foi removido de um grupo de coisas desde a última implantação. Se o dispositivo principal foi removido de um grupo de coisas e esse grupo de coisas é o alvo de uma implantação no dispositivo principal, o dispositivo principal remove os componentes instalados por essa implantação.

Esse recurso é usado pela versão 2.5.0 e posterior do componente de núcleo do Greengrass.

Tipo de recurso: thing (dispositivo principal)

Formato ARN do recurso: arn:aws:iot:region:account-id:thing/core-device-thing-name

greengrass:VerifyClientDeviceIdentity

Concede permissão para verificar a identidade de um dispositivo cliente que se conecta a um dispositivo principal.

Essa permissão é avaliada quando um dispositivo principal executa o componente de autenticação do dispositivo cliente e recebe uma conexão MQTT de um dispositivo cliente. O dispositivo cliente apresenta seu certificado de AWS IoT dispositivo. Em seguida, o dispositivo principal envia o certificado do dispositivo ao serviço de AWS IoT Greengrass nuvem para verificar a identidade do dispositivo cliente. Para ter mais informações, consulte Interaja com dispositivos IoT locais.

Tipo de recurso: Nenhum

Formato ARN do recurso: *

greengrass:VerifyClientDeviceIoTCertificateAssociation

Concede permissão para verificar se um dispositivo cliente está associado a um AWS IoT certificado.

Essa permissão é avaliada quando um dispositivo principal executa o componente de autenticação do dispositivo cliente e autoriza um dispositivo cliente a se conectar pelo MQTT. Para ter mais informações, consulte Interaja com dispositivos IoT locais.

nota

Para que um dispositivo principal use essa operação, a função de serviço do Greengrass deve estar associada à sua Conta da AWS e permitir a iot:DescribeCertificate permissão.

Tipo de recurso: thing (dispositivo cliente)

Formato ARN do recurso: arn:aws:iot:region:account-id:thing/client-device-thing-name

greengrass:PutCertificateAuthorities

Concede permissão para carregar certificados de autoridade de certificação (CA) que os dispositivos cliente podem baixar para verificar o dispositivo principal.

Essa permissão é avaliada quando um dispositivo principal instala e executa o componente de autenticação do dispositivo cliente. Esse componente cria uma autoridade de certificação local e usa essa operação para carregar seus certificados CA. Os dispositivos clientes baixam esses certificados CA quando usam a operação Discover para encontrar dispositivos principais aos quais podem se conectar. Quando dispositivos clientes se conectam a um agente MQTT em um dispositivo principal, eles usam esses certificados CA para verificar a identidade do dispositivo principal. Para ter mais informações, consulte Interaja com dispositivos IoT locais.

Tipo de recurso: Nenhum

Formato ARN: *

greengrass:GetConnectivityInfo

Concede permissão para obter informações de conectividade para um dispositivo principal. Essas informações descrevem como os dispositivos cliente podem se conectar ao dispositivo principal.

Essa permissão é avaliada quando um dispositivo principal instala e executa o componente de autenticação do dispositivo cliente. Esse componente usa as informações de conectividade para gerar certificados CA válidos para serem carregados no serviço de AWS IoT Greengrass nuvem com a PutCertificateAuthoriesoperação. Os dispositivos cliente usam esses certificados CA para verificar a identidade do dispositivo principal. Para ter mais informações, consulte Interaja com dispositivos IoT locais.

Você também pode usar essa operação no plano de AWS IoT Greengrass controle para visualizar as informações de conectividade de um dispositivo principal. Para obter mais informações, consulte GetConnectivityInfo na Referência da API do AWS IoT Greengrass V1.

Tipo de recurso: thing (dispositivo principal)

Formato ARN do recurso: arn:aws:iot:region:account-id:thing/core-device-thing-name

greengrass:UpdateConnectivityInfo

Concede permissão para atualizar as informações de conectividade de um dispositivo principal. Essas informações descrevem como os dispositivos cliente podem se conectar ao dispositivo principal.

Essa permissão é avaliada quando um dispositivo principal executa o componente detector de IP. Esse componente identifica as informações que os dispositivos cliente precisam para se conectar ao dispositivo principal na rede local. Em seguida, esse componente usa essa operação para carregar as informações de conectividade no serviço de AWS IoT Greengrass nuvem, para que os dispositivos clientes possam recuperar essas informações com a operação Discover. Para ter mais informações, consulte Interaja com dispositivos IoT locais.

Você também pode usar essa operação no plano de AWS IoT Greengrass controle para atualizar manualmente as informações de conectividade de um dispositivo principal. Para obter mais informações, consulte UpdateConnectivityInfo na Referência da API do AWS IoT Greengrass V1.

Tipo de recurso: thing (dispositivo principal)

Formato ARN do recurso: arn:aws:iot:region:account-id:thing/core-device-thing-name

Ações do dispositivo cliente
greengrass:Discover

Concede permissão para descobrir informações de conectividade para dispositivos principais aos quais um dispositivo cliente pode se conectar. Essas informações descrevem como o dispositivo cliente pode se conectar aos dispositivos principais. Um dispositivo cliente pode descobrir somente os dispositivos principais aos quais você o associou usando a BatchAssociateClientDeviceWithCoreDeviceoperação. Para ter mais informações, consulte Interaja com dispositivos IoT locais.

Tipo de recurso: thing (dispositivo cliente)

Formato ARN do recurso: arn:aws:iot:region:account-id:thing/client-device-thing-name

Atualizar a AWS IoT política de um dispositivo principal

Você pode usar os AWS IoT consoles AWS IoT Greengrass e ou a AWS IoT API para visualizar e atualizar a AWS IoT política de um dispositivo principal.

nota

Se você usou o instalador de software AWS IoT Greengrass Core para provisionar recursos, seu dispositivo principal tem uma AWS IoT política que permite acesso a todas as AWS IoT Greengrass ações (greengrass:*). Você pode seguir essas etapas para restringir o acesso somente às ações que um dispositivo principal usa.

  1. No menu de navegação AWS IoT Greengrassdo console, escolha Dispositivos principais.

  2. Na página Dispositivos principais, escolha o dispositivo principal a ser atualizado.

  3. Na página de detalhes do dispositivo principal, escolha o link para o item do dispositivo principal. Esse link abre a página de detalhes do item no AWS IoT console.

  4. Na página de detalhes do item, escolha Certificados.

  5. Na guia Certificados, escolha o certificado ativo do item.

  6. Na página de detalhes do certificado, escolha Políticas.

  7. Na guia Políticas, escolha a AWS IoT política a ser revisada e atualizada. Você pode adicionar as permissões necessárias a qualquer política anexada ao certificado ativo do dispositivo principal.

    nota

    Se você usou o instalador de software AWS IoT Greengrass Core para provisionar recursos, você tem duas AWS IoT políticas. Recomendamos que você escolha a política nomeada GreengrassV2IoTThingPolicy, se ela existir. Os dispositivos principais que você cria com o instalador rápido usam esse nome de política por padrão. Se você adicionar permissões a essa política, também estará concedendo essas permissões a outros dispositivos principais que usam essa política.

  8. Na visão geral da política, escolha Editar versão ativa.

  9. Revise a política e adicione, remova ou edite as permissões, conforme necessário.

  10. Para definir uma nova versão da política como a versão ativa, em Status da versão da política, selecione Definir a versão editada como a versão ativa desta política.

  11. Selecione Salvar como nova versão.

  1. Liste os princípios básicos do AWS IoT dispositivo principal. Os principais podem ser certificados de dispositivos X.509 ou outros identificadores. Execute o comando a seguir e MyGreengrassCoresubstitua pelo nome do dispositivo principal.

    aws iot list-thing-principals --thing-name MyGreengrassCore

    A operação retorna uma resposta que lista os princípios básicos do dispositivo principal.

    { "principals": [ "arn:aws:iot:us-west-2:123456789012:cert/certificateId" ] }
  2. Identifique o certificado ativo do dispositivo principal. Execute o comando a seguir e substitua CertificateID pela ID de cada certificado da etapa anterior até encontrar o certificado ativo. O ID do certificado é a string hexadecimal no final do ARN do certificado. O --query argumento especifica a saída somente do status do certificado.

    aws iot describe-certificate --certificate-id certificateId --query 'certificateDescription.status'

    A operação retorna o status do certificado como uma string. Por exemplo, se o certificado estiver ativo, essa operação será exibida. "ACTIVE"

  3. Liste as AWS IoT políticas anexadas ao certificado. Execute o comando a seguir e substitua o ARN do certificado pelo ARN do certificado.

    aws iot list-principal-policies --principal arn:aws:iot:us-west-2:123456789012:cert/certificateId

    A operação retorna uma resposta que lista as AWS IoT políticas anexadas ao certificado.

    { "policies": [ { "policyName": "GreengrassTESCertificatePolicyMyGreengrassCoreTokenExchangeRoleAlias", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassTESCertificatePolicyMyGreengrassCoreTokenExchangeRoleAlias" }, { "policyName": "GreengrassV2IoTThingPolicy", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy" } ] }
  4. Escolha a política a ser visualizada e atualizada.

    nota

    Se você usou o instalador de software AWS IoT Greengrass Core para provisionar recursos, você tem duas AWS IoT políticas. Recomendamos que você escolha a política nomeada GreengrassV2IoTThingPolicy, se ela existir. Os dispositivos principais que você cria com o instalador rápido usam esse nome de política por padrão. Se você adicionar permissões a essa política, também estará concedendo essas permissões a outros dispositivos principais que usam essa política.

  5. Obtenha o documento da política. Execute o comando a seguir e substitua GreengrassV2IoT ThingPolicy pelo nome da política.

    aws iot get-policy --policy-name GreengrassV2IoTThingPolicy

    A operação retorna uma resposta que contém o documento da política e outras informações sobre a política. O documento de política é um objeto JSON serializado como uma string.

    { "policyName": "GreengrassV2IoTThingPolicy", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy", "policyDocument": "{\ \\"Version\\": \\"2012-10-17\\",\ \\"Statement\\": [\ {\ \\"Effect\\": \\"Allow\\",\ \\"Action\\": [\ \\"iot:Connect\\",\ \\"iot:Publish\\",\ \\"iot:Subscribe\\",\ \\"iot:Receive\\",\ \\"greengrass:*\\"\ ],\ \\"Resource\\": \\"*\\"\ }\ ]\ }", "defaultVersionId": "1", "creationDate": "2021-02-05T16:03:14.098000-08:00", "lastModifiedDate": "2021-02-05T16:03:14.098000-08:00", "generationId": "f19144b798534f52c619d44f771a354f1b957dfa2b850625d9f1d0fde530e75f" }
  6. Use um conversor on-line ou outra ferramenta para converter a string do documento de política em um objeto JSON e, em seguida, salve-a em um arquivo chamadoiot-policy.json.

    Por exemplo, se você tiver a ferramenta jq instalada, poderá executar o comando a seguir para obter o documento de política, convertê-lo em um objeto JSON e salvá-lo como um objeto JSON.

    aws iot get-policy --policy-name GreengrassV2IoTThingPolicy --query 'policyDocument' | jq fromjson >> iot-policy.json
  7. Revise o documento de política e adicione, remova ou edite as permissões conforme necessário.

    Por exemplo, em um sistema baseado em Linux, você pode executar o seguinte comando para usar o GNU nano para abrir o arquivo.

    nano iot-policy.json

    Quando você terminar, o documento de política pode parecer semelhante à AWS IoTpolítica mínima para dispositivos principais.

  8. Salve as alterações como uma nova versão da política. Execute o comando a seguir e substitua GreengrassV2IoT ThingPolicy pelo nome da política.

    aws iot create-policy-version --policy-name GreengrassV2IoTThingPolicy --policy-document file://iot-policy.json --set-as-default

    Se for bem-sucedida, a operação retornará uma resposta semelhante à do exemplo a seguir.

    { "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy", "policyDocument": "{\ \\"Version\\": \\"2012-10-17\\",\ \\"Statement\\": [\ {\ \\"Effect\\": \\"Allow\\",\ \\"Action\\": [\ \\t\\t\\"iot:Connect\\",\ \\t\\t\\"iot:Publish\\",\ \\t\\t\\"iot:Subscribe\\",\ \\t\\t\\"iot:Receive\\",\ \\t\\t\\"greengrass:*\\"\ ],\ \\"Resource\\": \\"*\\"\ }\ ]\ }", "policyVersionId": "2", "isDefaultVersion": true }

AWS IoTPolítica mínima para dispositivos AWS IoT Greengrass V2 principais

Importante

Versões posteriores do componente nucleus do Greengrass exigem permissões adicionais sobre a política mínima. AWS IoT Talvez seja necessário atualizar as AWS IoT políticas dos seus dispositivos principais para conceder permissões adicionais.

  • Os dispositivos principais que executam o Greengrass nucleus v2.5.0 e versões posteriores usam a greengrass:ListThingGroupsForCoreDevice permissão para desinstalar componentes quando você remove um dispositivo principal de um grupo de coisas.

  • Os dispositivos principais que executam o Greengrass nucleus v2.3.0 e versões posteriores usam a greengrass:GetDeploymentConfiguration permissão para oferecer suporte a grandes documentos de configuração de implantação.

A política de exemplo a seguir inclui o conjunto mínimo de ações necessárias para oferecer suporte à funcionalidade básica do Greengrass para seu dispositivo de núcleo.

  • A Connect política inclui o * caractere curinga após o nome do dispositivo principal (por exemplo,core-device-thing-name*). O dispositivo principal usa o mesmo certificado de dispositivo para fazer várias assinaturas simultâneasAWS IoT Core, mas o ID do cliente em uma conexão pode não corresponder exatamente ao nome do dispositivo principal. Após as primeiras 50 assinaturas, o dispositivo principal é usado core-device-thing-name#number como ID do cliente, onde number incrementa para cada 50 assinaturas adicionais. Por exemplo, quando um dispositivo principal chamado MyCoreDevice cria 150 assinaturas simultâneas, ele usa as seguintes IDs de cliente:

    • Assinaturas 1 a 50: MyCoreDevice

    • Assinaturas 51 a 100: MyCoreDevice#2

    • Assinaturas 101 a 150: MyCoreDevice#3

    O caractere curinga permite que o dispositivo principal se conecte quando usa esses IDs de cliente que têm um sufixo.

  • A política lista os tópicos MQTT e filtros de tópicos nos quais o dispositivo de núcleo pode publicar mensagens, assinar e receber mensagens, incluindo tópicos usados para o estado de shadow. Para oferecer suporte à troca de mensagens entre AWS IoT Core componentes do Greengrass e dispositivos cliente, especifique os tópicos e os filtros de tópicos que você deseja permitir. Para obter mais informações, consulte Exemplos de políticas de publicação/assinatura no Guia do desenvolvedor do AWS IoT Core.

  • A política concede permissão para publicar dados de telemetria no tópico a seguir.

    $aws/things/core-device-thing-name/greengrass/health/json

    Você pode remover essa permissão para dispositivos principais nos quais você desativa a telemetria. Para ter mais informações, consulte Colete dados de telemetria de integridade do sistema a partir dos dispositivos principais AWS IoT Greengrass.

  • A política concede permissão para assumir uma função do IAM por meio de um alias de AWS IoT função. O dispositivo principal usa essa função, chamada de função de troca de tokens, para adquirir AWS credenciais que ele pode usar para autenticar solicitaçõesAWS. Para ter mais informações, consulte Autorize os dispositivos principais a interagir com os serviços AWS.

    Ao instalar o software AWS IoT Greengrass Core, você cria e anexa uma segunda AWS IoT política que inclui somente essa permissão. Se você incluir essa permissão na AWS IoT política primária do seu dispositivo principal, poderá desanexar e excluir a outra AWS IoT política.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": "arn:aws:iot:region:account-id:client/core-device-thing-name*" }, { "Effect": "Allow", "Action": [ "iot:Receive", "iot:Publish" ], "Resource": [ "arn:aws:iot:region:account-id:topic/$aws/things/core-device-thing-name/greengrass/health/json", "arn:aws:iot:region:account-id:topic/$aws/things/core-device-thing-name/greengrassv2/health/json", "arn:aws:iot:region:account-id:topic/$aws/things/core-device-thing-name/jobs/*", "arn:aws:iot:region:account-id:topic/$aws/things/core-device-thing-name/shadow/*" ] }, { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:region:account-id:topicfilter/$aws/things/core-device-thing-name/jobs/*", "arn:aws:iot:region:account-id:topicfilter/$aws/things/core-device-thing-name/shadow/*" ] }, { "Effect": "Allow", "Action": "iot:AssumeRoleWithCertificate", "Resource": "arn:aws:iot:region:account-id:rolealias/token-exchange-role-alias-name" }, { "Effect": "Allow", "Action": [ "greengrass:GetComponentVersionArtifact", "greengrass:ResolveComponentCandidates", "greengrass:GetDeploymentConfiguration", "greengrass:ListThingGroupsForCoreDevice" ], "Resource": "*" } ] }

AWS IoTPolítica mínima para oferecer suporte aos dispositivos do cliente

O exemplo de política a seguir inclui o conjunto mínimo de ações necessárias para oferecer suporte à interação com dispositivos clientes em um dispositivo principal. Para oferecer suporte a dispositivos cliente, um dispositivo principal deve ter as permissões dessa AWS IoT política, além da AWS IoTpolítica Mínima para operação básica.

  • A política permite que o dispositivo principal atualize suas próprias informações de conectividade. Essa permissão (greengrass:UpdateConnectivityInfo) é necessária somente se você implantar o componente detector de IP no dispositivo principal.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:region:account-id:topic/$aws/things/core-device-thing-name-gci/shadow/get" ] }, { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:region:account-id:topicfilter/$aws/things/core-device-thing-name-gci/shadow/update/delta", "arn:aws:iot:region:account-id:topicfilter/$aws/things/core-device-thing-name-gci/shadow/get/accepted" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region:account-id:topic/$aws/things/core-device-thing-name-gci/shadow/update/delta", "arn:aws:iot:region:account-id:topic/$aws/things/core-device-thing-name-gci/shadow/get/accepted" ] }, { "Effect": "Allow", "Action": [ "greengrass:PutCertificateAuthorities", "greengrass:VerifyClientDeviceIdentity" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "greengrass:VerifyClientDeviceIoTCertificateAssociation" ], "Resource": "arn:aws:iot:region:account-id:thing/*" }, { "Effect": "Allow", "Action": [ "greengrass:GetConnectivityInfo", "greengrass:UpdateConnectivityInfo" ], "Resource": [ "arn:aws:iot:region:account-id:thing/core-device-thing-name" ] } ] }

AWS IoTPolítica mínima para dispositivos clientes

O exemplo de política a seguir inclui o conjunto mínimo de ações necessárias para que um dispositivo cliente descubra os dispositivos principais nos quais eles se conectam e se comunicam pelo MQTT. A AWS IoT política do dispositivo cliente deve incluir a greengrass:Discover ação para permitir que o dispositivo descubra as informações de conectividade dos dispositivos principais do Greengrass associados. Na Resource seção, especifique o Amazon Resource Name (ARN) do dispositivo cliente, não o ARN do dispositivo principal do Greengrass.

  • A política permite a comunicação sobre todos os tópicos do MQTT. Para seguir as melhores práticas de segurança, restrinja o iot:Publishiot:Subscribe,, e iot:Receive as permissões ao conjunto mínimo de tópicos que um dispositivo cliente exige para seu caso de uso.

  • A política permite que a coisa descubra os principais dispositivos para todas as AWS IoT coisas. Para seguir as melhores práticas de segurança, restrinja a greengrass:Discover permissão ao AWS IoT item do dispositivo cliente ou a um caractere curinga que corresponda a um conjunto de AWS IoT itens.

    Importante

    As variáveis de política Thing (iot:Connection.Thing.*) não são suportadas em AWS IoT políticas para dispositivos principais ou operações de plano de dados do Greengrass. Em vez disso, você pode usar um caractere curinga que corresponda a vários dispositivos com nomes semelhantes. Por exemplo, você pode especificar MyGreengrassDevice* para corresponder MyGreengrassDevice1MyGreengrassDevice2, e assim por diante.

  • A AWS IoT política de um dispositivo cliente normalmente não exige permissões ou iot:DeleteThingShadow ações iot:GetThingShadowiot:UpdateThingShadow, porque o dispositivo principal do Greengrass gerencia as operações de sincronização paralela para dispositivos cliente. Para permitir que o dispositivo principal manipule as sombras do dispositivo cliente, verifique se a AWS IoT política do dispositivo principal permite essas ações e se a Resource seção inclui os ARNs dos dispositivos cliente.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:region:account-id:topic/*" ] }, { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:region:account-id:topicfilter/*" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region:account-id:topic/*" ] }, { "Effect": "Allow", "Action": [ "greengrass:Discover" ], "Resource": [ "arn:aws:iot:region:account-id:thing/*" ] } ] }