メインコンテンツまでスキップ

SDA Connectivity Service

Overview​

SDA Connectivity Service は、Linux および Windows ホスト向けに提供されるゲートウェイ用アプリケーションである SDA Glue を基盤としています。本サービスは SoftEther VPN を採用しており(Windows クライアントでは OpenVPN をサポート)、ゲートウェイのネットワークインターフェイスと、IDEaaS、Backup、Deployment VM などの SDA クラウドサービスとの間にセキュアな TCP トンネルを確立します。さらに、OS ネイティブのファイアウォール(Linux の iptables および Windows Filtering Platform (WFP))と NAT テーブルを組み合わせることで、Siemens TIA Portal や Rockwell Studio 500 といったベンダー固有ソフトウェアを、製造制御層のデバイスと直接ブリッジします。

Key Points​

SDA による産業資産の管理は、製造環境とクラウドベースのサービスとのギャップを埋める、包括的かつセキュアな産業用コネクティビティソリューションによって実現されています。実証済みの技術を活用し、堅牢なセキュリティ対策を実装することで、本サービスは産業オートメーションおよび制御システムに特化したエンタープライズグレードの接続性を提供します。

産業グレードのセキュリティ: AWS IoT Core との統合により、きめ細かなアクセス制御ポリシーを備えたセキュアな TLS 接続が提供されます。これは産業用 IoT のセキュリティベストプラクティスに従ったもので、管理者はデバイスのプロパティやコンテキストに基づいてアクセスを制限できます。

実証済みの VPN 基盤: 本サービスは SoftEther VPN を利用しており、AES 256 ビットおよび RSA 4096 ビットの暗号化を、高速なスループット性能と低いメモリ・CPU 使用率で提供します。これにより転送中のデータは盗聴や不正アクセスから保護され、セキュリティと性能が重要となる産業用途に最適です。

ゼロトラストネットワークアクセス: 本サービスは接続をオンデマンドで確立するため、従来の静的な VPN を必要としません。このポイントツーポイントアーキテクチャにより、ユーザーはネットワークセグメント全体ではなく、明示的に許可されたデバイスのみにアクセスでき、攻撃対象領域を大幅に削減します。

工場に適した設計: すべての接続は、ノード自身(ゲートウェイまたはワークステーション)から外向きに開始され、インバウンド接続を受け付けることはありません。そのため、インバウンドのファイアウォールルールは一切不要です。この設計は、既存の産業用セキュリティアーキテクチャを尊重しながら、セキュアなリモートアクセス機能を提供します。

Architecture​

仮想ネットワーク内のピアはノードと呼ばれ、Connectivity Service の主要な構成要素です。各接続は、それぞれ特定の役割を担うノードの連鎖の相互作用によって構築されます。

Devices: 通常は製造セキュアネットワークに配置され、IP アドレスでアクセスできる産業資産(例: PLC、HMI、ロボット)です。デバイスは各テナントごとに SDA Console で宣言され、ユーザーアクセスはロールベースアクセス制御によって管理されます。接続には、すべてのデバイスが少なくとも 1 つのネットワークゲートウェイに紐付けられている必要があります。

Gateways: インターネットおよび SDA Console で管理されるデバイスへのセキュアなアクセスを持つネットワークホストです。通常は IPC、VM、コンテナ、さらには Raspberry Pi などであり、テナントサーバーのような SDA クラウドリソースへのアクセスに固有のルールを必要とするファイアウォールゾーンに配置されます。すべてのゲートウェイでは SDA Glue が動作し、接続要求をリッスンしテレメトリデータを提供する OS サービスとして機能します。

Workstations: 顧客自身の PC で、対象サイトのゲートウェイ経由でデバイスにアクセスするために使用されます。ワークステーションはゲートウェイと同じ SDA Glue ソフトウェアを実行し、ネットワークレベルでも同一に構成されます。唯一の違いは役割であり、ワークステーションは常にゲートウェイに向けて外向きに接続を開始し、他のデバイスへトラフィックを中継することはありません。

