Configuração de integração do hub - Integrações gerenciadas para AWS IoT Device Management

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á.

Configuração de integração do hub

Conclua essas etapas de configuração para cada dispositivo de hub antes de iniciar o processo de integração do provisionamento da frota. Esta seção descreve como criar itens gerenciados, configurar estruturas de diretórios e configurar os certificados necessários.

Etapa 1: registrar um endpoint personalizado

Crie um terminal de comunicação dedicado que seus dispositivos usem para trocar dados com integrações gerenciadas. Esse endpoint estabelece um ponto de conexão seguro para todas as device-to-cloud mensagens, incluindo comandos do dispositivo, atualizações de status e notificações.

Para registrar um endpoint
  • Use a RegisterCustomEndpointAPI para criar um endpoint para comunicação de device-to-managed integrações.

    RegisterCustomEndpointExemplo de solicitação

    aws iot-managed-integrations register-custom-endpoint

    Resposta:

    { [ACCOUNT-PREFIX]-ats.iot.AWS-REGION.amazonaws.com }
    nota

    Armazene o endereço do endpoint. Você precisará dele para a futura comunicação com dispositivos.

    Para retornar as informações do endpoint, use a GetCustomEndpoint API.

    Para obter mais informações, consulte a RegisterCustomEndpointAPI e a GetCustomEndpointAPI no Guia de referência da API de integrações gerenciadas.

Etapa 2: criar um perfil de aprovisionamento

Um perfil de provisionamento contém as credenciais de segurança e as configurações de que seus dispositivos precisam para se conectar às integrações gerenciadas.

Para criar um perfil de aprovisionamento de frota
  • Chame a CreateProvisioningProfileAPI para gerar o seguinte:

    • Um modelo de provisionamento que define as configurações de conexão do dispositivo

    • Um certificado de solicitação e uma chave privada para autenticação de dispositivos

    Importante

    Armazene o certificado de solicitação, a chave privada e o ID do modelo com segurança. Você precisará dessas credenciais para integrar dispositivos a integrações gerenciadas. Se você perder essas credenciais, deverá criar um novo perfil de aprovisionamento.

CreateProvisioningProfileexemplo de solicitação

aws iot-managed-integrations create-provisioning-profile \ --provisioning-type FLEET_PROVISIONING \ --name PROFILE_NAME

Resposta:

{ "Arn":"arn:aws:iotmanagedintegrations:AWS-REGION:ACCOUNT-ID:provisioning-profile/PROFILE-ID", "ClaimCertificate": "-----BEGIN CERTIFICATE----- MIICiTCCAfICCQD6m7.....w3rrszlaEXAMPLE= -----END CERTIFICATE-----", "ClaimCertificatePrivateKey": "-----BEGIN RSA PRIVATE KEY----- MIICiTCCAfICCQ...3rrszlaEXAMPLE= -----END RSA PRIVATE KEY-----", "Id": "PROFILE-ID", "PROFILE-NAME", "ProvisioningType": "FLEET_PROVISIONING" }

Etapa 3: criar uma coisa gerenciada (provisionamento de frota)

Use a CreateManagedThing API para criar algo gerenciado para seu dispositivo hub. Cada hub exige sua própria coisa gerenciada com materiais de autenticação exclusivos. Para obter mais informações, consulte a CreateManagedThingAPI na Referência da API de integrações gerenciadas.

Ao criar uma coisa gerenciada, especifique estes parâmetros:

  • Role: defina esse valor comoCONTROLLER.

  • AuthenticationMaterial: inclua os seguintes campos.

    • SN: O número de série exclusivo deste dispositivo

    • UPC: O código de produto universal para este dispositivo

  • Owner: o identificador do proprietário dessa coisa gerenciada.

Importante

Cada dispositivo deve ter um número de série (SN) exclusivo em seu material de autenticação.

CreateManagedThingExemplo de solicitação:

