AKS(Azure Kubernetes Service)의 기밀 컴퓨팅 노드에 대한 질문과 대답

이 문서에서는 AKS(Azure Kubernetes Service)의 Intel SGX 기반 기밀 컴퓨팅 노드에 대해 자주 묻는 질문을 해결합니다. 추가 질문이 있는 경우 acconaks@microsoft.com으로 문의하세요.

Product

AKS의 기밀 컴퓨팅 노드를 프로덕션 용도로 사용할 수 있나요?

예, Intel SGX Enclave 노드의 경우 사용 가능합니다.

Azure 기밀 컴퓨팅 AKS 클러스터를 통해 가속화된 네트워킹을 사용할 수 있나요?

예, DCSv3 VM 노드는 가속화된 네트워킹을 지원합니다. DCSv2 가상 머신은 그렇지 않습니다.

기밀 노드에 대한 AKS 이미지에 있는 Intel SGX Driver 버전의 버전은 무엇입니까?

현재 Azure 기밀 컴퓨팅 DCSv2/DCSv3 VM은 Intel SGX DCAP 1.33.2와 함께 설치됩니다.

사후 설치 스크립트를 삽입하거나 AKS에서 프로비전된 노드에 드라이버를 사용자 지정할 수 있나요?

아니요. AKS 엔진 기반 기밀 컴퓨팅 노드는 사용자 지정 설치를 허용하고 Kubernetes 컨트롤 플레인에 대한 모든 권한을 보유하는 기밀 컴퓨팅 노드를 지원합니다.

다른 표준 AKS SKU(다른 유형의 노드 풀 클러스터 빌드)를 사용하여 ACC 노드를 실행할 수 있나요?

예, ACC 노드를 포함하여 동일한 AKS 클러스터 내에서 다른 노드 풀을 실행할 수 있습니다. 특정 노드 풀에서 enclave 애플리케이션을 대상으로 지정하려면 노드 선택기를 추가하거나 EPC 제한을 적용하는 것이 좋습니다. 여기에서 기밀 노드의 빠른 시작에 대한 자세한 내용을 참조하세요.

ACC로 Windows 노드와 Windows 컨테이너를 실행할 수 있나요?

현재는 불가능합니다. Windows 노드나 컨테이너가 필요한 경우 acconaks@microsoft.com에서 제품 팀에 문의하세요.

기밀 컴퓨팅 노드에서 여전이 비 enclave 컨테이너를 예약하고 실행할 수 있나요?

예. 또한 VM에는 표준 컨테이너 작업을 실행할 수 있는 일반 메모리가 있습니다. 배포 모델을 결정하기 전에 애플리케이션의 보안 및 위협 모델을 고려해야 합니다.

기밀 컴퓨팅 노드에 대해 어떤 VM SKU를 선택해야 하나요?

DCSv2/DCsv3 SKU. DCSv2DCSv3에 대한 자세한 내용은 지원되는 지역에서 확인할 수 있습니다.

Azure Portal을 통해 DCSv2 노드 풀로 AKS를 프로비전할 수 있나요?

예. 여기에 설명된 대로 Azure CLI를 사용할 수도 있습니다.

지원되는 Ubuntu 버전 및 VM 생성은 무엇인가요?

Gen 2에서 18.04

제품의 알려진 현재 제한은 무엇인가요?

  • Ubuntu 18.04 Gen 2 VM 노드만 지원합니다.
  • Windows 노드 지원 또는 Windows 컨테이너 지원 없음
  • EPC 메모리 기반 수평 Pod 자동 크기 조정을 지원하지 않습니다. CPU 및 일반 메모리 기반 크기 조정이 지원됩니다.
  • 기밀 앱에 대한 AKS의 개발 공간은 현재 지원되지 않습니다.

Azure Portal을 통해 DCSv2/DCSv3 노드 풀로 AKS를 프로비전할 수 있나요?

예. 여기에 설명된 대로 Azure CLI를 사용할 수도 있습니다.

개발 및 배포

기존 컨테이너화된 애플리케이션을 가져와 Azure 기밀 컴퓨팅을 사용하여 AKS에서 실행할 수 있나요?

예, Intel SGX Enclave에서 실행할 SGX 래퍼 소프트웨어를 가져올 수 있습니다. 플랫폼 인에이블러에 대한 자세한 내용은 기밀 컨테이너 페이지를 검토하세요.

Docker 기본 이미지를 사용하여 enclave 애플리케이션을 시작해야 하나요?

다양한 인에이블러(ISV 및 OSS 프로젝트)는 기밀 컨테이너를 사용하도록 설정하는 방법을 제공합니다. 기밀 컨테이너 페이지에서 구현에 대한 자세한 내용과 개별 참조를 검토합니다.

기밀 컨테이너 개념

증명이란 무엇이며, Enclave에서 실행되는 앱의 증명을 어떻게 할 수 있나요?

증명은 특정 하드웨어 플랫폼에서 소프트웨어의 일부가 올바르게 인스턴스화되었는지 확인하고 유효성을 검사하는 프로세스입니다. 또한 보안 플랫폼에서 실행 중이고 변조되지 않았다는 보증을 제공하기 위해 증명 정보를 확인할 수 있도록 합니다. Enclave 앱에 대해 증명을 수행하는 방법에 대해 자세히 알아보세요.

