Configure o provisionamento AWS IoT da frota para os principais dispositivos do 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á.

Configure o provisionamento AWS IoT da frota para os principais dispositivos do Greengrass

Para instalar o software AWS IoT Greengrass Core com provisionamento de frota, você deve primeiro configurar os seguintes recursos em seu. Conta da AWS Esses recursos permitem que os dispositivos se registrem AWS IoT e operem como dispositivos principais do Greengrass. Siga as etapas desta seção uma vez para criar e configurar esses recursos no seuConta da AWS.

  • Uma função do IAM de troca de tokens, que os dispositivos principais usam para autorizar chamadas para AWS serviços.

  • Um alias de AWS IoT função que aponta para a função de troca de tokens.

  • (Opcional) Uma AWS IoT política que os dispositivos principais usam para autorizar chamadas para os AWS IoT Greengrass serviços AWS IoT e. Essa AWS IoT política deve permitir a iot:AssumeRoleWithCertificate permissão para o alias de AWS IoT função que aponta para a função de troca de tokens.

    Você pode usar uma única AWS IoT política para todos os dispositivos principais da sua frota ou pode configurar seu modelo de aprovisionamento da frota para criar uma AWS IoT política para cada dispositivo principal.

  • Um modelo de aprovisionamento de AWS IoT frota. Esse modelo deve especificar o seguinte:

    • Qualquer AWS IoT coisa, recurso. Você pode especificar uma lista de grupos de coisas existentes para implantar componentes em cada dispositivo quando ele estiver on-line.

    • Um recurso AWS IoT político. Esse recurso pode definir uma das seguintes propriedades:

      • O nome de uma AWS IoT política existente. Se você escolher essa opção, os dispositivos principais criados a partir desse modelo usarão a mesma AWS IoT política e você poderá gerenciar suas permissões como uma frota.

      • Um documento AWS IoT de política. Se você escolher essa opção, cada dispositivo principal criado a partir desse modelo usará uma AWS IoT política exclusiva e você poderá gerenciar permissões para cada dispositivo principal individual.

    • Um recurso de AWS IoT certificado. Esse recurso de certificado deve usar o AWS::IoT::Certificate::Id parâmetro para anexar o certificado ao dispositivo principal. Para obter mais informações, consulte J ust-in-time provisioning no Guia do AWS IoTdesenvolvedor.

  • Um certificado de solicitação AWS IoT de aprovisionamento e uma chave privada para o modelo de aprovisionamento da frota. Você pode incorporar esse certificado e a chave privada nos dispositivos durante a fabricação, para que os dispositivos possam se registrar e se provisionar quando estiverem on-line.

    Importante

    O provisionamento de chaves privadas de solicitação deve ser protegido em todos os momentos, inclusive nos dispositivos principais do Greengrass. Recomendamos que você use CloudWatch métricas e registros da Amazon para monitorar indícios de uso indevido, como o uso não autorizado do certificado de solicitação para provisionar dispositivos. Se você detectar uso indevido, desative o certificado de solicitação de aprovisionamento para que ele não possa ser usado para provisionamento de dispositivos. Para obter mais informações, consulte Monitorar AWS IoT no Guia do Desenvolvedor AWS IoT Core.

    Para ajudá-lo a gerenciar melhor o número de dispositivos e quais dispositivos se registram no seuConta da AWS, você pode especificar um gancho de pré-provisionamento ao criar um modelo de aprovisionamento de frota. Um gancho de pré-provisionamento é uma AWS Lambda função que valida os parâmetros do modelo que os dispositivos fornecem durante o registro. Por exemplo, você pode criar um gancho de pré-provisionamento que compara a ID do dispositivo a um banco de dados para verificar se o dispositivo tem permissão para provisionar. Para obter mais informações, consulte Ganchos de pré-provisionamento no Guia do desenvolvedor. AWS IoT Core

  • Uma AWS IoT política que você anexa ao certificado de solicitação de aprovisionamento para permitir que os dispositivos se registrem e usem o modelo de aprovisionamento da frota.