{ "Role": "CONTROLLER", "Owner": "ThingOwner1", "AuthenticationMaterialType": "WIFI_SETUP_QR_BAR_CODE", "AuthenticationMaterial": "SN:123456789524;UPC:829576019524" }

Para obter mais informações, consulte CreateManagedThinga Referência da API de integrações gerenciadas.

(Opcional) Get Managed Thing

O que ProvisioningStatus você gerencia deve ser UNCLAIMED antes que você possa continuar. Use a GetManagedThing API para verificar se sua coisa gerenciada existe e está pronta para provisionamento. Para obter mais informações, consulte GetManagedThinga Referência da API de integrações gerenciadas.

Etapa 4: criar a estrutura de diretórios

Crie diretórios para seus arquivos de configuração e certificados. Por padrão, o processo de integração do hub usa o. /data/aws/iotmi/config/iotmi_config.json

Você pode especificar caminhos personalizados para certificados e chaves privadas no arquivo de configuração. Este guia usa o caminho padrão/data/aws/iotmi/certs.

mkdir -p /data/aws/iotmi/config mkdir -p /data/aws/iotmi/certs /data/ aws/ iotmi/ config/ certs/

Etapa 5: Adicionar materiais de autenticação ao dispositivo hub

Copie certificados e chaves para seu dispositivo hub e, em seguida, crie um arquivo de configuração específico do dispositivo. Esses arquivos estabelecem uma comunicação segura entre seu hub e as integrações gerenciadas durante o processo de provisionamento.

Para copiar o certificado de reclamação e a chave
  • Copie esses arquivos de autenticação da sua resposta de CreateProvisioningProfile API para o seu dispositivo hub:

    • claim_cert.pem: O certificado de solicitação (comum a todos os dispositivos)

    • claim_pk.key: a chave privada para o certificado de solicitação

    Coloque os dois arquivos no /data/aws/iotmi/certs diretório.

    Importante

    Ao armazenar certificados e chaves privadas no formato PEM, garanta a formatação adequada manipulando os caracteres de nova linha corretamente. Para arquivos codificados em PEM, os caracteres de nova linha (\n) devem ser substituídos por separadores de linha reais, pois o simples armazenamento de novas linhas com escape não será recuperado corretamente posteriormente.

    nota

    Se você usa armazenamento seguro, armazene essas credenciais em seu local de armazenamento seguro em vez de no sistema de arquivos. Para obter mais informações, consulte Crie um manipulador de certificados personalizado para armazenamento seguro.

Etapa 6: criar o arquivo de configuração do dispositivo

Crie um arquivo de configuração que contenha identificadores exclusivos de dispositivos, locais de certificados e configurações de provisionamento. O SDK usa esse arquivo durante a integração do hub para autenticar seu dispositivo, gerenciar o status do provisionamento e armazenar as configurações de conexão.

nota

Cada dispositivo de hub exige seu próprio arquivo de configuração com valores exclusivos específicos do dispositivo.

Use o procedimento a seguir para criar ou modificar seu arquivo de configuração e copiá-lo para o hub.

  • Crie ou modifique o arquivo de configuração (provisionamento da frota).

    Configure esses campos obrigatórios no arquivo de configuração do dispositivo:

    • Caminhos de certificado

      1. iot_claim_cert_path: Localização do seu certificado de reclamação (claim_cert.pem)

      2. iot_claim_pk_path: Localização da sua chave privada (claim_pk.key)

      3. Use SECURE_STORAGE para ambos os campos ao implementar o Secure Storage Cert Handler

    • Configurações de conexão

      1. fp_template_name: O ProvisioningProfile nome anterior.

      2. endpoint_url: o URL do endpoint de integrações gerenciadas da resposta da RegisterCustomEndpoint API (o mesmo para todos os dispositivos em uma região).

    • Identificadores de dispositivo

      1. SN: número de série do dispositivo que corresponde à sua chamada de CreateManagedThing API (exclusivo por dispositivo)

      2. UPCCódigo de produto universal da sua chamada de CreateManagedThing API (o mesmo para todos os dispositivos deste produto)

    { "ro": { "iot_provisioning_method": "FLEET_PROVISIONING", "iot_claim_cert_path": "<SPECIFY_THIS_FIELD>", "iot_claim_pk_path": "<SPECIFY_THIS_FIELD>", "fp_template_name": "<SPECIFY_THIS_FIELD>", "endpoint_url": "<SPECIFY_THIS_FIELD>", "SN": "<SPECIFY_THIS_FIELD>", "UPC": "<SPECIFY_THIS_FIELD>" }, "rw": { "iot_provisioning_state": "NOT_PROVISIONED" } }

