소개
Enarx는 기밀 컴퓨팅을 위한 오픈소스 프레임워크로, WebAssembly를 기반으로 한 런타임 환경을 제공하여 다양한 언어로 작성된 애플리케이션을 신뢰할 수 있는 실행 환경(TEE)에서 실행할 수 있게 합니다. Intel SGX 및 AMD SEV-SNP와 같은 하드웨어 기반 TEE를 지원하며, 하드웨어 및 클라우드 공급업체에 중립적인 단일 런타임 및 증명 프레임워크를 제공합니다. 애플리케이션 재작성 없이 기존 코드를 TEE에 배포할 수 있으며, 증명 구성 요소를 통해 실행 중인 워크로드가 정당한 TEE 내에 있는지 검증할 수 있습니다.
상세정보
다중 언어 지원
WebAssembly(WASI) 런타임을 통해 Rust, C/C++, C#, Go, Java, Python, Haskell 등 다양한 언어로 작성된 애플리케이션을 지원합니다.
하드웨어 중립적 설계
하드웨어 및 클라우드 공급업체에 종속되지 않는 단일 런타임 및 증명 프레임워크를 제공하여, Intel SGX, AMD SEV-SNP 등 다양한 TEE 유형을 아키텍처에 관계없이 투명하게 지원합니다.
코드 재작성 불필요
애플리케이션 재작성 없이 기존 코드를 WebAssembly WASI 모듈로 컴파일하여 TEE에 배포할 수 있습니다.
증명 기능
증명 구성 요소를 통해 실행 중인 워크로드가 정당한 TEE 내에 있는지 검증할 수 있어, 배포된 애플리케이션이 보호된 환경에서 실행 중임을 확인할 수 있습니다.
설치 및 시작 방법
GitHub에서 Enarx 소스 코드를 클론하거나 릴리스 바이너리를 다운로드합니다. 빌드 도구(Rust Cargo)를 사용하여 enarx 명령줄 도구를 설치합니다. 원하는 애플리케이션을 WebAssembly WASI 모듈로 컴파일한 후, enarx run 명령으로 TEE 인스턴스(Keeps) 내에 애플리케이션을 배포하고 실행합니다. 증명 기능을 통해 배포된 워크로드가 보호된 TEE 내에서 실행 중인지 확인할 수 있습니다.
활용 예시
Enarx는 공공 클라우드, 사설 클라우드, 엣지, IoT 등 완전히 신뢰할 수 없는 호스트에서 민감한 워크로드를 배포 및 실행하는 데 사용됩니다. 하드웨어 기반 보안인 TEE를 활용하여 애플리케이션과 데이터를 보호하며, 하이퍼바이저, 커널, 사용자 공간 등의 레이어가 워크로드 내부를 들여다보는 것을 방지합니다.
지원 환경 및 요구사항
Enarx는 Linux 배포판(예: Ubuntu, Debian)에서 테스트 및 빌드가 주로 문서화되어 있으며, Windows에서의 사용은 현재 보장되지 않습니다. Intel SGX 사용 시 SGX2(EDMM) 지원 하드웨어가 필요하며, AMD SEV-SNP 사용을 위해서는 해당 프로세서 지원이 필수적입니다. 하드웨어 공급업체나 클라우드 공급업체에 종속되지 않는 하드웨어 중립적 설계를 따릅니다.
제한 사항 및 확인 사항
Enarx 자체는 엔드유저용 GUI 애플리케이션이 아닌 개발자 및 배포용 프레임워크이므로, 일반 사용자는 명령줄 인터페이스를 통해 사용해야 합니다. 현재 버전은 Linux 환경에서의 빌드 및 테스트가 주로 문서화되어 있으며, Windows에서의 사용은 보장되지 않습니다. TEE 유형에 따라 이용 가능한 기능이 다를 수 있으므로, 대상 하드웨어(Intel SGX, AMD SEV-SNP 등)의 지원 여부를 사전에 확인해야 합니다.
시스템 요구사항
Enarx는 Linux 배포판(예: Ubuntu, Debian)에서 테스트되었으며, Windows PE 형식의 애플리케이션도 TEE 내에서 실행할 수 있도록 지원합니다. Intel SGX 사용 시 SGX2(EDMM) 지원이 필요하며, 3rd Gen Intel Xeon Scalable Ice Lake(예: 5318Y 또는 5318S)를 권장합니다. AMD SEV-SNP 사용을 위해서는 해당 하드웨어 지원이 필수적입니다. 빌드에는 Rust Cargo 도구 체인이 필요하며, 소스 코드 설치를 위해서는 Git, curl, gcc, musl-tools, python3-minimal 등이 요구됩니다.


