OPC UA 用コネクタと連携するように OPC PLC シミュレーターを構成する

重要

Azure Arc によって有効にされる Azure IoT Operations Preview は、 現在プレビュー段階です。 運用環境ではこのプレビュー ソフトウェアを使わないでください。

一般公開されたリリースが利用可能になった場合に、新しい Azure IoT Operations を表示する必要があります。プレビュー段階のインストールをアップグレードすることはできません。

ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用される法律条項については、「Microsoft Azure プレビューの追加使用条件」を参照してください。

この記事では、OPC PLC シミュレーターを構成して接続する方法について学習します。 シミュレーターでは、ランダム データと異常を生成する複数のノードを持つ OPC UA サーバーがシミュレートされます。 ユーザー定義ノードを構成できます。 OPC UA シミュレーターを使用すると、Operations Experience Web UI または Akri サービスを使用して OPC UA 資産を管理するプロセスをテストできます。

前提条件

Azure IoT Operations プレビューのデプロイされたインスタンス。 デモと調査の目的で Azure IoT Operations をデプロイするには、「クイックスタート: K3s を使用して Github Codespaces で Azure IoT Operations プレビューを実行する」を参照してください。 説明に従って Azure IoT Operations をデプロイする場合、インストールには OPC PLC シミュレーターが含まれます。

OPC PLC シミュレーターをデプロイする

このセクションでは、最初に Azure IoT Operations をデプロイしたときに OPC PLC シミュレーターを含めなかった場合に、OPC PLC シミュレーターをデプロイする方法を示します。

次の手順では、OPC PLC のセキュリティ レベルを下げて、明示的なピア証明書信頼操作なしで 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 シミュレーターは、azure-iot-operations 名前空間内の別のポッドとして実行されます。 ポッド名は、opcplc-000000-7b6447f99c-mqwdq のようになります。

OPC UA 用コネクタと OPC PLC の間の相互信頼を構成する

OPC UA での相互信頼の詳細については、「OPC UA 用コネクタの OPC UA 証明書インフラストラクチャ」を参照してください。

OPC PLC シミュレーターのアプリケーション インスタンス証明書は、cert-manager によって管理され、aio-opc-ua-opcplc-default-application-cert-000000 Kubernetes シークレットに格納される自己署名証明書です。

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 カスタム リソースに証明書を追加します。 kubectl などの Kubernetes クライアントを使用して、クラスター内の SecretProviderClass オブジェクト配列に opcplc.crt シークレットを構成します。

    次の例は、.crt 拡張子を持つ PEM でエンコードされたファイルにシミュレーター証明書を含む完全な SecretProviderClass カスタム リソースを示しています。

    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
    

    Note

    クラスターへの Azure Key Vault 証明書のプロジェクションにかかる時間は、構成されたポーリング間隔によって異なります。

これで、OPC UA 用コネクタと OPC PLC シミュレーターとの信頼関係が確立され、OPC PLC シミュレーターに接続するための AssetEndpointProfile を作成できるようになりました。

相互信頼を確立せずに 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}}"}}'