Conteúdo do arquivo de configuração

Revise o conteúdo do iotmi_config.json arquivo.

Conteúdo
Chave Valores Adicionado pelo cliente? Observações
iot_provisioning_method FLEET_PROVISIONING Sim Especifique o método de aprovisionamento que você deseja usar.
iot_claim_cert_path O caminho do arquivo que você especifica ouSECURE_STORAGE. Por exemplo, /data/aws/iotmi/certs/claim_cert.pem. Sim Especifique o caminho do arquivo que você deseja usar ouSECURE_STORAGE.
iot_claim_pk_path O caminho do arquivo que você especifica ouSECURE_STORAGE. Por exemplo, /data/aws/iotmi/certs/claim_pk.pem. Sim Especifique o caminho do arquivo que você deseja usar ouSECURE_STORAGE.
fp_template_name O nome do modelo de aprovisionamento da frota deve ser igual ao nome do ProvisioningProfile que foi usado anteriormente. Sim Igual ao nome do ProvisioningProfile que foi usado anteriormente
endpoint_url O URL do endpoint para integrações gerenciadas. Sim Seus dispositivos usam esse URL para se conectar à nuvem de integrações gerenciadas. Para obter essas informações, use a RegisterCustomEndpointAPI.
SN O número de série do dispositivo. Por exemplo, .AIDACKCEVSQ6C2EXAMPLE Sim Você deve fornecer essas informações exclusivas para cada dispositivo.
UPC Código de produto universal do dispositivo. Por exemplo, .841667145075 Sim Você deve fornecer essas informações para o dispositivo.
managed_thing_id O ID da coisa gerenciada. Não Essas informações são adicionadas posteriormente pelo processo de integração após o provisionamento do hub.
iot_provisioning_state O estado de aprovisionamento. Sim O estado de provisionamento deve ser definido como. NOT_PROVISIONED
iot_permanent_cert_path O caminho do certificado de IoT. Por exemplo, ./data/aws/iotmi/iot_cert.pem Não Essas informações são adicionadas posteriormente pelo processo de integração após o provisionamento do hub.
iot_permanent_pk_path O caminho do arquivo da chave privada da IoT. Por exemplo, ./data/aws/iotmi/iot_pk.pem Não Essas informações são adicionadas posteriormente pelo processo de integração após o provisionamento do hub.
client_id O ID do cliente que será usado para conexões MQTT. Não Essas informações são adicionadas posteriormente pelo processo de integração após o provisionamento do hub, para que outros componentes sejam consumidas.
event_manager_upper_bound O valor padrão é 500 Não Essas informações são adicionadas posteriormente pelo processo de integração após o provisionamento do hub, para que outros componentes sejam consumidas.

Etapa 7: Copie o arquivo de configuração para o seu hub

Copie seu arquivo de configuração /data/aws/iotmi/config ou seu caminho de diretório personalizado. Você fornecerá esse caminho para o HubOnboarding binário durante o processo de integração.

Para provisionamento de frotas

/data/ aws/ iotmi/ config/ iotmi_config.json certs/ claim_cert.pem claim_pk.key