Tenant Servers: セキュアな SDA クラウド環境で稼働し、テナントごとに専用で用意される要塞ホストで、ゲートウェイのネットワークインターフェイスを SDA サービス VM または別のゲートウェイとブリッジします。これらのサーバーは、IDEaaS から特定の PLC へのみ接続し、同一ネットワーク上の他の意図しないデバイスには接続しないといった、ポイントツーポイント接続のみを保証するために必要なフィルタリングポリシーを担保します。また、接続ごとの資格情報ローテーションポリシーに基づき、ゲートウェイからのアクセスを認証します。

Service VMs: IDEaaS、Backup、Deployment Pipelines などの SDA サービスが必要とするアプリケーションを実行します。これらの VM は Connectivity Service を利用して、ネットワーク層でデバイスに IP アドレスによりアクセスします。これは産業用アプリケーションにおいて不可欠です。

Cloud​

SDA Connectivity Service は、従来の静的な VPN を使用する代わりに、リクエストに応じて産業資産への接続を確立します。リクエストはノードの連鎖に転送され、これらが連携して SDA サービスとデバイス間のポイントツーポイントのネットワークアクセスを提供します。

製造ネットワーク側では、すべての接続がゲートウェイから開始されるため、工場側でインバウンド接続ルールを設定する必要はありません。これを実現するため、ノードは AWS IoT Core を基盤とする IoT メッセージブローカー上で受信リクエストを常時リッスンしています。

このアーキテクチャにより、ユーザーはインターネットが利用できる任意の場所から、ブラウザのみに依存して任意のコンピューターで工場内の資産を操作できます。

Network​

ゲートウェイは、製造制御層とインターネットの間に位置するエッジデバイスであり、Console で定義された資産への制御されたアクセスを SDA サービスに提供します。したがって、SDA クラウドとローカルインフラをセキュアにブリッジするアーキテクチャを確立することが非常に重要です。ゲートウェイについては、以下に示す 2 つの構成のいずれかを推奨します。

Gateway in LAN​

これは最も一般的なアプローチで、SDA プラットフォームにオンボードされた PLC の近くにゲートウェイを配置します。この構成では、ファイアウォールがゲートウェイからインターネットへのアウトバウンドを厳格に制御します。

ゲートウェイは自身が配置されたサブネットにアクセスできますが、ネットワークのルーターにアクセス制御層 (ACL) としてファイアウォールを設けることもできます。また、2 つのネットワークインターフェイスを備えたゲートウェイ機器を使用することも一般的です(一方は DMZ 向け、もう一方は制御層のプライベート側)。このアーキテクチャでは、同一の IP ゾーンの重複(例: どちらもサブネット 10.0.0.0/24)が可能です。

Gateway in DMZ​

このアプローチは、サーバーインフラ内のどこかにある専用の仮想マシンでゲートウェイを実行する場合に多く用いられます。IT チームが VM と制御層の対象 PLC 間に特別なルートを用意し、インターネットへのアクセスと OT へのアクセスの両方にファイアウォールが存在することが一般的です。

危険

PLC へのダウンストリーム方向でネットワークアドレス変換 (NAT) が存在する場合もあります。ただし、これには注意が必要です。一部の PLC ベンダー固有ソフトウェアは、IP エイリアスによる PLC のアドレス指定に対応しておらず、プロジェクトで明示的に構成された IP へのアクセスを要求する場合があります。

この場合、製造ユニット内のすべての PLC は一意の IP アドレスを持つ必要があり、そうでなければ衝突が発生する可能性があります。また、ネットワークインフラによっては、ゲートウェイから PLC へのレイヤー 2 アクセスが機能しない場合があります。これは、SDA サービスにおけるリアルタイム産業ネットワーク統合のための今後の機能です。

Software​

SDA Glue は OS サービスとして動作するアプリケーションであり、自動起動およびエラー時の自動再起動によってゲートウェイの高可用性を確保します。インターフェイス、ルート、ファイアウォールルールなどのネットワークリソースを管理してネットワークトンネルを確立するため、システムユーザーとしての権限昇格が必要です。

自動更新はデフォルトで有効です。Glue サービスは repository.eu1.sdacosole.io から最新の安定版バージョンを読み取り、アクティブな接続がなくなった時点で更新を適用します。更新機構は新しいアプリケーションバイナリをダウンロードし、旧バイナリと置き換えてサービスを再起動します。

