Partilhar via


Crie e provisione dispositivos IoT Edge em escala no Linux usando chaves simétricas

Aplica-se a:Marca de verificação do IoT Edge 1.5 IoT Edge 1.5

Importante

O IoT Edge 1.5 LTS é a versão suportada. O IoT Edge 1.4 LTS está em fim de vida útil a partir de 12 de novembro de 2024. Se tiver uma versão anterior, consulte Atualizar IoT Edge.

Este artigo fornece instruções passo a passo para configurar um ou mais dispositivos Linux IoT Edge usando chaves simétricas. Configure automaticamente os dispositivos do Azure IoT Edge com o serviço de provisionamento de dispositivo (DPS) do Hub IoT do Azure. Se você não estiver familiarizado com o processo de provisionamento automático, revise a visão geral do provisionamento antes de continuar.

Eis as principais tarefas:

  1. Crie um registro individual para um único dispositivo ou um registro de grupo para um conjunto de dispositivos.
  2. Instale o tempo de execução do IoT Edge e conecte-se ao Hub IoT.

Gorjeta

Para obter uma experiência simplificada, experimente a ferramenta de configuração do Azure IoT Edge. Essa ferramenta de linha de comando, atualmente em visualização pública, instala o IoT Edge em seu dispositivo e o provisiona usando DPS e atestado de chave simétrica.

O atestado de chave simétrica é uma maneira simples de autenticar um dispositivo com uma instância de serviço de provisionamento de dispositivo. Este método é uma experiência "Hello world" para desenvolvedores que são novos no provisionamento de dispositivos ou não têm requisitos de segurança rigorosos. O atestado de dispositivo com um certificado TPM ou X.509 é mais seguro, e você deve usá-lo para necessidades de segurança mais rigorosas.

Pré-requisitos

Recursos na nuvem

  • Um hub IoT ativo
  • Uma instância do serviço de provisionamento de dispositivo do Hub IoT no Azure, vinculada ao seu hub IoT
    • Se você não tiver uma instância de serviço de provisionamento de dispositivo, poderá seguir as instruções nas seções Criar um novo serviço de provisionamento de dispositivo do Hub IoT e Vincular o hub IoT e o serviço de provisionamento de dispositivo do início rápido do serviço de provisionamento de dispositivos do Hub IoT.
    • Depois de executar o serviço de provisionamento de dispositivo, copie o valor de ID Scope da página de visão geral. Você usa esse valor ao configurar o tempo de execução do IoT Edge.

Requisitos do dispositivo

Use um dispositivo Linux físico ou virtual como o dispositivo IoT Edge.

Defina um ID de registroexclusivo para identificar cada dispositivo. Use o endereço MAC, número de série ou qualquer informação exclusiva do dispositivo. Por exemplo, combine um endereço MAC e um número de série para formar um ID de registro como sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6. Os caracteres válidos são alfanuméricos minúsculos e travessão (-).

Criar um registro DPS

Crie um registro para provisionar um ou mais dispositivos por meio do DPS.

Se você deseja provisionar um único dispositivo IoT Edge, crie um registro individual. Se você precisar de vários dispositivos provisionados, siga as etapas para criar um registro de grupo DPS.

Ao criar um registro no DPS, você tem a oportunidade de declarar um estado gêmeo inicial do dispositivo. No gêmeo de dispositivo, você pode definir tags para agrupar dispositivos por qualquer métrica necessária em sua solução, como região, ambiente, local ou tipo de dispositivo. Essas tags são usadas para criar implantações automáticas.

Para obter mais informações sobre inscrições no serviço de provisionamento de dispositivos, consulte Como gerenciar registros de dispositivos.

Criar uma inscrição individual do DPS

Gorjeta

As etapas neste artigo são para o portal do Azure, mas você também pode criar inscrições individuais usando a CLI do Azure. Para obter mais informações, consulte az iot dps enrollment. Como parte do comando CLI, use o sinalizador habilitado para borda para especificar que o registro é para um dispositivo IoT Edge.

  1. No portal do Azure, navegue até sua instância do serviço de provisionamento de dispositivo do Hub IoT.

  2. Em Configurações, selecione Gerenciar inscrições.

  3. Selecione Adicionar inscrição individual e conclua as seguintes etapas para configurar o registro:

    1. Em Mecanismo, selecione Chave simétrica.

    2. Forneça um ID de registo exclusivo para o seu dispositivo.

    3. Opcionalmente, forneça um ID de dispositivo do Hub IoT para o seu dispositivo. Você pode usar IDs de dispositivo para direcionar um dispositivo individual para implantação de módulo. Se você não fornecer um ID de dispositivo, o ID de registro será usado.

    4. Selecione True para declarar que o registro é para um dispositivo IoT Edge.

    5. Opcionalmente, adicione um valor de tag ao estado gêmeo inicial do dispositivo. Você pode usar tags para segmentar grupos de dispositivos para implantação de módulos. Por exemplo:

      {
         "tags": {
            "environment": "test"
         },
         "properties": {
            "desired": {}
         }
      }
      
    6. Selecione Guardar.

  4. Copie o valor da Chave Primária do registro individual para usar ao instalar o tempo de execução do IoT Edge.

