Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: IoT Edge 1.5
Внимание
IoT Edge 1.5 LTS является поддерживаемым выпуском. IoT Edge 1.4 LTS заканчивается жизнью с 12 ноября 2024 года. Если вы используете более ранний выпуск, см. статью Обновление IoT Edge.
В настоящей статье содержатся пошаговые инструкции по автоматическому обеспечению одного или нескольких устройств Linux IoT Edge с помощью сертификатов X.509. Автоматическая подготовка устройств Azure IoT Edge с помощью службы подготовки устройств Центра Интернета вещей Azure (DPS). Если вы не знакомы с автоматической подготовкой, ознакомьтесь с обзором подготовки , прежде чем продолжить.
Ниже приведены действия по подготовке устройств IoT Edge с помощью сертификатов X.509:
- Создание сертификатов и ключей.
- Создайте отдельную регистрацию для одного устройства или группы для набора устройств.
- Установка среды выполнения IoT Edge и регистрация устройства в Центре Интернета вещей.
Сертификаты X.509 позволяют масштабировать производство и упростить обеспечение устройств. Сертификаты X.509 обычно организованы в цепочки доверия. Цепочка начинается с самозаверенного или доверенного корневого сертификата, а каждый сертификат в цепочке подписывает нижестоящий сертификат. Этот шаблон создает делегированную цепочку доверия из корневого сертификата с помощью каждого промежуточного сертификата к окончательному нижнему сертификату устройства, установленному на устройстве.
Совет
Если устройство имеет аппаратный модуль безопасности (HSM), например TPM 2.0, сохраните ключи X.509 в HSM безопасно. Узнайте, как реализовать автоматизированное развертывание в крупном масштабе по этим инструкциям с помощью примера iotedge-tpm2cloud.
Необходимые компоненты
Облачные ресурсы
- Активный Центр Интернета вещей
- Экземпляр службы подготовки устройств Центр Интернета вещей в Azure, связанный с центром Интернета вещей
- Если у вас нет экземпляра службы подготовки устройств, следуйте инструкциям в кратком руководстве по созданию новой службы подготовки устройств Центр Интернета вещей и связыванию центра Интернета вещей и служб подготовки устройств в кратком руководстве по Центр Интернета вещей службе подготовки устройств.
- После запуска службы подготовки устройств скопируйте значение области идентификатора на странице обзора. Это значение используется при настройке среды выполнения IoT Edge.
Требования к устройствам
Используйте физическое или виртуальное устройство Linux в качестве устройства IoT Edge.
Создание сертификатов удостоверений устройств
Сертификат удостоверения устройства — это подчиненный сертификат устройства, который подключается через цепочку сертификатов доверия к верхнему сертификату центра сертификации X.509 (ЦС). Сертификат удостоверения устройства должен иметь общее имя (CN) для идентификатора устройства, который должен иметь устройство в Центре Интернета вещей.
Сертификаты удостоверений устройств используются только для подготовки устройства IoT Edge и проверки подлинности устройства в Центре Интернета вещей Azure. Эти сертификаты не являются сертификатами подписывания. Сертификаты ЦС, которые устройство IoT Edge представляет модулям или подчиненным устройствам, используются для проверки. Дополнительные сведения см. в разделе об использовании сертификатов Azure IoT Edge.
После создания сертификата удостоверения устройства у вас есть два файла: файл .cer
или .pem
с общедоступной частью сертификата и файл .cer
или .pem
с закрытым ключом. Если вы используете регистрацию групп в DPS, вам также нужна общедоступная часть промежуточного или корневого сертификата ЦС в той же цепочке сертификатов доверия.
Эти файлы необходимы для настройки автоматической подготовки с помощью X.509:
- Сертификат удостоверения устройства и сертификат его закрытого ключа. Сертификат удостоверения устройства отправляется в DPS при создании отдельной регистрации. Закрытый ключ передается в среду выполнения IoT Edge.
- Полный сертификат цепочки, содержащий как минимум идентификацию устройства и промежуточные сертификаты. Полный сертификат цепочки передается в среду выполнения IoT Edge.
- Промежуточный или корневой сертификат ЦС из цепочки доверия сертификатов. Этот сертификат отправляется в службу DPS, если вы создаете групповую регистрацию.
Использование тестовых сертификатов (необязательно)
Если у вас нет центра сертификации для создания новых сертификатов удостоверений и хотите попробовать этот сценарий, используйте сценарии в репозитории git Azure IoT Edge для создания тестовых сертификатов. Используйте эти сертификаты только для тестирования разработки. Не используйте их в рабочей среде.
Чтобы создать тестовые сертификаты, выполните действия, описанные в статье Создание демонстрационных сертификатов для тестирования функций устройств IoT Edge. Выполните два обязательных раздела, чтобы настроить скрипты создания сертификатов и создать корневой сертификат ЦС. Затем выполните действия по созданию сертификата удостоверения устройства. По завершении у вас есть следующая цепочка сертификатов и пара ключей:
<WRKDIR>/certs/iot-edge-device-identity-<name>-full-chain.cert.pem
<WRKDIR>/private/iot-edge-device-identity-<name>.key.pem
На устройстве IoT Edge требуются оба сертификата. Если вы используете индивидуальную регистрацию в DPS, загрузите файл .cert.pem
. Если вы используете регистрацию групп в DPS, также загрузите промежуточный или корневой сертификат ЦС из той же цепочки доверия. Если вы используете демонстрационные сертификаты, используйте <WRKDIR>/certs/azure-iot-test-only.root.ca.cert.pem
сертификат для регистрации групп.
Создание регистрации в Службе подготовки устройств к добавлению в Центр Интернета вещей
Используйте созданные сертификаты и ключи для создания регистрации в DPS для одного или нескольких устройств IoT Edge.
Если вы хотите подготовить одно устройство IoT Edge, создайте отдельную регистрацию. Если требуется подготовка нескольких устройств, выполните действия по созданию регистрации группы DPS.
При регистрации в Службе подготовки устройств к добавлению в Центр Интернета вещей есть возможность объявить Первоначальное состояние двойника устройства. В двойнике устройства можно задать теги для группировки устройств по любой требуемой для решения метрике, например по региону, среде, расположению или типу устройства. Эти теги используются для создания автоматических развертываний.
Дополнительные сведения о регистрации в службе подготовки устройств см. в статье "Управление регистрацией устройств".
Создание индивидуальной регистрации DPS
Отдельные регистрации принимают открытую часть сертификата удостоверения устройства и сопоставляют ее с сертификатом на устройстве.
Совет
Действия, описанные в этой статье, предназначены для портал Azure, но вы также можете создать отдельные регистрации с помощью Azure CLI. Дополнительные сведения см. в разделе az iot dps enrollment. В команде интерфейса командной строки с помощью флага edge-enabled укажите, что регистрация предназначена для устройства IoT Edge.
В портал Azure перейдите к экземпляру службы подготовки устройств Центр Интернета вещей.
В разделе Параметрывыберите Управление регистрациями.
Выберите Добавить отдельную регистрацию и выполните следующие действия для настройки регистрации.
Механизм: выберите X.509.
Файл первичного сертификата PEM или CER: отправьте открытый файл из сертификата удостоверения устройства. Если вы использовали сценарии для создания тестового сертификата, выберите следующий файл:
<WRKDIR>\certs\iot-edge-device-identity-<name>.cert.pem
Идентификатор устройства в Центре Интернета вещей: если необходимо, укажите идентификатор устройства. Идентификаторы устройств можно использовать, чтобы указать отдельное устройство для развертывания модуля. Если не указать идентификатор устройства, используется общее имя (CN) в сертификате X.509.
Устройство IoT Edge: выберите значение True, чтобы указать, что это регистрация устройства IoT Edge.
Выберите центры Интернета вещей, которым может быть назначено это устройство: выберите связанный центр Интернета вещей, к которому вы хотите подключить устройство. Можно выбрать несколько центров, и устройство будет назначено одному из них в соответствии с выбранной политикой распределения.
Начальное состояние двойника устройства: при желании добавьте значение тега в двойник устройства. Теги можно использовать для указания групп устройств для автоматического развертывания. Например:
{ "tags": { "environment": "test" }, "properties": { "desired": {} } }
Выберите Сохранить.
В разделе "Управление регистрацией" можно просмотреть идентификатор регистрации для только что созданной регистрации. Запишите его, так как его можно использовать при подготовке устройства.
После создания регистрации для устройства среда выполнения IoT Edge может автоматически подготавливать устройство во время установки.
Установка Edge Интернета вещей
В этом разделе описана подготовка виртуальной машины Linux или физического устройства для IoT Edge. Затем установите IoT Edge.
Выполните следующие команды, чтобы добавить репозиторий пакетов, а затем добавить ключ подписи пакета Майкрософт в список доверенных ключей.
Внимание
30 июня 2022 года Raspberry Pi OS Stretch был исключён из списка поддержки операционных систем первого уровня. Чтобы избежать потенциальных уязвимостей безопасности, обновите операционную систему узла до Bullseye.
Для поддерживаемых операционных систем платформы уровня 2 пакеты установки доступны в выпусках Azure IoT Edge. Посмотрите этапы установки в автономная установка или установка определенной версии (необязательно).
Установка может выполняться с помощью нескольких команд. Откройте терминал и выполните следующие команды:
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
Дополнительные сведения о версиях операционной системы см . на поддерживаемых платформах Azure IoT Edge.
Примечание.
Использование программных пакетов Azure IoT Edge регулируется условиями лицензии, содержащейся в самих пакетах (в usr/share/doc/{package-name}
или в каталоге LICENSE
). Ознакомьтесь с условиями лицензии перед использованием пакета. Установка и использование пакета означают, что вы принимаете эти условия. Если вы с ними не согласны, не используйте пакет.
Установка платформы контейнеров
Служба Azure IoT Edge использует среду выполнения контейнера, совместимую с OCI. В рабочих сценариях рекомендуется использовать подсистему Moby. Модуль Moby — это обработчик контейнеров, официально поддерживаемый IoT Edge. Образы контейнеров Docker (Community Edition или Enterprise Edition) совместимы со средой выполнения Moby. Если вы используете оснастки Ubuntu Core, оснастка Docker обслуживается компанией Canonical и поддерживается для производственных сценариев.
Установите модуль Moby.
sudo apt-get update; \
sudo apt-get install moby-engine
По умолчанию подсистема контейнеров не задает ограничения размера журнала контейнеров. С течением времени эта ситуация может привести к заполнению устройства журналами и нехватке места на диске. Однако вы можете настроить журнал для локального отображения, хотя это необязательно. Дополнительные сведения о настройке ведения журнала см. в статье "Подготовка к развертыванию решения IoT Edge в рабочей среде".
Ниже показано, как настроить контейнер для использования local
драйвера ведения журнала в качестве механизма ведения журнала.
Создание или изменение существующего файла конфигурации управляющей программы Docker
sudo nano /etc/docker/daemon.json
Задайте драйвер ведения журнала по умолчанию драйверу
local
ведения журнала, как показано в примере.{ "log-driver": "local" }
Перезапустите обработчик контейнеров, чтобы изменения вступили в силу.
sudo systemctl restart docker
Установка среды выполнения IoT Edge
Служба IoT Edge обеспечивает безопасность и соответствие стандартам безопасности на устройстве IoT Edge. Служба запускается при каждой загрузке устройства и перезагружает устройство, запуская остальные компоненты среды выполнения IoT Edge.
Примечание.
Начиная с версии 1.2 служба удостоверений Azure IoT обрабатывает подготовку и управление удостоверениями для IoT Edge и для других компонентов устройств, которые должны взаимодействовать с Центром Интернета вещей.
Действия, описанные в этом разделе, представляют собой типичный процесс установки последней версии IoT Edge на устройстве с подключением к Интернету. Если необходимо установить определенную версию, например предварительную версию, или необходимо установить в автономном режиме, выполните действия по установке автономной или определенной версии далее в этой статье.
Совет
Если у вас уже есть устройство IoT Edge с более старой версией и хотите обновить до последней версии, выполните действия, описанные в разделе "Обновление IoT Edge". Более поздние версии достаточно отличаются от предыдущих версий IoT Edge, которые необходимы для обновления конкретных шагов.
Установите последнюю версию IoT Edge и пакет службы удостоверений Интернета вещей (если вы еще не обновлены):
22.04:
sudo apt-get update; \ sudo apt-get install aziot-edge
20.04:
sudo apt-get update; \ sudo apt-get install aziot-edge
Предоставление облачного удостоверения устройству
После установки среды выполнения на устройстве настройте устройство с информацией, которую он использует для подключения к службе подготовки устройств и Центру Интернета вещей.
Убедитесь, что у вас есть следующие сведения:
- Значение области идентификаторов DPS. Получите это значение на странице обзора вашего экземпляра DPS в портале Azure.
- Файл цепочки сертификатов удостоверений устройств на устройстве.
- Файл ключа удостоверений устройств на устройстве.
Создайте файл конфигурации для устройства на основе файла шаблона, включенного в установку IoT Edge.
sudo cp /etc/aziot/config.toml.edge.template /etc/aziot/config.toml
Откройте файл конфигурации на устройстве IoT Edge.
sudo nano /etc/aziot/config.toml
Найдите в файле раздел подготовки. Раскомментируйте строки для подготовки DPS с помощью сертификата X.509 и убедитесь, что все остальные строки подготовки закомментированы.
# DPS provisioning with X.509 certificate
[provisioning]
source = "dps"
global_endpoint = "https://global.azure-devices-provisioning.net"
id_scope = "SCOPE_ID_HERE"
# Uncomment to send a custom payload during DPS registration
# payload = { uri = "PATH_TO_JSON_FILE" }
[provisioning.attestation]
method = "x509"
registration_id = "REGISTRATION_ID_HERE"
identity_cert = "DEVICE_IDENTITY_CERTIFICATE_HERE" # For example, "file:///var/aziot/device-id.pem"
identity_pk = "DEVICE_IDENTITY_PRIVATE_KEY_HERE" # For example, "file:///var/aziot/device-id.key"
# auto_reprovisioning_mode = Dynamic
Обновите значение
id_scope
, с идентификатором области, который вы скопировали из вашего экземпляра DPS.registration_id
Введите для устройства идентификатор устройства, который имеет устройство в Центре Интернета вещей. Идентификатор регистрации должен соответствовать общему имени сертификата удостоверения.Обновите значения параметров
identity_cert
иidentity_pk
, указав сведения о сертификате и ключе.Вы можете указать значение сертификата удостоверения в виде URI файла или динамически выдавать его с помощью EST или локального центра сертификации. Раскомментируйте только одну строку в зависимости от используемого формата.
Вы можете указать значение закрытого ключа удостоверения в виде URI файла или URI PKCS#11. Раскомментируйте только одну строку в зависимости от используемого формата.
Если вы используете любые URI PKCS#11, найдите раздел PKCS#11 в файле конфигурации и введите сведения о конфигурации PKCS#11.
Дополнительные сведения о сертификатах см. в разделе "Управление сертификатами IoT Edge".
Дополнительные сведения о параметрах конфигурации подготовки см. в разделе "Настройка параметров устройства IoT Edge".
При необходимости найдите раздел режима автоматической повторной подготовки файла.
auto_reprovisioning_mode
Используйте параметр для настройки поведения повторной подготовки устройства. Динамический — повторное конфигурирование, когда устройство обнаруживает, что оно могло быть перемещено из одного Центра Интернета вещей в другой. Это значение по умолчанию. AlwaysOnStartup — повторное создание при перезагрузке устройства или сбое приводит к перезапуску управляющей программы. OnErrorOnly — никогда не активируйте автоматическую подготовку устройства. Каждый режим имеет неявное резервное переподключение устройства, если устройство не может подключиться к IoT Hub во время подготовки идентификации из-за проблем с подключением. Дополнительные сведения см. в разделе Основные понятия повторной подготовки устройств в Центре Интернета вещей.При необходимости раскомментируйте
payload
параметр, чтобы указать путь к локальному JSON-файлу. Содержимое файла отправляется в DPS в качестве дополнительных данных при регистрации устройства. Это полезно для пользовательского выделения. Например, если вы хотите выделить устройства на основе идентификатора модели IoT самонастраивающийся без вмешательства человека.Сохранить и закрыть файл.
Примените изменения конфигурации, внесенные в IoT Edge.
sudo iotedge config apply
Проверка установки
Если среда выполнения запущена успешно, перейдите в Центр Интернета вещей и начните развертывание модулей IoT Edge на устройстве.
Убедитесь, что используется индивидуальная регистрация, созданная в службе подготовки устройств. Перейдите к вашему экземпляру службы подготовки устройств в портале Azure. Откройте данные о записи для созданной вами индивидуальной записи. Состояние регистрации назначено, а идентификатор устройства указан.
Выполните эти команды на устройстве, чтобы убедиться, что IoT Edge установлен и запущен.
Проверьте состояние службы IoT Edge.
sudo iotedge system status
Просмотр журналов служб.
sudo iotedge system logs
Просмотрите список запущенных модулей.
sudo iotedge list
Следующие шаги
Процесс регистрации службы подготовки устройств позволяет задать идентификатор устройства и теги двойников устройств при подготовке нового устройства. Используйте эти значения для целевых отдельных устройств или групп устройств с автоматическим управлением устройствами. Узнайте, как развертывать и отслеживать модули IoT Edge в масштабе с помощью портала Azure или Azure CLI.