컨테이너 크기가 사용 가능한 EPC 메모리보다 많은 경우는 어떻게 되나요?

EPC 메모리는 enclave에서 실행하도록 프로그래밍된 애플리케이션의 일부에 적용됩니다. 컨테이너의 총 크기는 사용 가능한 최대 EPC 메모리와 비교할 수 있는 올바른 방법이 아닙니다. 실제로 SGX를 사용하는 DCSv2 머신은 신뢰할 수 없는 애플리케이션 부분이 활용하는 32GB의 최대 VM 메모리를 허용합니다. 그러나 컨테이너가 사용 가능한 EPC 메모리 이상을 사용하는 경우 enclave에서 실행되는 프로그램 부분의 성능이 영향을 받을 수 있습니다.

작업자 노드에서 EPC 메모리를 보다 효율적으로 관리하려면 Kubernetes를 통해 EPC 메모리 기반 제한 관리를 고려합니다. 아래 예제를 참조로 사용합니다.

참고 항목

다음 예제에서는 Docker 허브에서 공용 컨테이너 이미지를 가져옵니다. 익명의 끌어오기 요청을 하는 대신 Docker Hub 계정을 사용하여 인증하도록 끌어오기 비밀을 설정하는 것이 좋습니다. 공용 콘텐츠를 사용할 때 신뢰성을 향상시키려면 개인 Azure Container Registry에서 이미지를 가져오고 관리하세요. 공용 이미지 사용에 대해 자세히 알아봅니다.

apiVersion: batch/v1
kind: Job
metadata:
  name: sgx-test
  labels:
    app: sgx-test
spec:
  template:
    metadata:
      labels:
        app: sgx-test
    spec:
      containers:
      - name: sgxtest
        image: oeciteam/sgx-test: 1.0
        resources:
          limits:
            sgx.intel.com/sgx_epc_mem_in_MiB: 10 # This limit will automatically place the job into confidential computing node. Alternatively, you can target deployment to node pools
      restartPolicy: Never
  backoffLimit: 0

enclave에서 사용 가능한 최대 EPC 메모리 이상을 사용하는 경우 어떻게 되나요?

사용 가능한 총 EPC 메모리는 동일한 VM 또는 작업자 노드의 enclave 애플리케이션 간에 공유됩니다. 애플리케이션에서 사용 가능한 것보다 많은 EPC 메모리를 사용하는 경우 애플리케이션 성능에 영향을 줄 수 있습니다. 이러한 이유로 위의 예제에 표시된 것처럼 작업자 노드당 사용 가능한 EPC 메모리를 보다 효율적으로 관리하려면 배포 yaml 파일에서 애플리케이션당 toleration을 설정하는 것이 좋습니다. 또는 언제든지 작업자 노드 풀 VM 크기를 위로 이동하거나 노드를 더 추가하도록 선택할 수 있습니다.

enclave 애플리케이션에서 여러 프로세스를 실행하기 위해 포크() 및 exec를 수행할 수 없는 이유는 무엇입니까?

현재 Azure 기밀 컴퓨팅 DCsv2 SKU VM은 enclave에서 실행되는 프로그램에 대해 단일 주소 공간을 지원합니다. 단일 프로세스는 높은 보안을 중심으로 설계된 현재 제한 사항입니다. 그러나 기밀 컨테이너 인에이블러에는 이러한 제한을 극복하기 위한 대체 구현이 있을 수 있습니다.

내 배포 yaml에서 드라이버 볼륨을 탑재해야 하나요?

아니요. 제품에서 (confcom)이 포함된 ACC 추가 기능을 제공합니다. 자세한 배포 세부 정보는 여기를 참조하세요.

AKS의 현재 Intel SGX DCAP 드라이버 버전을 변경할 수 있나요?

아니요. 사용자 지정 설치를 수행하려면 AKS 엔진 기밀 컴퓨팅 작업자 노드 배포를 선택하는 것이 좋습니다.

기밀 컴퓨팅을 위해 서명되고 신뢰할 수 있는 이미지만 enclave에 로드되나요?

enclave 초기화 중에는 기본적으로 아니지만 증명 프로세스 서명을 통해 유효성을 검사할 수 있습니다. 여기를 참조하세요.

컨테이너 서명에서 코드 무결성 보호를 기밀 컨테이너에 제공할 수 있나요?

기밀 컨테이너를 사용하면 Enclave 코드에 서명할 수 있지만 docker 컨테이너 자체에는 서명할 수 없습니다. enclave 코드(일반적으로 Java, Python 등의 핵심 애플리케이션 코드) 서명을 사용하면 증명 흐름을 통해 코드와 실행 환경을 신뢰할 수 있기 전에 enclave 코드의 MRSIGNER 세부 정보를 증명을 통해 확인할 수 있습니다.

다음 단계

기밀 컨테이너에 대한 자세한 내용은 기밀 컨테이너 페이지를 검토하세요.