Agora que existe um registro para esse dispositivo, o tempo de execução do IoT Edge pode provisionar automaticamente o dispositivo durante a instalação.

Instalar o IoT Edge

Nesta seção, você prepara sua máquina virtual Linux ou dispositivo físico para o IoT Edge. Em seguida, instale o IoT Edge.

Execute os seguintes comandos para adicionar o repositório de pacotes e, em seguida, adicione a chave de assinatura do pacote Microsoft à sua lista de chaves confiáveis.

Importante

Em 30 de junho de 2022, o Raspberry Pi OS Stretch foi retirado da lista de suporte do sistema operacional Tier 1. Para evitar possíveis vulnerabilidades de segurança, atualize seu sistema operacional host para Bullseye.

Para sistemas operacionais de plataforma com suporte de nível 2, os pacotes de instalação são disponibilizados nas versões do Azure IoT Edge. Consulte as etapas de instalação em Instalação offline ou de versão específica (opcional).

A instalação pode ser feita com alguns comandos. Abra um terminal e execute os seguintes comandos:

  • 24.04:

    wget https://packages.microsoft.com/config/ubuntu/24.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb
    
  • 22.04:

    wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb
    
  • 20.04:

    wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb
    

Para obter mais informações sobre versões do sistema operacional, consulte Plataformas com suporte do Azure IoT Edge.

Nota

Os pacotes de software do Azure IoT Edge estão sujeitos aos termos de licença localizados em cada pacote (usr/share/doc/{package-name} ou no LICENSE diretório). Leia os termos de licença antes de usar um pacote. A sua instalação e utilização de um pacote constitui a sua aceitação destes termos. Se você não concorda com os termos da licença, não use esse pacote.

Instalar um mecanismo de contêiner

O Azure IoT Edge depende de um tempo de execução de contêiner compatível com OCI. Para cenários de produção, recomendamos que você use o mecanismo Moby. O mecanismo Moby é o mecanismo de contêiner oficialmente suportado com o IoT Edge. As imagens de contêiner do Docker CE/EE são compatíveis com o tempo de execução do Moby. Se você estiver usando snaps do Ubuntu Core, o snap do Docker será atendido pela Canonical e suportado para cenários de produção.

Instale o motor Moby.

sudo apt-get update; \
  sudo apt-get install moby-engine

Por padrão, o mecanismo de contêiner não define limites de tamanho de log de contêiner. Com o tempo, essa situação pode levar o dispositivo a se encher de logs e ficar sem espaço em disco. No entanto, você pode configurar seu log para ser exibido localmente, embora seja opcional. Para saber mais sobre a configuração de log, consulte Preparar para implantar sua solução IoT Edge em produção.

As etapas a seguir mostram como configurar seu contêiner para usar local o driver de log como o mecanismo de log.

  1. Criar ou editar o arquivo de configuração do daemon Docker existente

    sudo nano /etc/docker/daemon.json
    
  2. Defina o driver de log padrão para o local driver de log, conforme mostrado no exemplo.

       {
          "log-driver": "local"
       }
    
  3. Reinicie o mecanismo de contêiner para que as alterações entrem em vigor.

    sudo systemctl restart docker
    

Instalar o runtime do IoT Edge

O serviço IoT Edge fornece e mantém padrões de segurança no dispositivo IoT Edge. O serviço é iniciado em cada inicialização e inicializa o dispositivo iniciando o restante do tempo de execução do IoT Edge.

Nota

A partir da versão 1.2, o serviço de identidade IoT do Azure lida com o provisionamento e o gerenciamento de identidade para o IoT Edge e para outros componentes de dispositivo que precisam se comunicar com o Hub IoT.

As etapas nesta seção representam o processo típico para instalar a versão mais recente do IoT Edge em um dispositivo com conexão com a Internet. Se você precisar instalar uma versão específica, como uma versão de pré-lançamento, ou precisar instalar enquanto estiver offline, siga as etapas de instalação Offline ou versão específica mais adiante neste artigo.

Gorjeta

Se você já tiver um dispositivo IoT Edge executando uma versão mais antiga e quiser atualizar para a versão mais recente, use as etapas em Atualizar o IoT Edge. As versões posteriores são suficientemente diferentes das versões anteriores do IoT Edge para que etapas específicas sejam necessárias para atualizar.

Instale a versão mais recente do IoT Edge e o pacote de serviço de identidade IoT (se ainda não estiver atualizado):

  • 22.04:

    sudo apt-get update; \
       sudo apt-get install aziot-edge
    
  • 20.04:

    sudo apt-get update; \
       sudo apt-get install aziot-edge
    

Provisionar o dispositivo com sua identidade na nuvem

