SDA Connectivity Service
개요
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과 같은 벤더별 소프트웨어를 제조 제어 계층의 장치와 직접 연결합니다.
핵심 사항
SDA로 산업 자산을 관리하는 것은 제조 환경과 클라우드 기반 서비스 사이의 간극을 메우는 포괄적이고 안전한 산업용 커넥티비티 솔루션을 통해 이루어집니다. 검증된 기술을 활용하고 견고한 보안 조치를 구현함으로써, 이 서비스는 산업 자동화 및 제어 시스템에 특화된 엔터프라이즈급 커넥티비티를 제공합니다.
산업 등급 보안: AWS IoT Core와의 통합은 세분화된 접근 제어 정책과 함께 보안 TLS 연결을 제공합니다. 이는 산업용 IoT 보안 모범 사례를 따르며, 관리자가 장치 속성 및 컨텍스트를 기준으로 접근을 제한할 수 있도록 합니다.
검증된 VPN 기반: 이 서비스는 SoftEther VPN을 사용하며, AES 256비트 및 RSA 4096비트 암호화를 고속 처리 성능과 낮은 메모리·CPU 사용률로 제공하여 전송 중인 데이터가 도청 및 무단 접근으로부터 안전하게 보호되도록 합니다. 이는 보안과 성능이 중요한 산업용 애플리케이션에 이상적입니다.
제로 트러스트 네트워크 액세스: 이 서비스는 필요할 때마다 연결을 설정함으로써 기존의 정적 VPN 사용을 없앱니다. 이러한 Point-to-Point 아키텍처는 사용자가 전체 네트워크 세그먼트가 아니라 명시적으로 승인된 장치에만 접근할 수 있도록 보장하여 공격 표면을 크게 줄입니다.
공장 친화적 설계: 모든 연결은 게이트웨이 또는 워크스테이션과 같은 노드 자체에서 외부로 개시되며, 인바운드 연결은 절대 수락하지 않으므로 인바운드 방화벽 규칙이 전혀 필요하지 않습니다. 이러한 설계는 기존 산업 보안 아키텍처를 존중하면서 안전한 원격 접속 기능을 제공합니다.
아키텍처
가상 네트워크의 피어는 노드(Node)라고 하며, Connectivity Service의 주요 구성 요소입니다. 각 연결은 특정 역할을 가진 노드 체인의 상호작용을 통해 구성됩니다.
Devices: 일반적으로 제조 보안 네트워크에 위치하며 IP 주소로 접근할 수 있는 산업 자산으로, 예를 들어 PLC, HMI, 로봇 등이 있습니다. Device는 각 테넌트별로 SDA Console에서 선언되며, 사용자 접근은 역할 기반 접근 제어(Role-Based Access Control)로 관리됩니다. 연결을 위해서는 모든 Device가 최소 하나의 네트워크 게이트웨이와 연결되어 있어야 합니다.
Gateways: 인터넷과 SDA Console에서 관리되는 Device에 안전하게 접근할 수 있는 네트워크 호스트입니다. 일반적으로 IPC, VM, 컨테이너, 심지어 Raspberry Pi일 수 있으며, Tenant Server와 같은 SDA 클라우드 리소스에 접근하기 위해 특정 규칙이 필요한 방화벽 영역에 위치합니다. 모든 게이트웨이는 SDA Glue를 실행하며, 이는 연결 요청을 수신 대기하고 텔레메트리 데이터를 제공하는 OS 서비스입니다.
Workstations: 고객이 소유한 PC로, 대상 사이트의 게이트웨이를 통해 장치에 접근하는 데 사용됩니다. 워크스테이션은 게이트웨이와 동일한 SDA Glue 소프트웨어를 실행하고 네트워크 수준에서도 동일하게 설정됩니다. 유일한 차이는 역할입니다. 워크스테이션은 항상 게이트웨이를 향해 외부로 연결을 개시하며, 다른 장치로 트래픽을 중계하지 않습니다.
Tenant Servers: 안전한 SDA 클라우드 환경에서 실행되는 배스천 호스트로, 테넌트마다 전용으로 운영되며 게이트웨이의 네트워크 인터페이스를 SDA 서비스 VM 또는 다른 게이트웨이와 연결합니다. 이 서버들은 IDEaaS에서 특정 PLC로만 연결되고 게이트웨이와 동일한 네트워크의 다른 원치 않는 장치로는 연결되지 않도록, Point-to-Point 연결만 보장하는 필터링 정책을 적용합니다. 또한 연결마다 자격 증명 순환 정책을 기반으로 게이트웨이의 접근을 인증합니다.
Service VMs: IDEaaS, Backup, Deployment Pipeline과 같은 SDA 서비스에 필요한 애플리케이션을 실행합니다. 이러한 VM은 Connectivity Service를 통해 네트워크 계층에서 IP 주소로 Device에 접근하며, 이는 산업용 애플리케이션에 필수적입니다.
클라우드
SDA Connectivity Service는 기존의 정적 VPN을 사용하는 대신, 요청 시점에 산업 자산으로의 연결을 설정하며, 이 요청은 SDA 서비스와 Device 간 Point-to-Point 네트워크 접근을 제공하기 위해 함께 동작하는 노드 체인으로 전달됩니다.
제조 네트워크의 경우 모든 연결은 게이트웨이에서 개시되므로 공장 내에 인바운드 연결 규칙이 필요하지 않습니다. 이를 위해 노드는 AWS IoT Core로 구동되는 IoT 메시지 브로커에서 들어오는 요청을 상시 수신 대기합니다.
이 아키텍처를 통해 사용자는 브라우저만 있으면 인터넷이 연결된 어느 곳에서든, 어떤 컴퓨터에서든 공장의 자산과 상호작용할 수 있습니다.
%20(1).webp)
네트워크
게이트웨이는 제조 제어 계층과 인터넷 사이에 위치한 엣지 장치로, Console에 정의된 자산에 대한 통제된 접근을 SDA 서비스에 제공합니다. 따라서 SDA 클라우드와 로컬 인프라를 안전하게 연결하는 아키텍처를 확립하는 것이 매우 중요합니다. 게이트웨이에 대해 다음 두 가지 구성 중 하나를 권장합니다.
LAN 내 게이트웨이
가장 일반적인 방식으로, SDA 플랫폼에 온보딩된 PLC 옆에 게이트웨이를 배치합니다. 여기서는 방화벽이 게이트웨이에서 인터넷으로 나가는 아웃바운드를 엄격하게 제어합니다.