AWS IoT Core はログイン時に接続され、エンドポイント iot.eu1.sdaconsole.io が使用されます。接続が確立すると、Glue サービスは SDA クラウドからのリクエストを常時リッスンし、ゲートウェイに関連付けられたデバイスのステータスなどのテレメトリデータを公開します。IoT 認証は、SDA Console から取得できる短い ID とワンタイムパスワードによって保護されます。IoT への接続は、アプリケーションバイナリ内のシークレットキーによっても保護されます。IoT への接続は、MQTT SSL または WebSocket Secure のいずれか(いずれもポート 443)で確立するよう構成できます。

ネットワーク機構は Linux と Windows で異なるため、それぞれ個別に説明します。

Linux​

Linux 上の SDA Glue は、オープンソース(Apache License 2.0)の SoftEther VPN Client に依存しており、これは Glue のインストール時に repository.eu1.sdaconsole.io 上の SDA のミラーからインストールされます。

接続ごとに、Glue は SoftEther Client を使用して NIC ネットワークインターフェイスを作成し、テナントサーバーに接続します。また、Linux の IP ツールを使用してそのインターフェイスに IP アドレスを割り当て、サービス VM と対象デバイス間に必要なルートを作成します。

内部のファイアウォールルールと NAT 変換は iptables 内に作成され、ゲートウェイへの受信ネットワークパケットは許可せず、対象デバイスへのパケット転送のみを許可します。

📚 Linux Resource Management in Connections

Linux ゲートウェイがクラウドサービスと工場デバイスをどのようにブリッジするかを理解するために、具体的な IP アドレスを用いた例で全体の流れを見ていきましょう。

対象デバイス(PLC など)のローカル IP アドレスが 10.0.0.5、ゲートウェイが同じネットワーク上で IP 10.0.0.2 を持つ工場ネットワークを考えます。SDA クラウドでは、サービス VM がこのデバイスに接続する必要があり、VPN IP 100.112.20.3 が割り当てられます。一方、ゲートウェイの VPN インターフェイスは 100.112.10.6 を受け取ります。

トンネルの確立

接続要求が届くと、ゲートウェイとサービス VM の双方が動作を開始します。ゲートウェイは vpn_iface という新しい仮想ネットワークインターフェイスを作成し、アドレス 100.112.10.6 を割り当てます。同時に、クラウド内のサービス VM は IP 100.112.20.3 を持つ独自の VPN インターフェイスを作成します。その後、両エンドポイントがテナントサーバーに接続し、両者間にセキュアな暗号化トンネルが確立されます。

Factory Side: Cloud Side:
Gateway Service VM
├─ Local: 10.0.0.2 ├─ VPN: 100.112.20.3
└─ VPN: 100.112.10.6 └─ Target: 10.0.0.5 (via Gateway)
Device
└─ Local: 10.0.0.5

この時点でトンネルは存在しますが、パケットはまだどこへ向かうべきかを知りません。ゲートウェイは、これら 2 つの世界間でトラフィックをルーティングする方法をシステムに教える必要があります。

ルートの構築

ゲートウェイは、VPN ネットワークと製造現場を接続するルーティングルールを追加します。

ip route add 100.112.20.3 via 100.112.10.6 dev vpn_iface

このルートは、重要な情報をシステムに伝えます。すなわち、10.0.0.5 のデバイスが応答パケットを送信した際、それらは vpn_iface を経由して 100.112.20.3 のサービス VM に到達するよう転送されるべきであるということです。このルートがなければ、ゲートウェイはデバイスの応答をクラウドに送り返す方法を知ることができません。

しかし、ルーティングだけでは十分ではありません。ゲートウェイのファイアウォールは、デフォルトではこのトラフィックをブロックします。接続を有効にするには、ゲートウェイは VM とデバイス間の双方向パケット転送を明示的に許可する必要があります。

iptables -A GLUE_FORWARD -s 100.112.20.3 -d 10.0.0.5 -j ACCEPT
iptables -A GLUE_FORWARD -s 10.0.0.5 -d 100.112.20.3 -j ACCEPT

これらのルールは制御された経路を開き、サービス VM からデバイスへ、またその逆方向へパケットが流れることを許可しつつ、他のすべてのトラフィックに対してはゲートウェイのセキュリティ体制を維持します。また、Glue は他のルールと競合しないよう、iptables 内で独自のチェーンを使用することに注意してください。

NAT 変換

