Azure Kubernetes Service에서 Intel SGX 기반 기밀 컴퓨팅 노드를 사용한 애플리케이션 enclave 지원
Azure 기밀 컴퓨팅을 사용하면 사용 중인 중요한 데이터를 보호할 수 있습니다. Intel SGX 기반 enclave를 사용하면 AKS 내에서 컨테이너로 패키지된 애플리케이션을 실행할 수 있습니다. TEE(신뢰할 수 있는 실행 환경) 내에서 실행되는 컨테이너는 다른 컨테이너, 보호된 하드웨어의 노드 커널, 무결성 보호 증명 가능한 환경에서 격리를 제공합니다.
개요
AKS(Azure Kubernetes Service)는 Intel SGX 기밀 컴퓨팅 VM 노드를 클러스터의 에이전트 풀로 추가할 수 있습니다. 이러한 노드를 통해 하드웨어 기반 TEE(신뢰 실행 환경) 내에서 중요한 워크로드를 실행할 수 있습니다. TEE를 사용하면 CPU를 통해 코드를 직접 실행하기 위해 컨테이너의 사용자 수준 코드에서 메모리의 프라이빗 영역을 할당할 수 있습니다. CPU를 통해 직접 실행되는 이러한 프라이빗 메모리 영역을 enclave라고 합니다. enclave는 동일한 노드뿐만 아니라 Azure Operator에서 실행되는 다른 프로세스로부터 데이터 기밀성, 데이터 무결성, 코드 무결성을 보호하는 데 도움이 됩니다. 또한 Intel SGX 실행 모델은 게스트 OS, 호스트 OS 및 하이퍼바이저의 중간 계층을 제거하여 공격 노출 영역을 줄입니다. 노드의 컨테이너 격리 실행별 하드웨어 기반 모델을 사용하면 컨테이너별로 암호화된 특수 메모리 블록을 유지하면서 애플리케이션에서 CPU를 통해 직접 실행할 수 있습니다. 기밀 컨테이너를 사용하는 기밀 컴퓨팅 노드는 제로 트러스트 보안 계획 및 심층 방어 컨테이너 전략에 매우 적합한 추가 요소입니다.
Intel SGX 기밀 컴퓨팅 노드 기능
- Intel SGX TEE(신뢰 실행 환경)를 통한 하드웨어 기반 alc 프로세스 수준 컨테이너 격리
- 형식이 다른 노드 풀 클러스터(기밀 및 비 기밀 노드 풀의 혼합)
- "confcom" AKS 추가 기능을 통한 EPC(암호화된 페이지 캐시) 메모리 기반 Pod 일정 예약
- Intel SGX DCAP 드라이버가 미리 설치되고 커널 종속성이 설치됨
- CPU 사용량 기반 수평 Pod 자동 크기 조정 및 클러스터 자동 크기 조정
- Ubuntu 18.04 Gen 2 VM 작업자 노드를 통한 Linux 컨테이너 지원
AKS용 기밀 컴퓨팅 추가 기능
추가 기능은 클러스터에서 기밀 컴퓨팅 Intel SGX 지원 노드 풀을 실행할 때 AKS에서 추가 기능을 사용하도록 설정합니다. AKS의 "confcom" 추가 기능을 사용하면 아래 기능을 사용할 수 있습니다.
Intel SGX용 Azure 디바이스 플러그 인
디바이스 플러그 인은 EPC(암호화된 페이지 캐시) 메모리에 대한 Kubernetes 디바이스 플러그 인 인터페이스를 구현하고 노드에서 디바이스 드라이버를 공개합니다. 실제로 이 플러그 인은 EPC 메모리를 Kubernetes의 또 다른 리소스 종류로 만듭니다. 사용자는 다른 리소스와 마찬가지로 이 리소스에 대한 제한을 지정할 수 있습니다. 디바이스 플러그 인은 일정 예약 기능 외에도 Intel SGX 디바이스 드라이버 권한을 기밀 컨테이너 배포에 할당하는 데 도움이 됩니다. 이 플러그 인을 사용하면 개발자가 Intel SGX 드라이버 볼륨을 배포 파일에 탑재하지 않을 수 있습니다. AKS 클러스터의 이 추가 기능은 Intel SGX가 지원되는 VM 노드당 디먼 집합으로 실행됩니다. EPC 메모리 기반 배포(kubernetes.azure.com/sgx_epc_mem_in_MiB
) 샘플의 샘플 구현은 여기에 있습니다.
플랫폼 소프트웨어 구성 요소 를 사용하는 Intel SGX 견적 도우미
플러그 인의 일부로 AKS 클러스터에서 사용할 수 있는 Intel SGX의 VM 노드당 다른 디먼 집합이 배포됩니다. 이 디먼 집합은 원격 out-of-proc 증명 요청이 호출될 때 기밀 컨테이너 앱에 도움이 됩니다.
원격 증명을 수행하는 enclave 애플리케이션은 Quote를 생성해야 합니다. Quote는 enclave의 호스트 환경과 함께 애플리케이션의 ID 및 상태에 대한 암호화 증명을 제공합니다. Quote 생성에는 SGX 플랫폼 소프트웨어 구성 요소(PSW/DCAP)의 일부인 Intel의 신뢰할 수 있는 특정 소프트웨어 구성 요소가 필요합니다. 이 PSW는 노드당 실행되는 디먼 집합으로 패키지되어 있습니다. enclave 앱에서 증명 견적을 요청할 때 PSW를 사용할 수 있습니다. AKS 제공 서비스를 사용하면 AKS VM 노드의 일부인 Intel SGX 드라이버와 호스트의 PSW, 기타 SW 구성 요소 간의 호환성을 더 잘 유지할 수 있습니다. 컨테이너 배포의 일부로 증명 기본 형식을 패키지할 필요 없이 앱에서 이 디먼 집합을 사용하는 방법에 대한 자세한 내용은 여기를 참조하세요.
프로그래밍 모델
파트너 및 OSS를 통한 기밀 컨테이너
기밀 컨테이너는 대부분의 일반 프로그래밍 언어 런타임(Python, Node, Java 등)의 수정되지 않은 기존 컨테이너 애플리케이션을 기밀로 실행하는 데 도움이 됩니다. 이 패키징 모델은 소스 코드 수정 또는 다시 컴파일이 필요하지 않으며 표준 Docker 컨테이너를 Open-Source Projects 또는 Azure 파트너 솔루션으로 패키징하여 달성한 Intel SGX enclave에서 실행하는 가장 빠른 방법입니다. 이 패키징 및 실행 모델에서는 컨테이너 애플리케이션의 모든 부분이 신뢰할 수 있는 경계(enclave)에 로드됩니다. 이 모델은 시장에서 사용할 수 있는 기성 컨테이너 애플리케이션 또는 현재 범용 노드에서 실행되는 사용자 지정 애플리케이션에 적합합니다. 준비 및 배포 프로세스에 대한 자세한 내용은 여기를 참조하세요.
enclave 인식 컨테이너
AKS의 기밀 컴퓨팅 노드는 CPU에서 사용할 수 있는 특수 명령 세트를 활용하기 위해 enclave에서 실행되도록 프로그래밍된 컨테이너도 지원합니다. 이 프로그래밍 모델을 사용하면 실행 흐름을 더 엄격하게 제어할 수 있으며, 특수 SDK 및 프레임워크를 사용해야 합니다. 이 프로그래밍 모델은 가장 낮은 TCB(신뢰 컴퓨팅 기반)를 사용하여 애플리케이션 흐름을 대부분 제어합니다. enclave 인식 컨테이너 개발에는 컨테이너 애플리케이션의 신뢰할 수 없는 부분과 신뢰할 수 있는 부분이 포함되므로 enclave가 실행되는 일반 메모리 및 EPC(암호화된 페이지 캐시) 메모리를 관리할 수 있습니다. enclave 인식 컨테이너에 대해 자세히 참조하세요.
질문과 대답(FAQ)
여기에서 Intel SGX 기반 기밀 컴퓨팅 노드에 대한 AKS(Azure Kubernetes Service) 노드 풀 지원에 대한 몇 가지 일반적인 질문에 대한 답변을 여기에서 찾습니다.
다음 단계
Intel SGX Confidential VMs - DCsv2 SKU 목록