게이트웨이는 자신이 위치한 서브넷에 접근할 수 있지만, 네트워크 라우터에 접근 제어 계층(ACL)으로 방화벽이 구성될 수 있습니다. 또한 네트워크 인터페이스가 두 개인 게이트웨이 장치를 사용하는 것도 일반적입니다. 하나는 DMZ를 향하고, 다른 하나는 제어 계층의 사설 인터페이스입니다. 이 아키텍처는 예를 들어 양쪽 모두 서브넷이 10.0.0.0/24인 것과 같이 IP 영역이 중복되는 것을 허용합니다.
DMZ 내 게이트웨이
이 방식은 게이트웨이가 서버 인프라의 어딘가에 있는 전용 가상 머신에서 실행될 때 많이 사용됩니다. IT 팀은 VM과 제어 계층의 대상 PLC 사이에 특별한 경로를 제공하며, 인터넷 및 OT로의 접근 양쪽 모두에 방화벽이 존재할 가능성이 높습니다.
PLC로 다운스트림 통신할 때 네트워크 주소 변환(NAT)이 존재할 수도 있습니다. 다만 이 경우 주의가 필요합니다. 일부 PLC 벤더별 소프트웨어는 IP 별칭으로 PLC를 주소 지정하는 것과 호환되지 않을 수 있으며, 프로젝트에 명시적으로 구성된 IP로 접근해야 할 수 있습니다.

