Создание и подготовка устройств IoT Edge в масштабе в Linux с помощью симметричного ключа

Область применения:IoT Edge 1.5 проверка mark IoT Edge 1.5 IoT Edge 1.4 проверка mark IoT Edge 1.4

Внимание

Поддерживаются выпуски IoT Edge 1.5 LTS и IoT Edge 1.4 LTS. IoT Edge 1.4 LTS заканчивается жизнью 12 ноября 2024 года. Если вы используете более ранний выпуск, см. статью Обновление IoT Edge.

В этой статье приведены комплексные инструкции по автоматической подготовке одного или нескольких устройств Linux IoT Edge с помощью симметричного ключа. Вы можете автоматически подготовить устройства Azure IoT Edge с помощью службы подготовки устройств Центр Интернета вещей Azure (DPS). Если вы не знакомы с процессом автоматической подготовки, ознакомьтесь с обзором подготовки, прежде чем продолжить.

Для этого необходимо выполнить следующие задачи:

  1. Создайте отдельную регистрацию для одного устройства или группы для набора устройств.
  2. Установка среды выполнения IoT Edge и подключение к Центру Интернета вещей.

Совет

Чтобы упростить работу, воспользуйтесь средством настройки Azure IoT Edge. Это средство командной строки (которое в настоящее время находится в состоянии общедоступной предварительной версии) устанавливает IoT Edge на вашем устройстве и подготавливает его к работе с помощью политики DPS и аттестации симметричных ключей.

Аттестация симметричного ключа — это простой подход к проверке подлинности устройства с помощью экземпляра службы подготовки устройств. Этот метод аттестации представляет возможности программы Hello world для разработчиков, которые не имеют опыта подготовки устройств или строгих требований к безопасности. Аттестация устройства с помощью доверенного платформенного модуля или сертификатов X.509 является более защищенной. Эти способы следует использовать при наличии более строгих требований к безопасности.

Необходимые компоненты

Облачные ресурсы

  • Активный Центр Интернета вещей
  • Экземпляр службы подготовки устройств Центр Интернета вещей в Azure, связанный с центром Интернета вещей

Требования к устройствам

Физическое или виртуальное устройство Linux, которое должно быть устройством IoT Edge.

Необходимо определить уникальныйидентификатор регистрации для идентификации каждого устройства. Можно использовать MAC-адрес, серийный номер или любые уникальные сведения устройства. В этом примере показано, как, используя сочетание MAC-адреса и серийного номера, можно создать следующую строку для идентификатора регистрации: sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6. Допустимые символы — буквы нижнего регистра, цифры и дефис (-).

Создание регистрации в Службе подготовки устройств к добавлению в Центр Интернета вещей

Создайте регистрацию для подготовки одного или нескольких устройств с помощью DPS.

Если вы хотите подготовить одно устройство IoT Edge, создайте отдельную регистрацию. Если требуется подготовка нескольких устройств, выполните действия по созданию регистрации группы DPS.

При создании регистрации в DPS у вас есть возможность объявить начальное состояние двойника устройства. В двойнике устройства можно задать теги для группировки устройств по любой требуемой для решения метрике, например по региону, среде, расположению или типу устройства. Эти теги используются для создания автоматических развертываний.

Дополнительные сведения о регистрации в службе подготовки устройств см. в статье "Управление регистрацией устройств".

Создание индивидуальной регистрации DPS

Совет

Действия, описанные в этой статье, предназначены для портал Azure, но вы также можете создать отдельные регистрации с помощью Azure CLI. Дополнительные сведения см. в разделе az iot dps enrollment. В команде интерфейса командной строки с помощью флага edge-enabled укажите, что регистрация предназначена для устройства IoT Edge.

  1. В портал Azure перейдите к экземпляру службы подготовки устройств Центр Интернета вещей.

  2. В разделе Параметрывыберите Управление регистрациями.

  3. Выберите Добавить отдельную регистрацию и выполните следующие действия для настройки регистрации.

    1. Для параметра Механизм выберите Симметричный ключ.

    2. Укажите уникальный идентификатор регистрации для своего устройства.

    3. При необходимости укажите идентификатор устройства в Центре Интернета вещей. Идентификаторы устройств можно использовать, чтобы указать отдельное устройство для развертывания модуля. Если не указать идентификатор устройства, используется идентификатор регистрации.

    4. Выберите значение True, чтобы указать, что это регистрация устройства IoT Edge.

    5. При необходимости добавьте значение тега в параметр Первоначальное состояние двойника устройства. Теги можно использовать для указания групп устройств для развертывания модуля. Например:

      {
         "tags": {
            "environment": "test"
         },
         "properties": {
            "desired": {}
         }
      }
      
    6. Выберите Сохранить.

  4. Скопируйте значение параметра Первичный ключ индивидуальной регистрации, чтобы использовать его при установке среды выполнения IoT Edge.

После создания регистрации для устройства среда выполнения IoT Edge может автоматически подготавливать устройство во время установки.

Установка Edge Интернета вещей

В этом разделе описана подготовка виртуальной машины Linux или физического устройства для IoT Edge. Затем установите IoT Edge.

Выполните следующие команды, чтобы добавить репозиторий пакетов, а затем добавить ключ подписи пакета Майкрософт в список доверенных ключей.

Внимание

30 июня 2022 года Raspberry Pi OS Stretch вышел из списка поддержки ОС уровня 1. Чтобы избежать потенциальных уязвимостей системы безопасности, обновите операционную систему узла до Bullseye.

Установка может выполняться с помощью нескольких команд. Откройте терминал и выполните следующие команды:

  • 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.

