Поделиться через


Настройка симулятора OPC PLC для работы с azure IoT OPC UA Broker Preview

Внимание

Предварительная версия операций Интернета вещей Azure, включенная Azure Arc в настоящее время находится в предварительной версии. Не следует использовать это программное обеспечение предварительной версии в рабочих средах.

Юридические условия, применимые к функциям Azure, которые находятся в состоянии бета-версии, предварительной версии или иным образом еще не выпущены в общедоступной версии, см. на странице Дополнительные условия использования предварительных версий в Microsoft Azure.

В этой статье вы узнаете, как настроить и подключить симулятор OPC PLC. Симулятор имитирует сервер OPC UA с несколькими узлами, которые создают случайные данные и аномалии. Вы можете настроить определяемые пользователем узлы. Симулятор OPC UA позволяет протестировать процесс управления ресурсами OPC UA с помощью портала Операций Интернета вещей Azure (предварительная версия) или Azure IoT Akri Preview.

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

Развернутый экземпляр Azure IoT Operations Preview. Сведения о развертывании операций Интернета вещей Azure для демонстрации и изучения см . в кратком руководстве по развертыванию операций Интернета вещей Azure в кластере Kubernetes с поддержкой Arc. При развертывании операций Интернета вещей Azure, как описано, установка включает симулятор OPC PLC.

Развертывание симулятора OPC PLC

В этом разделе показано, как развернуть симулятор OPC PLC, если вы не включили его при первом развертывании операций Интернета вещей Azure.

На следующем шаге снижается уровень безопасности для OPC PLC, чтобы он принял подключения от брокера Azure Iot OPC UA или любого клиента без явной операции доверия к одноранговому сертификату.

Внимание

Не используйте следующий пример в рабочей среде, используйте его только для имитации и тестирования.

Выполните следующий код, чтобы обновить развертывание брокера OPC UA и применить новые параметры:

az k8s-extension update \
    --version 0.3.0-preview \
    --name opc-ua-broker \
    --release-train preview \
    --cluster-name <cluster-name> \
    --resource-group <azure-resource-group> \
    --cluster-type connectedClusters \
    --auto-upgrade-minor-version false \
    --config opcPlcSimulation.deploy=true \
    --config opcPlcSimulation.autoAcceptUntrustedCertificates=true

Симулятор OPC PLC выполняется в качестве отдельного модуля pod в azure-iot-operations пространстве имен. Имя модуля pod выглядит следующим образом opcplc-000000-7b6447f99c-mqwdq.

Настройка взаимного доверия между брокером AZURE Iot OPC UA и OPC PLC

Дополнительные сведения о взаимном доверии в OPC UA см. в разделе инфраструктуры сертификатов OPC UA для брокера OPC UA Azure IoT.

Сертификат экземпляра приложения симулятора OPC PLC — это самозаверяющий сертификат, управляемый диспетчером сертификатов и хранящийся в секрете aio-opc-ua-opcplc-default-application-cert-000000 Kubernetes.

Чтобы настроить взаимное доверие между брокером AZURE Iot OPC UA и симулятором OPC PLC:

  1. Получите сертификат и отправьте его в Azure Key Vault:

    kubectl -n azure-iot-operations get secret aio-opc-ua-opcplc-default-application-cert-000000 -o jsonpath='{.data.tls\.crt}' | \
    base64 -d | \
    xargs -0 -I {} \
    az keyvault secret set \
        --name "opcplc-crt" \
        --vault-name <your-azure-key-vault-name> \
        --value {} \
        --content-type application/x-pem-file
    
  2. Добавьте сертификат в aio-opc-ua-broker-trust-list пользовательский ресурс в кластере. Используйте клиент Kubernetes, например, чтобы kubectl настроить opcplc.crt секрет в массиве SecretProviderClass объектов в кластере.

    В следующем примере показан полный SecretProviderClass пользовательский ресурс, содержащий сертификат симулятора в кодированном файле PEM с расширением CRT:

    apiVersion: secrets-store.csi.x-k8s.io/v1
    kind: SecretProviderClass
    metadata:
      name: aio-opc-ua-broker-trust-list
      namespace: azure-iot-operations
    spec:
      provider: azure
      parameters:
        usePodIdentity: 'false'
        keyvaultName: <your-azure-key-vault-name>
        tenantId: <your-azure-tenant-id>
        objects: |
          array:
            - |
              objectName: opcplc-crt
              objectType: secret
              objectAlias: opcplc.crt
    

    Примечание.

    Время, необходимое для проекта сертификатов Azure Key Vault в кластер, зависит от настроенного интервала опроса.

Отношения доверия брокера OPC UA Azure IoT с симулятором OPC PLC теперь устанавливаются, и вы можете создать подключение к симулятору AssetEndpointProfile OPC PLC.

При необходимости настройте ваш AssetEndpointProfile без взаимного доверия, установленного

При необходимости можно настроить профиль конечной точки актива без установления взаимного доверия между брокером OPC UA и симулятором OPC PLC. Если вы понимаете риски, вы можете отключить проверку подлинности в целях тестирования.

Внимание

Не настраивайте проверку подлинности в рабочих или предварительных средах. Предоставление кластера в Интернет без проверки подлинности может привести к несанкционированным доступом и даже атакам DDOS.

Чтобы разрешить профилю конечной точки актива подключаться к серверу OPC PLC без установления взаимного доверия, используйте additionalConfiguration параметр для изменения конфигурации AssetEndpointProfile .

Исправление конечной точки ресурса с помощью autoAcceptUntrustedServerCertificates=true:

ENDPOINT_NAME=<name-of-you-endpoint-here>
kubectl patch AssetEndpointProfile $ENDPOINT_NAME \
-n azure-iot-operations \
--type=merge \
-p '{"spec":{"additionalConfiguration":"{\"applicationName\":\"'"$ENDPOINT_NAME"'\",\"security\":{\"autoAcceptUntrustedServerCertificates\":true}}"}}'