Compartir a través de


Configuración del simulador de OPC PLC para trabajar con la versión preliminar del agente de Azure IoT OPC UA

Importante

Operaciones de IoT de Azure, habilitado por Azure Arc, está actualmente en VERSIÓN PRELIMINAR. No se debería usar este software en versión preliminar en entornos de producción.

Consulte Términos de uso complementarios para las versiones preliminares de Microsoft Azure para conocer los términos legales que se aplican a las características de Azure que se encuentran en la versión beta, en versión preliminar o que todavía no se han publicado para que estén disponibles con carácter general.

En este artículo, aprenderá a configurar y conectar el simulador de OPC PLC. El simulador simula un servidor OPC UA con varios nodos que generan datos y anomalías aleatorios. Puede configurar nodos definidos por el usuario. El simulador de OPC UA permite probar el proceso de administración de recursos de OPC UA con el portal de Operaciones de IoT de Azure (versión preliminar) o Azure IoT Akri versión preliminar.

Requisitos previos

Una instancia implementada de la versión preliminar de Operaciones de IoT de Azure. Para implementar Operaciones de IoT de Azure con fines de demostración y exploración, consulte Inicio rápido: implementación de Operaciones de IoT de Azure en un clúster de Kubernetes habilitado para Arc. Si implementa Operaciones de IoT de Azure como se describe, la instalación incluye el simulador de OPC PLC.

Implementación del simulador de OPC PLC

En esta sección se muestra cómo implementar el simulador de OPC PLC si no lo incluyó al implementar por primera vez Operaciones de IoT de Azure.

El paso siguiente reduce el nivel de seguridad del OPC PLC para que acepte conexiones de OPC UA Broker de Azure IoT o de cualquier cliente sin una operación explícita de confianza de certificado del mismo nivel.

Importante

No use el ejemplo siguiente en producción, úselo solo con fines de simulación y prueba.

Ejecute el código siguiente para actualizar la implementación del agente de OPC UA y aplicar la nueva configuración:

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

El simulador de OPC PLC se ejecuta como un pod independiente en el espacio de nombres azure-iot-operations. El nombre del pod es similar a opcplc-000000-7b6447f99c-mqwdq.

Configuración de la confianza mutua entre el agente de Azure IoT OPC UA y OPC PLC

Para más información sobre la confianza mutua en OPC UA, consulte Infraestructura de certificados de OPC UA para el agente de Azure IoT OPC UA.

El certificado de instancia de aplicación del simulador de OPC PLC es un certificado autofirmado administrado por cert-manager y almacenado en el secreto de Kubernetesaio-opc-ua-opcplc-default-application-cert-000000.

Para configurar la confianza mutua entre el agente de Azure IoT OPC UA y el simulador de OPC PLC:

  1. Obtenga el certificado e insértelo en 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. Agregue el certificado al recurso aio-opc-ua-broker-trust-list personalizado en el clúster. Use un cliente de Kubernetes, como kubectl, para configurar el secreto de opcplc.crt en la matriz de objetos SecretProviderClass del clúster.

    En el ejemplo siguiente se muestra un recurso personalizado completo SecretProviderClass que contiene el certificado del simulador en un archivo codificado en PEM con la extensión .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
    

    Nota:

    El tiempo necesario para proyectar certificados de Azure Key Vault en el clúster depende del intervalo de sondeo configurado.

Ahora se establece la relación de confianza del agente de Azure IoT OPC UA con el simulador de OPC PLC y puede crear un AssetEndpointProfile para conectarse al simulador de OPC PLC.

Opcionalmente, configure la AssetEndpointProfile sin confianza mutua establecida.

Opcionalmente, puede configurar un perfil de punto de conexión de recurso sin establecer la confianza mutua entre el agente de OPC UA y el simulador de OPC PLC. Si comprende los riesgos, puede desactivar la autenticación con fines de prueba.

Precaución

No configure para ninguna autenticación en entornos de producción o preproducción. Exponer el clúster a Internet sin autenticación podría resultar en accesos no autorizados e, incluso, ataques DDOS.

Para permitir que el perfil de punto de conexión del recurso se conecte a un servidor OPC PLC sin establecer confianza mutua, use la configuración de additionalConfiguration para modificar la configuración de AssetEndpointProfile.

Aplique revisiones al punto de conexión del recurso con 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}}"}}'