Установите модуль Moby.

sudo apt-get update; \
  sudo apt-get install moby-engine

По умолчанию подсистема контейнеров не задает ограничения размера журнала контейнеров. Со временем это может привести к заполнению устройства журналами и исчерпанию дискового пространства. Однако вы можете настроить журнал для локального отображения, хотя это необязательно. Дополнительные сведения о настройке ведения журнала см . в контрольном списке развертывания рабочей среды.

Ниже показано, как настроить контейнер для использования local драйвера ведения журнала в качестве механизма ведения журнала.

  1. Создание или изменение существующего файла конфигурации управляющей программы Docker

    sudo nano /etc/docker/daemon.json
    
  2. Задайте драйвер ведения журнала по умолчанию драйверу local ведения журнала, как показано в примере.

       {
          "log-driver": "local"
       }
    
  3. Перезапустите обработчик контейнеров, чтобы изменения вступили в силу.

    sudo systemctl restart docker
    

Установка среды выполнения IoT Edge

Служба IoT Edge обеспечивает безопасность и соответствие стандартам безопасности на устройстве IoT Edge. Служба запускается при каждой загрузке устройства и перезагружает устройство, запуская остальные компоненты среды выполнения IoT Edge.

Примечание.

Начиная с версии 1.2 служба удостоверений Интернета вещей обрабатывает подготовку и управление удостоверениями для 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 defender-iot-micro-agent-edge
    

Дополнительный defender-iot-micro-agent-edge пакет включает микроагент безопасности Microsoft Defender для Интернета вещей, который обеспечивает видимость конечных точек в управлении безопасностью, уязвимостях, обнаружении угроз, управлении парками и многое другое, чтобы обеспечить безопасность устройств IoT Edge. Рекомендуется установить микроагент с агентом Edge, чтобы обеспечить мониторинг безопасности и защиту устройств Edge. Дополнительные сведения о Microsoft Defender для Интернета вещей см. в статье "Что такое Microsoft Defender для Интернета вещей для разработчиков устройств".

Предоставление облачного удостоверения устройству

После установки среды выполнения на устройстве настройте устройство с информацией, которую он использует для подключения к службе подготовки устройств и Центр Интернета вещей.

Подготовьте следующие сведения:

  • Значение области идентификаторов DPS.
  • Созданный идентификатор регистрации устройства.
  • Введите первичный ключ, полученный при индивидуальной регистрации, или производный ключ в случае групповой регистрации устройств.

Создайте файл конфигурации для устройства на основе файла шаблона, который предоставляется в составе установки IoT Edge.

sudo cp /etc/aziot/config.toml.edge.template /etc/aziot/config.toml

Откройте файл конфигурации на устройстве IoT Edge.

sudo nano /etc/aziot/config.toml
  1. Найдите в файле раздел подготовки. Раскомментируйте строки для подготовки DPS с симметричным ключом и убедитесь, что все остальные строки подготовки закомментированы.

    # DPS provisioning with symmetric key
    [provisioning]
    source = "dps"
    global_endpoint = "https://global.azure-devices-provisioning.net"
    id_scope = "PASTE_YOUR_SCOPE_ID_HERE"
    
    # Uncomment to send a custom payload during DPS registration
    # payload = { uri = "PATH_TO_JSON_FILE" }
    
    [provisioning.attestation]
    method = "symmetric_key"
    registration_id = "PASTE_YOUR_REGISTRATION_ID_HERE"
    
    symmetric_key = { value = "PASTE_YOUR_PRIMARY_KEY_OR_DERIVED_KEY_HERE" }
    
    # auto_reprovisioning_mode = Dynamic
    
  2. Обновите значения параметров id_scope, registration_id и symmetric_key с помощью сведений о DPS и устройстве.

    Параметр симметричного ключа может принимать значение встроенного ключа, URI файла или URI PKCS#11. Раскомментируйте только одну строку симметричного ключа в зависимости от формата, который вы используете. При использовании встроенного ключа используйте ключ в кодировке Base64, как в примере. При использовании URI файла файл должен содержать необработанные байты ключа.

    Если вы используете URI PKCS 11, найдите раздел PKCS#11 в файле конфигурации и укажите сведения о своей конфигурации PKCS 11.

    Дополнительные сведения о параметрах конфигурации подготовки см. в разделе "Настройка параметров устройства IoT Edge".

  3. При необходимости найдите раздел режима автоматической повторной подготовки файла. auto_reprovisioning_mode Используйте параметр для настройки поведения повторной подготовки устройства. Динамическая — повторное создание, когда устройство обнаруживает, что оно могло быть перемещено из одной Центр Интернета вещей в другую. Это значение по умолчанию. AlwaysOnStartup — повторное создание при перезагрузке устройства или сбое приводит к перезапуску управляющей программы. OnErrorOnly — никогда не активируйте автоматическую подготовку устройства. Каждый режим имеет неявный вариант повторной подготовки устройства, если устройство не может подключиться к Центр Интернета вещей во время подготовки удостоверений из-за ошибок подключения. Дополнительные сведения см. в разделе Основные понятия повторной подготовки устройств в Центре Интернета вещей.

  4. При необходимости раскомментируйте payload параметр, чтобы указать путь к локальному JSON-файлу. Содержимое файла отправляется в DPS в качестве дополнительных данных при регистрации устройства. Это полезно для пользовательского выделения. Например, если вы хотите выделить устройства на основе идентификатора модели IoT самонастраивающийся без вмешательства человека.

  5. Сохранить и закрыть файл.

  6. Примените изменения конфигурации, сделанные на устройстве.

    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.