이 경우 제조 단위 내 모든 PLC는 고유한 IP 주소를 가져야 하며, 그렇지 않으면 충돌이 발생할 수 있습니다. 또한 네트워크 인프라에 따라 게이트웨이에서 PLC로의 계층 2 접근이 동작하지 않을 수 있으며, 이는 SDA 서비스에 실시간 산업 네트워크를 통합하기 위해 향후 제공될 기능입니다.
소프트웨어
SDA Glue는 OS 서비스로 실행되는 애플리케이션으로, 자동 시작 및 오류 발생 시 자동 재시작을 통해 게이트웨이의 고가용성을 보장합니다. 인터페이스, 라우트, 방화벽 규칙과 같은 네트워크 리소스를 관리하여 네트워크 터널을 설정하려면 시스템 사용자로서의 권한 상승이 필요합니다.
자동 업데이트는 기본적으로 활성화되어 있습니다. Glue 서비스는 repository.eu1.sdacosole.io 에서 최신 안정 버전을 읽어오고, 활성 연결이 없을 때 업데이트를 적용합니다. 업데이트 메커니즘은 새 애플리케이션 바이너리를 다운로드하여 기존 바이너리를 교체하고 서비스를 재시작합니다.
AWS IoT Core는 로그인 중에 연결되며, 엔드포인트 iot.eu1.sdaconsole.io 를 사용합니다. 연결되면 Glue 서비스는 SDA 클라우드의 요청을 상시 수신 대기하고, 게이트웨이와 연결된 Device의 상태와 같은 텔레메트리 데이터를 게시합니다. 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 네트워크 인터페이스를 생성하고 이를 Tenant Server에 연결합니다. 또한 Linux IP 도구를 사용하여 해당 인터페이스에 IP 주소를 할당하고, 서비스 VM과 대상 Device 간에 필요한 라우트를 생성합니다.
내부 방화벽 규칙과 NAT 변환은 iptables 에 생성되며, 이는 게이트웨이로 들어오는 네트워크 패킷을 허용하지 않고 대상 Device로 패킷을 전달하는 것만 허용합니다.

📚 연결에서의 Linux 리소스 관리
Linux 게이트웨이가 클라우드 서비스와 공장 장치를 어떻게 연결하는지 이해하기 위해, 전체 흐름을 보여주는 구체적인 IP 주소 예제를 살펴보겠습니다.
대상 Device(예: PLC)가 로컬 IP 주소 10.0.0.5를 가지고 있고, 게이트웨이가 동일한 네트워크에서 IP 10.0.0.2를 사용하는 공장 네트워크를 가정해 봅시다. SDA 클라우드에서는 서비스 VM이 이 Device에 연결해야 하며 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 인터페이스를 생성합니다. 그런 다음 두 엔드포인트는 Tenant Server에 연결하여 그 사이에 안전한 암호화 터널을 구축합니다.
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
이 시점에서 터널은 존재하지만 패킷은 여전히 어디로 가야 할지 알지 못합니다. 게이트웨이는 이 두 세계 사이에서 트래픽을 라우팅하는 방법을 시스템에 알려주어야 합니다.
라우트 구성
게이트웨이는 VPN 네트워크와 공장 현장을 연결하는 라우팅 규칙을 추가합니다.
ip route add 100.112.20.3 via 100.112.10.6 dev vpn_iface
이 라우트는 시스템에 중요한 정보를 알려줍니다. 10.0.0.5의 Device가 응답 패킷을 보낼 때, 이 패킷은 vpn_iface를 통해 전달되어 100.112.20.3의 서비스 VM에 도달해야 한다는 것입니다. 이 라우트가 없으면 게이트웨이는 Device의 응답을 클라우드로 되돌려 보내는 방법을 알 수 없습니다.
그러나 라우팅만으로는 충분하지 않습니다. 게이트웨이의 방화벽은 기본적으로 이 트래픽을 여전히 차단합니다. 연결을 활성화하려면 게이트웨이가 VM과 Device 간 양방향 패킷 전달을 명시적으로 허용해야 합니다.
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에서 Device로, 그리고 다시 되돌아올 수 있도록 하면서도 다른 모든 트래픽에 대해서는 게이트웨이의 보안 태세를 유지합니다. 또한 Glue는 다른 규칙과의 충돌을 방지하기 위해 iptables 에서 자체 체인을 사용한다는 점에 유의하십시오.
NAT 변환
공장의 Device는 로컬 IP 주소와 통신할 것으로 예상합니다. Device는 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에서 Device로 향하는 패킷이 도착할 때 게이트웨이는 출발지 주소를 100.112.20.3에서 10.0.0.2로 다시 씁니다. Device의 관점에서는 로컬 네트워크의 익숙하고 신뢰할 수 있는 주소인 게이트웨이 자체와 직접 통신하는 것처럼 보입니다. Device가 10.0.0.2로 응답을 보내면 게이트웨이는 역변환을 수행하여 목적지 주소를 다시 100.112.20.3으로 변경하고, 패킷은 VPN 터널을 통해 서비스 VM에 도달합니다.
이러한 VPN 터널링, 라우팅, 방화벽 규칙, NAT 변환의 조율을 통해 게이트웨이는 투명한 Point-to-Point 연결을 만듭니다. Device는 클라우드 인프라를 전혀 보지 못하며, 단지 로컬 네트워크의 10.0.0.2에 있는 게이트웨이로 보이는 대상과 통신할 뿐입니다. 한편 서비스 VM은 IP 주소 10.0.0.5로 Device에 대한 직접적인 네트워크 계층 접근을 얻게 되어, 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 드라이버를 사용하여 네트워크 인터페이스를 생성하고, 인증서 기반 인증을 사용하여 이를 Tenant Server에 연결합니다. Windows 네이티브 API를 사용하여 인터페이스에 IP를 할당하고 서비스 VM과 대상 Device 간에 필요한 라우트를 생성합니다.
또한 Glue는 Windows Filtering Platform(WFP)을 사용하여 전용 계층과 방화벽 규칙을 생성합니다. 그러나 서비스 VM과 Device 간의 주소 변환을 선언하기 위해 WinNAT 또는 NetNat에 의존하며, 이는 기본적으로 활성화되어 있지 않을 수 있습니다.