工場内のデバイスはローカル IP アドレスとの通信を想定しており、100.112.20.3 のクラウドネットワークについての知識はなく、そのアドレスからのパケットにどう応答すべきか分かりません。ゲートウェイは、サービス VM のパケットをマスカレードすることでこの問題を解決します。

iptables -t nat -A GLUE_POSTROUTING -s 100.112.20.3 -d 10.0.0.5 -j MASQUERADE

この NAT ルールが設定されていると、サービス VM からデバイス宛のパケットが到着した際、ゲートウェイは送信元アドレスを 100.112.20.3 から 10.0.0.2 に書き換えます。デバイスの視点では、ローカルネットワーク上のよく知られた信頼できるアドレスであるゲートウェイ自身と直接通信しているように見えます。デバイスが 10.0.0.2 に応答を送信すると、ゲートウェイは逆方向の変換を行い、宛先アドレスを 100.112.20.3 に戻すことで、パケットは VPN トンネルを通じてサービス VM に到達します。

このように VPN トンネリング、ルーティング、ファイアウォールルール、NAT 変換を統合的に制御することで、ゲートウェイは透過的なポイントツーポイント接続を作り出します。デバイスはクラウドインフラを認識することはなく、ローカルネットワーク上の 10.0.0.2 にあるゲートウェイと通信しているだけのように見えます。一方でサービス VM は、IP アドレス 10.0.0.5 によってデバイスへのネットワーク層での直接アクセスを得られるため、TIA Portal や Studio 5000 のような産業用アプリケーションが、あたかもローカルの工場ネットワーク上で動作しているかのように機能します。

Windows​

Windows 上の SDA Glue は SoftEther VPN Client の組み込み利用をサポートしていないため、OpenVPN Community Open-Source Client(GPL ライセンス バージョン 2)を使用します。これは Glue のインストール時に repository.eu1.sdaconsole.io 上の SDA のミラーからインストールされます。

接続ごとに、Glue は OpenVPN TAP ドライバーを使用してネットワークインターフェイスを作成し、証明書ベースの認証によりテナントサーバーに接続します。また、Windows ネイティブ API を使用してインターフェイスに IP を割り当て、サービス VM と対象デバイス間に必要なルートを作成します。

Glue はさらに Windows Filtering Platform (WFP) を使用して専用のレイヤーとファイアウォールルールを作成します。ただし、サービス VM とデバイス間のアドレス変換を宣言するには WinNAT または NetNat に依存しており、これらはデフォルトで有効になっていない場合があります。

Workstation と Gateway の違い: ワークステーションとゲートウェイは、上記で説明した Windows クライアントおよび接続構成をまったく同じように使用します(同じ OpenVPN TAP ドライバー、同じ WinNAT ベースのインターフェイスアドレッシング)。唯一の違いは、バックエンドのポリシーによって接続ごとに割り当てられる WFP ファイアウォールルールです。ワークステーションの接続には、SDA トンネルインターフェイス経由で特定の対象デバイス IP に限定されたアウトバウンド専用のルールが常に適用されます。一方、ゲートウェイには、その背後のデバイスへトラフィックを中継するための転送ルールが追加で適用される場合があります。したがって、ワークステーションはホスト上でインバウンドや転送の経路を開くことはなく、その PC 上の他のネットワークインターフェイス、ルート、既存の VPN 接続にも影響を与えません。すべての変更は、SDA Glue が自身のトンネル用に作成する仮想インターフェイスに限定されます。

Summary​

SDA Connectivity Service は、産業用コネクティビティの課題に対して成熟した、セキュアかつスケーラブルなソリューションを提供します。SoftEther VPN のような実証済みのオープンソース技術と、AWS IoT Core のエンタープライズグレードのクラウドインフラを組み合わせることで、産業運用が求める信頼性とセキュリティを提供しつつ、現代のエンジニアリングチームが期待する柔軟性と使いやすさを実現します。

本サービスのアーキテクチャは、産業セキュリティの原則を尊重しながら、運用効率、リモートコラボレーション、データドリブンな意思決定を推進するデジタルトランスフォーメーションの取り組みを可能にします。ネットワークセキュリティや運用信頼性を損なうことなく産業資産をクラウドサービスへセキュアに接続したいと考える組織に対し、SDA Connectivity Service は包括的で本番運用に対応したソリューションを提供します。