Compartilhar via


Configurar o simulador de OPC PLC para trabalhar com o Agente de OPC UA do Azure IoT Versão Prévia

Importante

O recurso Pré-visualização de Operações do Azure IoT — habilitado pelo Azure Arc — está atualmente em VERSÃO PRÉVIA. Você não deve usar esse software em versão prévia em ambientes de produção.

Veja os Termos de Uso Complementares para Versões Prévias do Microsoft Azure para obter termos legais que se aplicam aos recursos do Azure que estão em versão beta, versão prévia ou que, de outra forma, ainda não foram lançados em disponibilidade geral.

Neste artigo, você aprenderá a configurar e conectar o simulador de OPC PLC. Esse simulador simula um servidor de OPC UA com vários nós que geram anomalias e dados aleatórios. Você pode configurar nós definidos pelo usuário. O simulador de OPC UA permite que você teste o processo de gerenciamento de ativos de OPC UA com o Portal de Operações do Azure IoT (versão prévia) ou o Azure IoT Akri Versão Prévia.

Pré-requisitos

Uma instância implantada do recurso Operações do Azure IoT Versão Prévia. Para implantar o recurso Operações do Azure IoT para fins de demonstração e exploração, confira Início Rápido: Implantar o recurso Operações do Azure IoT — em um cluster do Kubernetes habilitado para Arc. Se você implantar o recurso Operações do Azure IoT conforme descrito, a instalação incluirá o simulador de OPC PLC.

Implantar o simulador de PLC OPC

Essa seção mostra como implantar o simulador de OPC PLC se você não o incluiu quando implantou o recurso Operações do Azure IoT pela primeira vez.

A etapa a seguir reduz o nível de segurança do OPC PLC para que ele aceite conexões do Azure Iot OPC UA Broker ou de qualquer cliente sem uma operação explícita de confiança de certificado de pares.

Importante

Não use o exemplo a seguir na produção, use-o apenas para fins de simulação e teste.

Execute o seguinte código para atualizar a implantação do agente OPC UA e aplicar as novas configurações:

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

O simulador de OPC PLC é executado como um pod separado no namespace azure-iot-operations. O nome do pod se parece com opcplc-000000-7b6447f99c-mqwdq.

Configurar a confiança mútua entre o Agente de OPC UA do Azure IoT e o OPC PLC

Para saber mais sobre a confiança mútua em OPC UA, confira Infraestrutura de certificados para o Agente de OPC UA do Azure IoT.

O certificado da instância de aplicativo do simulador de OPC PLC é um certificado autoassinado gerenciado pelo cert-manager e armazenado no segredo do Kubernetes do aio-opc-ua-opcplc-default-application-cert-000000.

Para configurar a confiança mútua entre o Agente de OPC UA do Azure IoT e o simulador de OPC PLC:

  1. Obtenha o certificado e o envie por push para o 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. Adicione o certificado ao recurso de aio-opc-ua-broker-trust-list personalizada no cluster. Use um cliente do Kubernetes, como kubectl, para configurar o segredo do opcplc.crt na matriz de objetos SecretProviderClass no cluster.

    O exemplo a seguir mostra um recurso personalizado SecretProviderClass completo que contém o certificado do simulador em um arquivo codificado em PEM com a extensão .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
    

    Observação

    O tempo necessário para projetar certificados do Azure Key Vault no cluster depende do intervalo de sondagem configurado.

A relação de confiança entre o Agente de OPC UA do Azure IoT e o simulador de OPC PLC agora está estabelecida e você pode criar um AssetEndpointProfile para se conectar ao seu simulador de OPC PLC.

Opcionalmente, configure seu AssetEndpointProfile sem estabelecer confiança mútua

Opcionalmente, você pode configurar um perfil de ponto de extremidade de ativo sem estabelecer uma confiança mútua entre o Agente de OPC UA e o simulador de OPC PLC. Se você entender os riscos, poderá desativar a autenticação para fins de teste.

Cuidado

Não configure para "sem autenticação" em ambientes de produção ou pré-produção. Expor seu cluster à Internet sem autenticação pode levar a acesso não autorizado e até a ataques DDOS.

Para permitir que seu perfil de ponto de extremidade de ativo se conecte a qualquer servidor de OPC PLC sem estabelecer uma confiança mútua, use a configuração additionalConfiguration para alterar a configuração AssetEndpointProfile.

Corrija o ponto de extremidade do ativo com 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}}"}}'