Crie uma função de troca de tokens

Os dispositivos principais do Greengrass usam uma função de serviço do IAM, chamada função de troca de tokens, para autorizar chamadas para serviços. AWS O dispositivo usa o provedor de AWS IoT credenciais para obter AWS credenciais temporárias para essa função, o que permite que o dispositivo interajaAWS IoT, envie registros para o Amazon CloudWatch Logs e baixe artefatos de componentes personalizados do Amazon S3. Para ter mais informações, consulte Autorize os dispositivos principais a interagir com os serviços AWS.

Você usa um alias de AWS IoT função para configurar a função de troca de tokens para os dispositivos principais do Greengrass. Os aliases de função permitem que você altere a função de troca de tokens de um dispositivo, mas mantenha a mesma configuração do dispositivo. Para obter mais informações, consulte Autorização de chamadas diretas para AWS serviços no Guia do AWS IoT Core desenvolvedor.

Nesta seção, você cria uma função do IAM de troca de tokens e um alias de AWS IoT função que aponta para a função. Se você já configurou um dispositivo principal do Greengrass, pode usar sua função de troca de tokens e seu alias de função em vez de criar novos.

Para criar uma função do IAM de troca de tokens
  1. Crie uma função do IAM que seu dispositivo possa usar como função de troca de tokens. Faça o seguinte:

    1. Crie um arquivo que contenha o documento de política de confiança exigido pela função de troca de tokens.

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

      nano device-role-trust-policy.json

      Copie o seguinte JSON no arquivo.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "credentials.iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. Crie a função de troca de tokens com o documento de política de confiança.

      • Substitua GreengrassV2 TokenExchangeRole pelo nome da função do IAM a ser criada.

      aws iam create-role --role-name GreengrassV2TokenExchangeRole --assume-role-policy-document file://device-role-trust-policy.json

      A resposta será semelhante ao exemplo a seguir, se a solicitação for bem-sucedida.

      { "Role": { "Path": "/", "RoleName": "GreengrassV2TokenExchangeRole", "RoleId": "AROAZ2YMUHYHK5OKM77FB", "Arn": "arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole", "CreateDate": "2021-02-06T00:13:29+00:00", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "credentials.iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } }
    3. Crie um arquivo que contenha o documento de política de acesso exigido pela função de troca de tokens.

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

      nano device-role-access-policy.json

      Copie o seguinte JSON no arquivo.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams", "s3:GetBucketLocation" ], "Resource": "*" } ] }
      nota

      Essa política de acesso não permite acesso a artefatos de componentes em buckets do S3. Para implantar componentes personalizados que definem artefatos no Amazon S3, você deve adicionar permissões à função para permitir que seu dispositivo principal recupere artefatos de componentes. Para ter mais informações, consulte Permitir acesso aos buckets do S3 para artefatos de componentes.

      Se você ainda não tem um bucket do S3 para artefatos de componentes, você pode adicionar essas permissões depois de criar um bucket.

    4. Crie a política do IAM a partir do documento de política.

      • Substitua GreengrassV2 TokenExchangeRoleAccess pelo nome da política do IAM a ser criada.

      aws iam create-policy --policy-name GreengrassV2TokenExchangeRoleAccess --policy-document file://device-role-access-policy.json

      A resposta será semelhante ao exemplo a seguir, se a solicitação for bem-sucedida.

      { "Policy": { "PolicyName": "GreengrassV2TokenExchangeRoleAccess", "PolicyId": "ANPAZ2YMUHYHACI7C5Z66", "Arn": "arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess", "Path": "/", "DefaultVersionId": "v1", "AttachmentCount": 0, "PermissionsBoundaryUsageCount": 0, "IsAttachable": true, "CreateDate": "2021-02-06T00:37:17+00:00", "UpdateDate": "2021-02-06T00:37:17+00:00" } }
    5. Anexe a política do IAM à função de troca de tokens.

      • Substitua GreengrassV2 TokenExchangeRole pelo nome da função do IAM.

      • Substitua o ARN da política pelo ARN da política do IAM que você criou na etapa anterior.

      aws iam attach-role-policy --role-name GreengrassV2TokenExchangeRole --policy-arn arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess

      O comando não terá nenhuma saída se a solicitação for bem-sucedida.

  2. Crie um alias de AWS IoT função que aponte para a função de troca de tokens.

    • GreengrassCoreTokenExchangeRoleAliasSubstitua pelo nome do alias de função a ser criado.

    • Substitua o ARN da função pelo ARN da função do IAM que você criou na etapa anterior.

    aws iot create-role-alias --role-alias GreengrassCoreTokenExchangeRoleAlias --role-arn arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole

    A resposta será semelhante ao exemplo a seguir, se a solicitação for bem-sucedida.

    { "roleAlias": "GreengrassCoreTokenExchangeRoleAlias", "roleAliasArn": "arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias" }
    nota

    Para criar um alias de função, você precisa ter permissão para passar a função do IAM de troca de tokens paraAWS IoT. Se você receber uma mensagem de erro ao tentar criar um alias de função, verifique se o AWS usuário tem essa permissão. Para obter mais informações, consulte Conceder permissões a um usuário para passar uma função para um AWS serviço no Guia do AWS Identity and Access Management usuário.

Criar uma política do AWS IoT

Depois de registrar um dispositivo como uma AWS IoT coisa, esse dispositivo pode usar um certificado digital para se autenticarAWS. Esse certificado inclui uma ou mais AWS IoT políticas que definem as permissões que um dispositivo pode usar com o certificado. Essas políticas permitem que o dispositivo se comunique com AWS IoT AWS IoT Greengrass e.

Com o provisionamento AWS IoT da frota, os dispositivos se conectam AWS IoT para criar e baixar um certificado de dispositivo. No modelo de aprovisionamento de frota que você cria na próxima seção, você pode especificar se AWS IoT anexa a mesma AWS IoT política aos certificados de todos os dispositivos ou cria uma nova política para cada dispositivo.

Nesta seção, você cria uma AWS IoT política AWS IoT anexada aos certificados de todos os dispositivos. Com essa abordagem, você pode gerenciar as permissões para todos os dispositivos como uma frota. Se preferir criar uma nova AWS IoT política para cada dispositivo, você pode pular esta seção e consultar a política nela ao definir seu modelo de frota.

Para criar uma política do AWS IoT
  • Crie uma AWS IoT política que defina as AWS IoT permissões para sua frota de dispositivos principais do Greengrass. A política a seguir permite acesso a todos os tópicos do MQTT e operações do Greengrass, para que seu dispositivo funcione com aplicativos personalizados e futuras alterações que exijam novas operações do Greengrass. Essa política também permite a iot:AssumeRoleWithCertificate permissão, que permite que seus dispositivos usem a função de troca de tokens que você criou na seção anterior. Você pode restringir essa política com base no seu caso de uso. Para ter mais informações, consulte AWS IoTPolítica mínima para dispositivos AWS IoT Greengrass V2 principais.

    Faça o seguinte:

    1. Crie um arquivo que contenha o documento AWS IoT de política exigido pelos dispositivos principais do Greengrass.

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

      nano greengrass-v2-iot-policy.json

      Copie o seguinte JSON no arquivo.

      • Substitua o iot:AssumeRoleWithCertificate recurso pelo ARN do alias de AWS IoT função que você criou na seção anterior.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish", "iot:Subscribe", "iot:Receive", "iot:Connect", "greengrass:*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": "iot:AssumeRoleWithCertificate", "Resource": "arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias" } ] }
    2. Crie uma AWS IoT política a partir do documento de política.

      • Substitua GreengrassV2IoT pelo nome da ThingPolicy política a ser criada.

      aws iot create-policy --policy-name GreengrassV2IoTThingPolicy --policy-document file://greengrass-v2-iot-policy.json

      A resposta será semelhante ao exemplo a seguir, se a solicitação for bem-sucedida.

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

Crie um modelo de aprovisionamento de frota

AWS IoTos modelos de aprovisionamento de frotas definem como provisionar AWS IoT itens, políticas e certificados. Para provisionar os dispositivos principais do Greengrass com o plug-in de provisionamento de frota, você deve criar um modelo que especifique o seguinte:

  • Qualquer AWS IoT coisa, recurso. Você pode especificar uma lista de grupos de coisas existentes para implantar componentes em cada dispositivo quando ele estiver on-line.

  • Um recurso AWS IoT político. Esse recurso pode definir uma das seguintes propriedades:

    • O nome de uma AWS IoT política existente. Se você escolher essa opção, os dispositivos principais criados a partir desse modelo usarão a mesma AWS IoT política e você poderá gerenciar suas permissões como uma frota.

    • Um documento AWS IoT de política. Se você escolher essa opção, cada dispositivo principal criado a partir desse modelo usará uma AWS IoT política exclusiva e você poderá gerenciar permissões para cada dispositivo principal individual.

  • Um recurso de AWS IoT certificado. Esse recurso de certificado deve usar o AWS::IoT::Certificate::Id parâmetro para anexar o certificado ao dispositivo principal. Para obter mais informações, consulte J ust-in-time provisioning no Guia do AWS IoTdesenvolvedor.

No modelo, você pode especificar a adição da AWS IoT coisa a uma lista de grupos de coisas existentes. Quando o dispositivo principal se conecta AWS IoT Greengrass pela primeira vez, ele recebe implantações do Greengrass para cada grupo do qual é membro. Você pode usar grupos de coisas para implantar o software mais recente em cada dispositivo assim que ele estiver online. Para ter mais informações, consulte Implemente AWS IoT Greengrass componentes em dispositivos.

O AWS IoT serviço exige permissões para criar e atualizar AWS IoT recursos em seu dispositivo Conta da AWS ao provisionar dispositivos. Para dar acesso ao AWS IoT serviço, você cria uma função do IAM e a fornece ao criar o modelo. AWS IoTfornece uma política gerenciada, AWSIoTThingsRegistration, que permite acesso a todas as permissões que AWS IoT podem ser usadas ao provisionar dispositivos. Você pode usar essa política gerenciada ou criar uma política personalizada que defina as permissões na política gerenciada para seu caso de uso.

Nesta seção, você cria uma função do IAM que permite AWS IoT provisionar recursos para dispositivos e cria um modelo de aprovisionamento de frota que usa essa função do IAM.

Para criar um modelo de aprovisionamento de frota
  1. Crie uma função do IAM que AWS IoT possa assumir o provisionamento de recursos em seuConta da AWS. Faça o seguinte:

    1. Crie um arquivo que contenha o documento de política de confiança que AWS IoT permite assumir a função.

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

      nano aws-iot-trust-policy.json

      Copie o seguinte JSON no arquivo.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. Crie uma função do IAM com o documento de política de confiança.

      • GreengrassFleetProvisioningRoleSubstitua pelo nome da função do IAM a ser criada.

      aws iam create-role --role-name GreengrassFleetProvisioningRole --assume-role-policy-document file://aws-iot-trust-policy.json

      A resposta será semelhante ao exemplo a seguir, se a solicitação for bem-sucedida.

      { "Role": { "Path": "/", "RoleName": "GreengrassFleetProvisioningRole", "RoleId": "AROAZ2YMUHYHK5OKM77FB", "Arn": "arn:aws:iam::123456789012:role/GreengrassFleetProvisioningRole", "CreateDate": "2021-07-26T00:15:12+00:00", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } } }
    3. Revise a AWSIoTThingsRegistrationpolítica, que permite acesso a todas as permissões que AWS IoT podem ser usadas ao provisionar dispositivos. Você pode usar essa política gerenciada ou criar uma política personalizada que defina permissões com escopo reduzido para seu caso de uso. Se você optar por criar uma política personalizada, faça isso agora.

    4. Anexe a política do IAM à função de aprovisionamento da frota.

      • Substitua GreengrassFleetProvisioningRole pelo nome da função do IAM.

      • Se você criou uma política personalizada na etapa anterior, substitua o ARN da política pelo ARN da política do IAM a ser usada.

      aws iam attach-role-policy --role-name GreengrassFleetProvisioningRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSIoTThingsRegistration

      O comando não terá nenhuma saída se a solicitação for bem-sucedida.

  2. (Opcional) Crie um gancho de pré-provisionamento, que é uma AWS Lambda função que valida os parâmetros do modelo que os dispositivos fornecem durante o registro. Você pode usar um gancho de pré-provisionamento para obter mais controle sobre quais e quantos dispositivos estão integrados no seu. Conta da AWS Para obter mais informações, consulte Ganchos de pré-provisionamento no Guia do desenvolvedor. AWS IoT Core

  3. Crie um modelo de aprovisionamento de frota. Faça o seguinte:

    1. Crie um arquivo para conter o documento modelo de aprovisionamento.

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

      nano greengrass-fleet-provisioning-template.json

      Escreva o documento modelo de aprovisionamento. Você pode começar com o seguinte exemplo de modelo de aprovisionamento, que especifica a criação de AWS IoT algo com as seguintes propriedades:

      • O nome da coisa é o valor que você especifica no parâmetro do ThingName modelo.

      • A coisa é um membro do grupo de coisas que você especifica no parâmetro do ThingGroupName modelo. O grupo de coisas deve existir em seuConta da AWS.

      • O certificado da coisa tem a AWS IoT política nomeada GreengrassV2IoTThingPolicy anexada a ele.

      Para obter mais informações, consulte Modelos de provisionamento no Guia do AWS IoT Coredesenvolvedor.

      { "Parameters": { "ThingName": { "Type": "String" }, "ThingGroupName": { "Type": "String" }, "AWS::IoT::Certificate::Id": { "Type": "String" } }, "Resources": { "MyThing": { "OverrideSettings": { "AttributePayload": "REPLACE", "ThingGroups": "REPLACE", "ThingTypeName": "REPLACE" }, "Properties": { "AttributePayload": {}, "ThingGroups": [ { "Ref": "ThingGroupName" } ], "ThingName": { "Ref": "ThingName" } }, "Type": "AWS::IoT::Thing" }, "MyPolicy": { "Properties": { "PolicyName": "GreengrassV2IoTThingPolicy" }, "Type": "AWS::IoT::Policy" }, "MyCertificate": { "Properties": { "CertificateId": { "Ref": "AWS::IoT::Certificate::Id" }, "Status": "Active" }, "Type": "AWS::IoT::Certificate" } } }
      nota

      MyThing, MyPolicy, e MyCertificatesão nomes arbitrários que identificam cada especificação de recurso no modelo de aprovisionamento da frota. AWS IoTnão usa esses nomes nos recursos que ele cria a partir do modelo. Você pode usar esses nomes ou substituí-los por valores que ajudam a identificar cada recurso no modelo.

    2. Crie o modelo de aprovisionamento da frota a partir do documento do modelo de aprovisionamento.

      • GreengrassFleetProvisioningTemplateSubstitua pelo nome do modelo a ser criado.

      • Substitua a descrição do modelo por uma descrição para o seu modelo.

      • Substitua o ARN da função de aprovisionamento pelo ARN da função que você criou anteriormente.

      Linux or Unix
      aws iot create-provisioning-template \ --template-name GreengrassFleetProvisioningTemplate \ --description "A provisioning template for Greengrass core devices." \ --provisioning-role-arn "arn:aws:iam::123456789012:role/GreengrassFleetProvisioningRole" \ --template-body file://greengrass-fleet-provisioning-template.json \ --enabled
      Windows Command Prompt (CMD)
      aws iot create-provisioning-template ^ --template-name GreengrassFleetProvisioningTemplate ^ --description "A provisioning template for Greengrass core devices." ^ --provisioning-role-arn "arn:aws:iam::123456789012:role/GreengrassFleetProvisioningRole" ^ --template-body file://greengrass-fleet-provisioning-template.json ^ --enabled
      PowerShell
      aws iot create-provisioning-template ` --template-name GreengrassFleetProvisioningTemplate ` --description "A provisioning template for Greengrass core devices." ` --provisioning-role-arn "arn:aws:iam::123456789012:role/GreengrassFleetProvisioningRole" ` --template-body file://greengrass-fleet-provisioning-template.json ` --enabled
      nota

      Se você criou um gancho de pré-provisionamento, especifique o ARN da função Lambda do gancho de pré-provisionamento com o argumento. --pre-provisioning-hook

      --pre-provisioning-hook targetArn=arn:aws:lambda:us-west-2:123456789012:function:GreengrassPreProvisioningHook

      A resposta será semelhante ao exemplo a seguir, se a solicitação for bem-sucedida.

      { "templateArn": "arn:aws:iot:us-west-2:123456789012:provisioningtemplate/GreengrassFleetProvisioningTemplate", "templateName": "GreengrassFleetProvisioningTemplate", "defaultVersionId": 1 }

Crie um certificado de solicitação de aprovisionamento e uma chave privada

Os certificados de declaração são certificados X.509 que permitem que os dispositivos se registrem como AWS IoT itens e recuperem um certificado de dispositivo X.509 exclusivo para uso em operações regulares. Depois de criar um certificado de solicitação, você anexa uma AWS IoT política que permite que os dispositivos o usem para criar certificados de dispositivo exclusivos e provisionar com um modelo de aprovisionamento de frota. Os dispositivos com o certificado de solicitação podem provisionar usando somente o modelo de provisionamento permitido na AWS IoT política.

Nesta seção, você cria o certificado de solicitação e o configura para dispositivos usarem com o modelo de aprovisionamento de frota que você criou na seção anterior.

Importante

O provisionamento de chaves privadas de solicitação deve ser protegido em todos os momentos, inclusive nos dispositivos principais do Greengrass. Recomendamos que você use CloudWatch métricas e registros da Amazon para monitorar indícios de uso indevido, como o uso não autorizado do certificado de solicitação para provisionar dispositivos. Se você detectar uso indevido, desative o certificado de solicitação de aprovisionamento para que ele não possa ser usado para provisionamento de dispositivos. Para obter mais informações, consulte Monitorar AWS IoT no Guia do Desenvolvedor AWS IoT Core.

Para ajudá-lo a gerenciar melhor o número de dispositivos e quais dispositivos se registram no seuConta da AWS, você pode especificar um gancho de pré-provisionamento ao criar um modelo de aprovisionamento de frota. Um gancho de pré-provisionamento é uma AWS Lambda função que valida os parâmetros do modelo que os dispositivos fornecem durante o registro. Por exemplo, você pode criar um gancho de pré-provisionamento que compara a ID do dispositivo a um banco de dados para verificar se o dispositivo tem permissão para provisionar. Para obter mais informações, consulte Ganchos de pré-provisionamento no Guia do desenvolvedor. AWS IoT Core

Para criar um certificado de solicitação de aprovisionamento e uma chave privada
  1. Crie uma pasta na qual você baixa o certificado de solicitação e a chave privada.

    mkdir claim-certs
  2. Crie e salve um certificado e uma chave privada para usar no provisionamento. AWS IoTfornece certificados de cliente assinados pela autoridade de certificação (CA) raiz da Amazon.

    Linux or Unix
    aws iot create-keys-and-certificate \ --certificate-pem-outfile "claim-certs/claim.pem.crt" \ --public-key-outfile "claim-certs/claim.public.pem.key" \ --private-key-outfile "claim-certs/claim.private.pem.key" \ --set-as-active
    Windows Command Prompt (CMD)
    aws iot create-keys-and-certificate ^ --certificate-pem-outfile "claim-certs/claim.pem.crt" ^ --public-key-outfile "claim-certs/claim.public.pem.key" ^ --private-key-outfile "claim-certs/claim.private.pem.key" ^ --set-as-active
    PowerShell
    aws iot create-keys-and-certificate ` --certificate-pem-outfile "claim-certs/claim.pem.crt" ` --public-key-outfile "claim-certs/claim.public.pem.key" ` --private-key-outfile "claim-certs/claim.private.pem.key" ` --set-as-active

    A resposta contém informações sobre o certificado, se a solicitação for bem-sucedida. Salve o ARN do certificado para usar mais tarde.

  3. Crie e anexe uma AWS IoT política que permita que os dispositivos usem o certificado para criar certificados de dispositivos exclusivos e provisionar com o modelo de aprovisionamento da frota. A política a seguir permite o acesso à API MQTT de provisionamento de dispositivos. Para obter mais informações, consulte a API MQTT de provisionamento de dispositivos no Guia do AWS IoT Core desenvolvedor.

    Faça o seguinte:

    1. Crie um arquivo que contenha o documento AWS IoT de política exigido pelos dispositivos principais do Greengrass.

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

      nano greengrass-provisioning-claim-iot-policy.json

      Copie o seguinte JSON no arquivo.

      • Substitua cada instância da região pelo Região da AWS local em que você configurou o provisionamento da frota.

      • Substitua cada instância de account-id pelo seu Conta da AWS ID.

      • Substitua cada instância do GreengrassFleetProvisioningTemplatepelo nome do modelo de aprovisionamento de frota que você criou na seção anterior.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:Connect", "Resource": "*" }, { "Effect": "Allow", "Action": [ "iot:Publish", "iot:Receive" ], "Resource": [ "arn:aws:iot:region:account-id:topic/$aws/certificates/create/*", "arn:aws:iot:region:account-id:topic/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate/provision/*" ] }, { "Effect": "Allow", "Action": "iot:Subscribe", "Resource": [ "arn:aws:iot:region:account-id:topicfilter/$aws/certificates/create/*", "arn:aws:iot:region:account-id:topicfilter/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate/provision/*" ] } ] }
    2. Crie uma AWS IoT política a partir do documento de política.

      • GreengrassProvisioningClaimPolicySubstitua pelo nome da política a ser criada.

      aws iot create-policy --policy-name GreengrassProvisioningClaimPolicy --policy-document file://greengrass-provisioning-claim-iot-policy.json

      A resposta será semelhante ao exemplo a seguir, se a solicitação for bem-sucedida.

      { "policyName": "GreengrassProvisioningClaimPolicy", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassProvisioningClaimPolicy", "policyDocument": "{ \"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \"Action\": \"iot:Connect\", \"Resource\": \"*\" }, { \"Effect\": \"Allow\", \"Action\": [ \"iot:Publish\", \"iot:Receive\" ], \"Resource\": [ \"arn:aws:iot:region:account-id:topic/$aws/certificates/create/*\", \"arn:aws:iot:region:account-id:topic/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate/provision/*\" ] }, { \"Effect\": \"Allow\", \"Action\": \"iot:Subscribe\", \"Resource\": [ \"arn:aws:iot:region:account-id:topicfilter/$aws/certificates/create/*\", \"arn:aws:iot:region:account-id:topicfilter/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate/provision/*\" ] } ] }", "policyVersionId": "1" }
  4. Anexe a AWS IoT política ao certificado de solicitação de aprovisionamento.

    • GreengrassProvisioningClaimPolicySubstitua pelo nome da política a ser anexada.

    • Substitua o ARN de destino pelo ARN do certificado de solicitação de aprovisionamento.

    aws iot attach-policy --policy-name GreengrassProvisioningClaimPolicy --target arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4

    O comando não terá nenhuma saída se a solicitação for bem-sucedida.

Agora você tem um certificado de solicitação de provisionamento e uma chave privada que os dispositivos podem usar para se registrar AWS IoT e se provisionar como dispositivos principais do Greengrass. Você pode incorporar o certificado de solicitação e a chave privada nos dispositivos durante a fabricação ou copiar o certificado e a chave nos dispositivos antes de instalar o software AWS IoT Greengrass Core. Para ter mais informações, consulte Instale o software AWS IoT Greengrass principal com provisionamento de AWS IoT frota.