Criar e provisionar dispositivos do IoT Edge em escala com um TPM no Windows
Aplica-se a: IoT Edge 1.1
Importante
IoT Edge 1.1 a data de término do suporte foi 13 de dezembro de 2022. Confira o Ciclo de Vida do Produto da Microsoft para obter informações sobre o suporte deste produto, serviço, tecnologia ou API. Para obter mais informações sobre como atualizar para a versão mais recente do IoT Edge, consulte Atualizar o IoT Edge.
Este artigo fornece instruções para o provisionamento automático de um Azure IoT Edge para Windows dispositivo usando um Trusted Platform Module (TPM). É possível provisionar automaticamente dispositivos do Azure IoT Edge com o Serviço de provisionamento de dispositivos no Hub IoT do Azure. Se você não estiver familiarizado com o processo de provisionamento automático, reveja a visão geral de provisionamento antes de continuar.
Observação
O Azure IoT Edge com contêineres do Windows não terá suporte a partir da versão 1.2 do Azure IoT Edge.
Considere o uso do novo método para executar o IoT Edge em dispositivos Windows, Azure IoT Edge para Linux no Windows.
Se você quiser usar o Azure IoT Edge para Linux no Windows, poderá seguir as etapas no guia de instruções equivalente.
Este artigo descreve duas metodologias. Selecione sua preferência com base na arquitetura de sua solução:
- Autoprovisionar um dispositivo Windows com hardware de TPM físico.
- Autoprovisionar um dispositivo Windows executando um TPM simulado. Recomendamos essa metodologia apenas como um cenário de teste. Um TPM simulado não oferece a mesma segurança que um TPM físico.
As instruções são diferentes com base na metodologia, portanto, verifique se você está na guia correta no futuro.
As tarefas são as seguintes:
- Recupere as informações de provisionamento do dispositivo.
- Crie um registro individual para o dispositivo.
- Instale o runtime do IoT Edge e conecte o dispositivo ao Hub IoT.
Pré-requisitos
Os pré-requisitos são os mesmos para soluções de TPM físicos e TPM virtuais.
Recursos de nuvem
- Um Hub IoT ativo
- Uma instância do Serviço de Provisionamento de Dispositivos no Hub IoT no Azure, vinculada ao seu hub IoT
- Se você não tiver uma instância do Serviço de Provisionamento de Dispositivos, poderá seguir as instruções nas seções Criar um novo Serviço de Provisionamento de Dispositivos no Hub IoT e Vincular o Hub IoT e o Serviço de Provisionamento de Dispositivos do início rápido do Serviço de Provisionamento de Dispositivos no Hub IoT.
- Depois de executar o Serviço de Provisionamento de Dispositivo, copie o valor do Escopo de ID da página de visão geral. Você usa esse valor ao configurar o runtime do Azure IoT Edge.
Requisitos do dispositivo
Computador de desenvolvimento do Windows. Este artigo usa Windows 10.
Observação
O TPM 2.0 é necessário quando você usa o atestado do TPM com o serviço de provisionamento de dispositivos.
Ao usar um TPM, você só pode criar registros de serviço de provisionamento de dispositivos individuais, não de grupo.
Configurar o TPM
Nesta seção, você criará uma ferramenta que poderá usar para recuperar a ID de registro e a chave de endosso do TPM.
Siga as etapas em Configurar um ambiente de desenvolvimento do Windows para instalar e criar o SDK do dispositivo IoT do Azure para C.
Execute os comandos a seguir em uma sessão com privilégios elevados do PowerShell para compilar a ferramenta do SDK que recupera as informações de provisionamento do dispositivo para o TPM.
cd azure-iot-sdk-c\cmake cmake -Duse_prov_client:BOOL=ON .. cd provisioning_client\tools\tpm_device_provision make .\tpm_device_provision
A janela de saída exibe a ID de Registro e a Chave de Endosso do dispositivo. Copie esses valores para uso posterior quando criar um registro individual do dispositivo no serviço de provisionamento de dispositivos.
Dica
Se você não quiser usar a ferramenta SDK para recuperar as informações, será necessário encontrar outra maneira de obter as informações de provisionamento. A chave de endosso, que é exclusiva de cada chip do TPM, é obtida por meio do fabricante do chip do TPM associado a ela. É possível derivar uma ID de registro exclusiva para o dispositivo TPM. Por exemplo, pode criar um hash SHA-256 da chave de endossamento.
Depois que tiver a ID de registro e a chave de endosso, você estará pronto para continuar.
Criar um registro de serviço de provisionamento de dispositivos
Use as informações de provisionamento do TPM para criar um registro individual no serviço de provisionamento de dispositivos.
Ao criar um registro no serviço de provisionamento de dispositivos, você tem a oportunidade de declarar um Estado Inicial do Dispositivo Gêmeo. No dispositivo gêmeo, você pode definir marcas para agrupar dispositivos segundo qualquer métrica que precisar em sua solução, como região, ambiente, local ou tipo de dispositivo. Essas marcas são usadas para criar implantações automáticas.
Dica
As etapas neste artigo são para o portal do Microsoft Azure, mas também é possível criar registros individuais usando a CLI do Azure. Para obter mais informações, confira Registro az iot dps. Como parte do comando da CLI, use o sinalizador habilitado para o Edge para especificar que o registro é para um dispositivo do IoT Edge.
No Portal do Azure, navegue até sua instância do Serviço de Provisionamento de Dispositivos no Hub IoT.
Em Configurações, selecione Gerenciar registros.
Selecione Adicionar registro individual e conclua as seguintes etapas para configurar o registro:
Em Mecanismo, selecione TPM.
Forneça a Chave de endosso e a ID de Registro que você copiou da sua VM ou do dispositivo físico.
Forneça uma ID para seu dispositivo se desejar. Se você não fornecer uma ID de dispositivo, a ID de registro será usada.
Selecione True para declarar que a VM ou o dispositivo físico é um dispositivo do IoT Edge.
Escolha o hub IoT vinculado ao qual deseja conectar o dispositivo ou selecione Vincular ao novo Hub IoT. Você pode escolher vários hubs e o dispositivo será atribuído a um deles, de acordo com a política de atribuição selecionada.
Adicione um valor de marca ao estado inicial do dispositivo gêmeo se desejar. Você pode usar marcas para grupos de dispositivos de destino para a implantação do módulo. Para obter mais informações, confira Implantar módulos do IoT Edge em escala.
Selecione Salvar.
Agora que existe um registro para esse dispositivo, o runtime do IoT Edge pode provisionar automaticamente o dispositivo durante a instalação.
Instalar o Edge IoT
Nesta seção, você preparará a VM ou o dispositivo físico Windows para o IoT Edge. Em seguida, você instalará o IoT Edge.
O Azure IoT Edge depende de um runtime de contêiner compatível com OCI. O Moby, um mecanismo baseado em Moby, está incluído no script de instalação, o que significa que não há etapas adicionais para instalar o mecanismo.
Para instalar o runtime do Azure IoT Edge:
Execute o PowerShell como administrador.
Use uma sessão AMD64 do PowerShell, não o PowerShell(x86). Para saber qual tipo de sessão você está usando, execute o seguinte comando:
(Get-Process -Id $PID).StartInfo.EnvironmentVariables["PROCESSOR_ARCHITECTURE"]
Execute o comando Deploy-IoTEdge, que executa as seguintes tarefas:
- Verifica se o computador Windows está em uma versão compatível
- Ativa o recurso de contêineres
- Baixa o mecanismo Moby e o runtime do IoT Edge
. {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; ` Deploy-IoTEdge
Reinicie o dispositivo, se solicitado.
Ao instalar o IoT Edge em um dispositivo, é possível usar parâmetros adicionais para modificar o processo, incluindo:
- Tráfego direto para passar por um servidor proxy
- Apontar o instalador para um diretório local para instalação offline
Para obter mais informações sobre esses parâmetros adicionais, consulte Scripts do PowerShell para IoT Edge com contêineres do Windows.
Provisionar o dispositivo com a identidade de nuvem dele
Depois que o runtime for instalado no dispositivo, configure o dispositivo com as informações usadas para se conectar ao serviço de provisionamento de dispositivos e ao Hub IoT do Azure.
Conheça o Escopo da ID do serviço de provisionamento de dispositivos e a ID de Registro do dispositivo que foram coletadas nas seções anteriores.
Abra uma janela do PowerShell no modo de administrador. Certifique-se de usar uma sessão AMD64 do PowerShell ao instalar o IoT Edge, não o PowerShell (x86).
O comando
Initialize-IoTEdge
configura o runtime IoT Edge em seu computador. O comando assumirá como padrão o provisionamento manual com contêineres do Windows. Use o sinalizador-Dps
para usar o serviço de Provisionamento de Dispositivos em vez do provisionamento manual.Substitua os valores de espaço reservado
paste_scope_id_here
epaste_registration_id_here
pelos dados coletados anteriormente.. {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; ` Initialize-IoTEdge -Dps -ScopeId paste_scope_id_here -RegistrationId paste_registration_id_here
Verifique se a instalação bem-sucedida
Se o runtime foi iniciado com êxito, acesse o Hub IoT e comece a implantar IoT Edge módulos em seu dispositivo. Use os seguintes comandos em seu dispositivo para verificar o runtime instalado e iniciado com êxito.
Verifique o status do serviço do IoT Edge.
Get-Service iotedge
Examine os logs de serviço pelos últimos 5 minutos usando.
. {Invoke-WebRequest -useb aka.ms/iotedge-win} | Invoke-Expression; Get-IoTEdgeLog
Módulos de execução da lista.
iotedge list
Próximas etapas
O processo de registro do serviço de provisionamento de dispositivos permite definir a ID do dispositivo e as marcas do dispositivo gêmeo ao mesmo tempo quando você provisiona o novo dispositivo. Você pode usar esses valores e o gerenciamento automático de dispositivos para direcionar a dispositivos individuais ou grupos de dispositivos.
Saiba como implantar e monitorar os módulos de IoT Edge em escala usando o portal do Azure ou a CLI do Azure.