Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:
IoT Edge 1.5
Importante
O IoT Edge 1.5 LTS é a versão com suporte. O IoT Edge 1.4 LTS atingirá o fim da vida útil em 12 de novembro de 2024. Se você estiver em uma versão anterior, confira Atualizar o IoT Edge.
Este artigo fornece instruções detalhadas para configurar um dispositivo IoT Edge como um gateway transparente para que outros dispositivos possam se conectar ao Hub IoT. Neste artigo, o gateway do IoT Edge significa um dispositivo IoT Edge configurado como um gateway transparente. Para obter mais informações, confira Como um dispositivo IoT Edge pode ser usado como um gateway.
Observação
Dispositivos downstream não podem usar o upload de arquivo.
Há três etapas principais para configurar uma conexão de gateway transparente. Este artigo aborda a primeira etapa:
- Configure o dispositivo de gateway como um servidor para que os dispositivos downstream possam se conectar com segurança. Configure o gateway para receber mensagens de dispositivos downstream e roteá-las para o destino certo.
- Crie uma identidade de dispositivo para o dispositivo downstream para que ele possa se autenticar com o Hub IoT. Configure o dispositivo downstream para enviar mensagens por meio do dispositivo de gateway. Para essas etapas, confira Autenticar um dispositivo downstream no Hub IoT do Azure.
- Conecte o dispositivo downstream ao dispositivo de gateway e comece a enviar mensagens. Para obter mais informações, confira Conectar um dispositivo downstream a um gateway do Azure IoT Edge.
Para atuar como um gateway, um dispositivo precisa se conectar com segurança aos seus dispositivos downstream. O Azure IoT Edge permite que você use a PKI (infraestrutura de chave pública) para configurar conexões seguras entre dispositivos. Nesse caso, um dispositivo downstream se conecta a um dispositivo do IoT Edge atuando como um gateway transparente. Para manter as coisas seguras, o dispositivo downstream verifica a identidade do dispositivo de gateway. Essa verificação ajuda a impedir que os dispositivos se conectem a gateways mal-intencionados.
Um dispositivo downstream pode ser qualquer aplicativo ou plataforma com uma identidade criada no Hub IoT do Azure. Esses aplicativos geralmente usam o SDK do dispositivo IoT do Azure. Um dispositivo downstream pode até ser um aplicativo em execução no próprio dispositivo de gateway do IoT Edge.
Você pode criar qualquer infraestrutura de certificado que permite a relação de confiança necessária para sua topologia de dispositivo/gateway. Neste artigo, usamos a mesma configuração de certificado que a segurança de AC X.509 no Hub IoT. Essa configuração usa um certificado de CA X.509 associado a um hub IoT específico (a CA raiz do Hub IoT), uma série de certificados assinados por essa CA e uma CA para o dispositivo IoT Edge.
Observação
O termo Certificado de Autoridade de Certificação raiz usado em todos esses artigos refere-se ao certificado público da mais alta autoridade da cadeia de certificados PKI e não necessariamente à raiz do certificado de uma autoridade de certificação sindicalizada. Em muitos casos, na verdade, é um certificado público de autoridade certificadora intermediária.
Siga estas etapas para criar os certificados e instalá-los nos locais certos no gateway. Use qualquer computador para gerar os certificados e, em seguida, copie-os para o dispositivo IoT Edge.
Pré-requisitos
Você precisa de um dispositivo Linux ou Windows com o IoT Edge instalado.
Se você não tiver um dispositivo pronto, crie um em uma máquina virtual do Azure. Siga as etapas em Implantar seu primeiro módulo IoT Edge em um dispositivo virtual Linux para criar um Hub IoT, criar uma máquina virtual e configurar o runtime do IoT Edge.
Configurar o certificado de autoridade do Edge
Todos os gateways do IoT Edge precisam de um certificado de assinatura do Edge instalado neles. O daemon de segurança do IoT Edge usa o certificado de assinatura do Edge para assinar um certificado de assinatura de carga de trabalho que, por sua vez, assina um certificado do servidor para o hub do IoT Edge. O gateway apresenta o seu certificado do servidor para o dispositivo downstream durante a iniciação da conexão. O dispositivo downstream verifica se o certificado do servidor faz parte de uma cadeia de certificados que se acumula no Certificado de Autoridade de Certificação raiz. Esse processo permite que o dispositivo downstream confirme se o gateway vem de uma fonte confiável. Para obter mais informações, confira Entender como o Azure IoT Edge usa certificados.
O certificado de AC raiz e o certificado de AC do Edge (com sua chave privada) devem estar no dispositivo de gateway do IoT Edge e definidos no arquivo de configuração do IoT Edge. Lembre-se de que, nesse caso, o Certificado de Autoridade de Certificação raiz significa a autoridade de certificação mais alta para esse cenário do IoT Edge. O certificado CA do Edge Gateway e os certificados de dispositivos downstream devem convergir para o mesmo certificado CA raiz.
Dica
O processo de instalação do certificado de assinatura raiz e do certificado de assinatura do Edge em um dispositivo IoT Edge também é explicado com mais detalhes em Gerenciar certificados em um dispositivo IoT Edge.
Prepare os seguintes arquivos:
- Certificado de AC raiz
- Certificado de Autoridade de Certificação de borda
- Chave privada da AC do dispositivo
Para cenários de produção, gere esses arquivos com sua própria autoridade de certificação. Para cenários de desenvolvimento e teste, você pode usar certificados de demonstração.
Criar certificados de demonstração
Se você não tiver sua própria autoridade de certificação e quiser usar certificados de demonstração, siga as instruções em Criar certificados de demonstração a fim de testar os recursos do dispositivo IoT Edge para criar seus arquivos. Nessa página, siga estas etapas:
- Configure os scripts para gerar certificados em seu dispositivo.
- Criar um Certificado de Autoridade de Certificação raiz. No final, você tem um arquivo
<path>/certs/azure-iot-test-only.root.ca.cert.pemde certificado de AC raiz. - Crie certificados de assinatura do Edge. No final, você tem um certificado de CA Edge
<path>/certs/iot-edge-device-ca-<cert name>-full-chain.cert.peme sua chave privada<path>/private/iot-edge-device-ca-<cert name>.key.pem.
Copiar certificados para o dispositivo
Verifique se o certificado atende aos requisitos de formato.
Se você criou os certificados em um computador diferente, copie-os para o dispositivo IoT Edge. Use uma unidade USB, um serviço como o Azure Key Vault ou um comando como cópia de arquivo seguro.
Mova os arquivos para o diretório preferencial para certificados e chaves:
/var/aziot/certspara certificados e/var/aziot/secretschaves.Crie os diretórios de certificados e chaves e defina as permissões. Armazene seus certificados e chaves no diretório preferencial
/var/aziot:/var/aziot/certspara certificados e/var/aziot/secretschaves.# If the certificate and keys directories don't exist, create, set ownership, and set permissions sudo mkdir -p /var/aziot/certs sudo chown aziotcs:aziotcs /var/aziot/certs sudo chmod 755 /var/aziot/certs sudo mkdir -p /var/aziot/secrets sudo chown aziotks:aziotks /var/aziot/secrets sudo chmod 700 /var/aziot/secretsAltere a propriedade e as permissões para os certificados e as chaves.
# Give aziotcs ownership to certificates # Read and write for aziotcs, read-only for others sudo chown -R aziotcs:aziotcs /var/aziot/certs sudo find /var/aziot/certs -type f -name "*.*" -exec chmod 644 {} \; # Give aziotks ownership to private keys # Read and write for aziotks, no permission for others sudo chown -R aziotks:aziotks /var/aziot/secrets sudo find /var/aziot/secrets -type f -name "*.*" -exec chmod 600 {} \;
Configurar certificados no dispositivo
Abra o dispositivo IoT Edge e depois o arquivo de configuração:
/etc/aziot/config.toml. Se você usar o IoT Edge para Linux no Windows, conecte-se à máquina virtual EFLOW usando o cmdlet doConnect-EflowVmPowerShell.Dica
Se o arquivo de configuração ainda não existir no seu dispositivo, use
/etc/aziot/config.toml.edge.templatecomo modelo para criar um.Localize o parâmetro
trust_bundle_cert. Remova a marca de comentário dessa linha e forneça o URI do arquivo do Certificado de Autoridade de Certificação raiz no seu dispositivo.Localize a seção
[edge_ca]do arquivo. Remova a marca de comentário das três linhas desta seção e forneça os URIs dos arquivos de certificado e chave como valores para as seguintes propriedades:- certificado: certificado de assinatura do Edge
- pk: chave privada da AC do dispositivo
Salve e feche o arquivo.
Aplique suas alterações.
sudo iotedge config apply
Implantar o edgeHub e rotear mensagens
Os dispositivos downstream enviam telemetria e mensagens para o dispositivo de gateway, onde o módulo do hub do IoT Edge roteia as informações para outros módulos ou para o Hub IoT. Para preparar o dispositivo de gateway para essa função, verifique se:
O módulo Hub do IoT Edge está implantado no dispositivo.
Quando você instala o IoT Edge em um dispositivo, apenas um módulo do sistema é iniciado automaticamente: o agente do IoT Edge. Quando você cria a primeira implantação para um dispositivo, o segundo módulo do sistema e o hub do IoT Edge também são iniciados. Se o módulo edgeHub não estiver em execução no seu dispositivo, crie uma implantação para o seu dispositivo.
O módulo Hub do IoT Edge tem rotas configuradas para lidar com mensagens de entrada de dispositivos downstream.
O dispositivo de gateway precisa de uma rota para lidar com mensagens de dispositivos downstream ou essas mensagens não são processadas. Você pode enviar as mensagens para os módulos no dispositivo de gateway ou diretamente para o Hub IoT.
Para implantar o módulo do hub do IoT Edge e configurar rotas para lidar com mensagens de entrada de dispositivos downstream, siga estas etapas:
No portal do Azure, vá para o hub IoT.
Vá para Dispositivos no menu Gerenciamento de dispositivos e selecione seu dispositivo IoT Edge para usar como um gateway.
Selecione Definir Módulos.
Na página Módulos , adicione todos os módulos que você deseja implantar no dispositivo de gateway. Neste artigo, você está focado em configurar e implantar o módulo edgeHub, que não precisa ser definido explicitamente nesta página.
Selecione Avançar: rotas.
Na página Rotas , verifique se há uma rota para lidar com mensagens de dispositivos downstream. Por exemplo:
Uma rota que envia todas as mensagens, seja de um módulo ou de um dispositivo downstream, para o Hub IoT:
-
Nome:
allMessagesToHub -
Valor:
FROM /messages/* INTO $upstream
-
Nome:
Uma rota que envia todas as mensagens de todos os dispositivos downstream para o Hub IoT:
-
Nome:
allDownstreamToHub -
Valor:
FROM /messages/* WHERE NOT IS_DEFINED ($connectionModuleId) INTO $upstream
Essa rota funciona porque, ao contrário das mensagens dos módulos IoT Edge, as mensagens de dispositivos downstream não têm uma ID de módulo associada a elas. Usar a cláusula WHERE da rota permite filtrar todas as mensagens com essa propriedade do sistema.
Para saber mais sobre o roteamento de mensagens, consulte Implantar módulos e estabelecer rotas.
-
Nome:
Depois de criar sua rota ou rotas, selecione Examinar + criar.
Na página Examinar + criar escolha Criar.
Abrir portas no dispositivo de gateway
Os dispositivos IoT Edge padrão não precisam de nenhuma conectividade de entrada para funcionar, pois toda a comunicação com o Hub IoT é feita por meio de conexões de saída. Os dispositivos de gateway são diferentes porque precisam receber mensagens dos dispositivos downstream deles. Se um firewall estiver entre os dispositivos downstream e o dispositivo de gateway, a comunicação também precisará ser possível por meio do firewall.
Para um cenário de gateway funcionar, pelo menos um dos protocolos compatíveis com o Hub do IoT Edge deve estar aberto para o tráfego de entrada de dispositivos downstream. Os protocolos com suporte são MQTT, AMQP, HTTPS, MQTT sobre WebSockets e AMQP sobre WebSockets.
| Porta | Protocolo |
|---|---|
| 8883 | MQTT |
| 5671 | AMQP |
| 443 | HTTPS MQTT+WS AMQP+WS |
Próximas etapas
Agora que você configurou um dispositivo do IoT Edge como um gateway transparente, configure seus dispositivos downstream para confiar no gateway e enviar mensagens para ele. Prossiga para Autenticar um dispositivo downstream no Hub IoT do Azure para ver as próximas etapas da configuração do seu cenário de gateway transparente.