Depois que o tempo de execução estiver instalado em seu dispositivo, configure o dispositivo com as informações que ele usa para se conectar ao serviço de provisionamento do dispositivo e ao Hub IoT.

Tenha as seguintes informações prontas:

  • O valor DPS ID Scope
  • O ID de registo do dispositivo que criou
  • A Chave Primária de um registro individual ou uma chave derivada para dispositivos que usam um registro de grupo.

Crie um arquivo de configuração para seu dispositivo com base em um arquivo de modelo fornecido como parte da instalação do IoT Edge.

sudo cp /etc/aziot/config.toml.edge.template /etc/aziot/config.toml

Abra o arquivo de configuração no dispositivo IoT Edge.

sudo nano /etc/aziot/config.toml
  1. Encontre a seção Provisionamento do arquivo. Descomente as linhas para provisionamento de DPS com chave simétrica e certifique-se de que todas as outras linhas de provisionamento sejam comentadas.

    # DPS provisioning with symmetric key
    [provisioning]
    source = "dps"
    global_endpoint = "https://global.azure-devices-provisioning.net"
    id_scope = "PASTE_YOUR_SCOPE_ID_HERE"
    
    # Uncomment to send a custom payload during DPS registration
    # payload = { uri = "PATH_TO_JSON_FILE" }
    
    [provisioning.attestation]
    method = "symmetric_key"
    registration_id = "PASTE_YOUR_REGISTRATION_ID_HERE"
    
    symmetric_key = { value = "PASTE_YOUR_PRIMARY_KEY_OR_DERIVED_KEY_HERE" }
    
    # auto_reprovisioning_mode = Dynamic
    
  2. Atualize os valores de , id_scopee com o DPS e registration_id as informações do symmetric_keydispositivo.

    O parâmetro de chave simétrica pode aceitar uma chave embutida, um URI de arquivo ou um URI PKCS#11. Descomente apenas uma linha de chave simétrica, com base no formato usado. Se você usar uma chave embutida, use uma chave codificada em base64 como o exemplo. Se você usar um URI de arquivo, o arquivo deverá conter os bytes brutos da chave.

    Se você usar qualquer URI PKCS#11, localize a seção PKCS#11 no arquivo de configuração e insira suas informações de configuração PKCS#11.

    Para obter mais informações sobre definições de configuração de provisionamento, consulte Definir configurações de dispositivo do IoT Edge.

  3. Opcionalmente, localize a seção do modo de reprovisionamento automático do arquivo. Use o parâmetro para definir o auto_reprovisioning_mode comportamento de reprovisionamento do dispositivo. Dinâmico - Reprovisionamento quando o dispositivo deteta que pode ser movido de um Hub IoT para outro. Esta é a predefinição. AlwaysOnStartup - Reprovisionamento quando o dispositivo é reinicializado ou uma falha faz com que os daemons sejam reiniciados. OnErrorOnly - Nunca acione o reprovisionamento de dispositivos automaticamente. Cada modo tem um fallback de reprovisionamento de dispositivo implícito se o dispositivo não puder se conectar ao Hub IoT durante o provisionamento de identidade devido a erros de conectividade. Para obter mais informações, consulte Conceitos de reprovisionamento de dispositivos do Hub IoT.

  4. Opcionalmente, descomente o payload parâmetro para especificar o caminho para um arquivo JSON local. O conteúdo do arquivo é enviado para o DPS como dados adicionais quando o dispositivo se registra. Isso é útil para alocação personalizada. Por exemplo, se você quiser alocar seus dispositivos com base em um ID de modelo IoT Plug and Play sem intervenção humana.

  5. Guarde e feche o ficheiro.

  6. Aplique as alterações de configuração feitas no dispositivo.

    sudo iotedge config apply
    

Verificar se a instalação foi bem-sucedida

Se o tempo de execução for iniciado com êxito, vá para o Hub IoT e comece a implantar módulos do IoT Edge no seu dispositivo.

Verifique se o registro individual que você criou no serviço de provisionamento de dispositivo é usado. Vá para a instância do serviço de provisionamento de dispositivo no portal do Azure. Abra os detalhes de inscrição para o registro individual que você criou. O status do registro é atribuído e o ID do dispositivo é listado.

Execute esses comandos em seu dispositivo para verificar se o IoT Edge é instalado e iniciado com êxito.

  1. Verifique o estado do serviço IoT Edge.

    sudo iotedge system status
    
  2. Exibir logs de serviço.

    sudo iotedge system logs
    
  3. Listar módulos em execução.

    sudo iotedge list
    

Próximos passos

O processo de registro do serviço de provisionamento de dispositivos permite definir a ID do dispositivo e as tags gêmeas do dispositivo quando você configura um novo dispositivo. Use esses valores para segmentar dispositivos individuais ou grupos de dispositivos com gerenciamento automático de dispositivos. Saiba como implantar e monitorar módulos do IoT Edge em escala usando o portal do Azure ou usando a CLI do Azure.