워크스테이션 대 게이트웨이: 워크스테이션과 게이트웨이는 위에서 설명한 동일한 Windows 클라이언트 및 연결 설정을 사용합니다. 즉, 동일한 OpenVPN TAP 드라이버와 동일한 WinNAT 기반 인터페이스 주소 지정을 사용합니다. 유일한 차이점은 백엔드 정책에 의해 연결별로 할당되는 WFP 방화벽 규칙입니다. 워크스테이션의 연결은 항상 SDA 터널 인터페이스를 통해 특정 대상 장치 IP로 범위가 지정된 아웃바운드 전용 규칙을 받는 반면, 게이트웨이는 추가로 그 뒤에 있는 장치로 트래픽을 중계하기 위한 전달 규칙을 받을 수 있습니다. 따라서 워크스테이션은 호스트에서 인바운드 또는 전달 경로를 열지 않으며, 해당 PC의 다른 네트워크 인터페이스, 라우트 또는 기존 VPN 연결에도 영향을 주지 않습니다. 모든 변경 사항은 SDA Glue가 자체 터널을 위해 생성한 가상 인터페이스에만 국한됩니다.
요약
SDA Connectivity Service는 산업용 커넥티비티 과제에 대해 성숙하고 안전하며 확장 가능한 솔루션을 제공합니다. SoftEther VPN과 같은 검증된 오픈 소스 기술을 AWS IoT Core의 엔터프라이즈급 클라우드 인프라와 결합함으로써, 이 서비스는 산업 운영에 필요한 신뢰성과 보안을 제공하는 동시에 현대적인 엔지니어링 팀이 기대하는 유연성과 사용 편의성을 제공합니다.
이 서비스의 아키텍처는 산업 보안 원칙을 존중하면서 운영 효율성, 원격 협업, 데이터 기반 의사 결정을 이끄는 디지털 전환 이니셔티브를 가능하게 합니다. 네트워크 보안이나 운영 신뢰성을 저해하지 않고 산업 자산을 클라우드 서비스에 안전하게 연결하려는 조직에게 SDA Connectivity Service는 포괄적이고 프로덕션에 바로 사용할 수 있는 솔루션을 제공합니다.