Как защитить ConnectionStrings в коде модуля Azure IoT Edge?

Ввод строки подключения в файле конфигурации (как показано в официальном примере: https://github.com/Azure-Samples/iot-edge-samples/blob/master/js/simple/gw.cloud.config.json#L38) кажется неправильным.

Переменные среды могут быть предоставлены модулям с помощью Edge Runtime (https://github.com/MicrosoftDocs/azure-docs/blob/master/articles/iot-edge/iot-edge-runtime.md) но насколько я могу судить нет возможности изменить его поведение.


person Javier Moreno    schedule 09.04.2018    source источник


Ответы (1)


В первом документе (https://github.com/Azure-Samples/iot-edge-samples/blob/master/js/simple/gw.cloud.config.json#L38), в нем показано, как настроить Среда выполнения IoT Edge (gw. [Local | cloud] .config.json). Вы можете обновить gw.cloud.config.json, заменив <IoT Hub device connection string> фактической строкой подключения устройства IoT Hub, чтобы установить соединение между приложением IoT Edge и Azure IoT Hub.

В следующем документе (https://github.com/MicrosoftDocs/azure-docs/blob/master/articles/iot-edge/iot-edge-runtime.md), вы также можете настроить среду выполнения IoT Edge, выполнив следующую команду. Вы найдете настройку строки подключения в C:\ProgramData\azure-iot-edge\config\config.json.

iotedgectl setup --connection-string "{строка подключения устройства}" --nopass

person Michael Xu - MSFT    schedule 10.04.2018
comment
Может быть, я что-то упустил, но: gw.cloud.config.json не является ли частью исходного кода проекта, который будет развернут на устройстве? Если я храню там свои учетные данные, я фактически встраиваю строку подключения в файлы кода. Вероятно, дело в том, что я не использую Edge Hub (на самом деле я не знал о его существовании), и я сделал вывод из исходного кода образца, что модуль должен напрямую взаимодействовать с Azure Iot Hub. Я не нашел упоминания о настройке iotedgectl во второй ссылке, которую вы предоставили, но думаю, что я смогу управлять собой оттуда. Спасибо, Майкл! - person Javier Moreno; 10.04.2018
comment
Что ж, вы указали мне правильное направление: контейнер времени выполнения IoT Edge предоставляет строку подключения устройства через переменную DeviceConnectionString env. Мне просто нужно использовать это в коде модуля. - person Javier Moreno; 10.04.2018