Criar e provisionar dispositivos IoT Edge em escala com um TPM no Windows
Aplica-se a: IoT Edge 1.1
Importante
A data de fim do suporte do IoT Edge 1.1 foi 13 de dezembro de 2022. Consulte o Ciclo de Vida de Produtos da Microsoft para obter informações sobre como é suportado este 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 provisionar automaticamente um dispositivo do Azure IoT Edge para Windows usando um TPM (Trusted Platform Module). Você pode provisionar automaticamente dispositivos IoT Edge com o serviço de provisionamento de dispositivo 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.
Nota
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 usar o novo método para executar o IoT Edge em dispositivos Windows, Azure IoT Edge para Linux no Windows.
Se quiser usar o Azure IoT Edge para Linux no Windows, siga as etapas no guia de instruções equivalente.
Este artigo descreve duas metodologias. Selecione a sua preferência com base na arquitetura da sua solução:
- Autoprovisionar um dispositivo Windows com hardware TPM físico.
- Autoprovisionar um dispositivo Windows executando um TPM simulado. Recomendamos esta 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 diferem com base na sua metodologia, por isso certifique-se de que está no separador correto no futuro.
As tarefas são as seguintes:
- Recupere as informações de provisionamento do seu dispositivo.
- Crie um registro individual para o dispositivo.
- Instale o tempo de execução do IoT Edge e conecte o dispositivo ao Hub IoT.
Pré-requisitos
Os pré-requisitos são os mesmos para soluções TPM físicas e virtuais.
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
Uma máquina de desenvolvimento Windows. Este artigo usa o Windows 10.
Nota
O TPM 2.0 é necessário quando você usa o atestado TPM com o serviço de provisionamento de dispositivo.
Você só pode criar registros de serviço de provisionamento de dispositivo individuais, não de grupo, quando usar um TPM.
Configurar o TPM
Nesta seção, você cria uma ferramenta que pode ser usada para recuperar a ID de registro e a chave de endosso do seu 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 elevada do PowerShell para criar a ferramenta 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 o ID de registro do dispositivo e a chave de endosso. Copie esses valores para uso posterior quando você criar um registro individual para seu dispositivo no serviço de provisionamento de dispositivo.
Gorjeta
Se você não quiser usar a ferramenta SDK para recuperar as informações, precisará encontrar outra maneira de obter as informações de provisionamento. A chave de endosso, que é exclusiva para cada chip TPM, é obtida do fabricante do chip TPM associado a ele. Você pode derivar um ID de registro exclusivo para seu dispositivo TPM. Por exemplo, você pode criar um hash SHA-256 da chave de endosso.
Depois de ter seu ID de registro e chave de endosso, você estará pronto para continuar.
Criar um registro de serviço de provisionamento de dispositivo
Use as informações de provisionamento do TPM para criar um registro individual no serviço de provisionamento de dispositivo.
Ao criar um registro no serviço de provisionamento de dispositivo, 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 usada em sua solução, como região, ambiente, local ou tipo de dispositivo. Essas tags são usadas para criar implantações automáticas.
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.
No portal do Azure, vá para sua instância do serviço de provisionamento de dispositivo do Hub IoT.
Em Configurações, selecione Gerenciar inscrições.
Selecione Adicionar inscrição 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 dispositivo físico.
Forneça um ID para o seu dispositivo, se desejar. Se você não fornecer um ID de dispositivo, o ID de registro será usado.
Selecione True para declarar que sua VM ou dispositivo físico é um dispositivo IoT Edge.
Escolha o hub IoT vinculado ao qual você deseja conectar seu 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 tag ao Estado Gêmeo Inicial do Dispositivo, se desejar. Você pode usar tags para segmentar grupos de dispositivos para implantação de módulos. Para obter mais informações, consulte Implantar módulos do IoT Edge em escala.
Selecione Guardar.
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 VM do Windows ou dispositivo físico para o IoT Edge. Em seguida, instale o IoT Edge.
O Azure IoT Edge depende de um tempo de execução de contêiner compatível com OCI. 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 tempo de execução do IoT Edge:
Execute o PowerShell como um administrador.
Use uma sessão AMD64 do PowerShell, não o PowerShell(x86). Se não tiver certeza de qual tipo de sessão 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 a sua máquina Windows está numa versão suportada
- Ativa o recurso de contêineres
- Baixa o mecanismo moby e o tempo de execução 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, você pode usar parâmetros adicionais para modificar o processo, incluindo:
- Tráfego direto para passar por um servidor proxy
- Aponte 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 sua identidade na nuvem
Depois que o tempo de execução for instalado no 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.
Conheça o ID do serviço de provisionamento do dispositivo, o escopo e o ID de registro do dispositivo que foram reunidos 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
Initialize-IoTEdge
comando configura o tempo de execução do IoT Edge em sua máquina. O comando assume como padrão o provisionamento manual com contêineres do Windows. Use o-Dps
sinalizador para usar o serviço de provisionamento de dispositivo em vez do provisionamento manual.Substitua os valores de espaço reservado para
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
Verificar se a instalação foi bem-sucedida
Se o tempo de execução tiver sido iniciado com êxito, vá para o hub IoT e comece a implantar módulos do IoT Edge no seu dispositivo. Use os seguintes comandos no seu dispositivo para verificar se o tempo de execução foi instalado e iniciado com êxito.
Verifique o estado do serviço IoT Edge.
Get-Service iotedge
Examine os logs de serviço dos últimos 5 minutos.
. {Invoke-WebRequest -useb aka.ms/iotedge-win} | Invoke-Expression; Get-IoTEdgeLog
Listar módulos em execução.
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 ao mesmo tempo em que provisiona o novo dispositivo. Você pode usar esses valores para direcionar dispositivos individuais ou grupos de dispositivos usando o gerenciamento automático de dispositivos.
Saiba como implantar e monitorar módulos do IoT Edge em escala usando o portal do Azure ou a CLI do Azure.