의료 플랫폼의 기밀 컴퓨팅

Azure Attestation
Kubernetes Service

조직에서 공동 작업할 때 정보를 공유 합니다.When organizations collaborate, they share information. 하지만 대부분의 파티는 데이터의 모든 부분에 대 한 액세스 권한을 다른 당사자에 게 제공 하지 않으려고 합니다.But most parties don't want to give other parties access to all parts of the data. 미사용 및 전송 중인 데이터를 보호 하는 메커니즘이 있습니다.Mechanisms exist for safeguarding data at rest and in transit. 그러나 사용 중인 데이터를 암호화 하는 경우에는 다른 과제가 발생 합니다.However, encrypting data in use poses different challenges. 이 문서에서는 사용 중인 데이터를 암호화 하기 위해 Azure에서 제공 하는 데이터를 제공 하는 솔루션을 제공 합니다.This article presents a solution that Azure confidential computing (ACC) offers for encrypting in-use data.

솔루션은 기밀 컴퓨팅 및 컨테이너를 사용 하 여 공급자가 호스팅하는 응용 프로그램이 병원 및 타사 진단 공급자와 안전 하 게 공동 작업할 수 있는 방법을 제공 합니다.By using confidential computing and containers, the solution provides a way for a provider-hosted application to securely collaborate with a hospital and a third-party diagnostic provider. AKS (Azure Kubernetes Service)는 기밀 컴퓨팅 노드를 호스팅합니다.Azure Kubernetes Service (AKS) hosts confidential computing nodes. Azure 증명은 진단 공급자와의 트러스트를 설정 합니다.Azure Attestation establishes trust with the diagnostic provider. 이러한 Azure 구성 요소를 사용 하 여 아키텍처는 특정 공유 데이터를 클라우드에서 처리 하는 동안 병원 환자의 중요 한 데이터를 격리 합니다.By using these Azure components, the architecture isolates the sensitive data of the hospital patients while the specific shared data is being processed in the cloud. 그러면 병원 데이터에 진단 공급자가 액세스할 수 없게 됩니다.The hospital data is then inaccessible to the diagnostic provider. 이 아키텍처를 통해 공급자 호스트 응용 프로그램에서 고급 분석을 활용할 수도 있습니다.Through this architecture, the provider-hosted application can also take advantage of advanced analytics. 진단 공급자는 기계 학습 (기계 학습) 응용 프로그램의 기밀 컴퓨팅 서비스로 이러한 분석을 사용할 수 있도록 합니다.The diagnostic provider makes these analytics available as confidential computing services of machine learning (ML) applications.

잠재적인 사용 사례Potential use cases

많은 산업은 이러한 용도로 기밀 컴퓨팅을 사용 하 여 데이터를 보호 합니다.Many industries protect their data by using confidential computing for these purposes:

  • 금융 데이터 보안Securing financial data
  • 환자 정보 보호Protecting patient information
  • 중요 한 정보에 대해 ML 프로세스 실행Running ML processes on sensitive information
  • 여러 원본의 암호화 된 데이터 집합에 대 한 알고리즘 수행Performing algorithms on encrypted datasets from many sources
  • 컨테이너 데이터 및 코드 무결성 보호Protecting container data and code integrity

아키텍처Architecture

기밀 의료 플랫폼 데모의 다이어그램입니다. 플랫폼에는 병원, 의료 플랫폼 공급자 및 진단 공급자가 포함 되어 있습니다.

의료 설정에서 3 자 사이의 데이터 흐름을 보여 주는 다이어그램입니다.Diagram showing how data flows between three parties in a healthcare setting. 3 개의 사각형은 병원, 의료 플랫폼 및 진단 공급자 라는 세 가지 파티를 나타냅니다.Three rectangles represent the three parties: a hospital, a medical platform, and a diagnostic provider. 각 사각형에는 웹 사이트, 클라이언트 응용 프로그램, Azure 증명, 웹 API, 데이터 저장소 및 런타임과 같은 다양 한 구성 요소를 나타내는 아이콘이 포함 되어 있습니다.Each rectangle contains icons that represent various components, such as a website, a client application, Azure Attestation, a web API, data storage, and a runtime. 의료 플랫폼과 진단 공급자 사각형에는 기밀 노드와 K 개의 클러스터를 나타내는 더 작은 사각형도 포함 됩니다.The medical platform and diagnostic provider rectangles also contain smaller rectangles that represent confidential nodes and A K S clusters. 화살표는 이러한 구성 요소를 연결 하 고 데이터 흐름을 표시 합니다.Arrows connect these components and show the flow of data. 번호가 매겨진 설명선은이 문서에서 설명 하는 단계에 해당 합니다.Numbered callouts correspond to the steps that this article describes after the diagram.

이 아키텍처의 svg 를 다운로드 합니다.Download an .svg of this architecture.

다이어그램은 아키텍처를 간략하게 설명 합니다.The diagram outlines the architecture. 시스템 전체:Throughout the system:

  • 네트워크 통신은 전송 중에 TLS로 암호화 됩니다.Network communication is TLS encrypted in transit.
  • Azure Monitor는 구성 요소 성능을 추적 하 고 ACR (Azure Container Registry)은 솔루션의 컨테이너를 관리 합니다.Azure Monitor tracks component performance, and Azure Container Registry (ACR) manages the solution's containers.

이 솔루션에는 다음 단계가 포함 됩니다.The solution involves the following steps:

  1. 로컬 병원의 클럭은 웹 포털을 엽니다.A clerk for a local hospital opens a web portal. 전체 웹 앱은 Azure Blob Storage 정적 웹 사이트입니다.The entire web app is an Azure Blob Storage static website.
  2. 이 클럭은 병원의 웹 포털에 데이터를 입력 합니다. 그러면 널리 사용 되는 의료 플랫폼 공급 업체에서 작성 한 Python Flask 기반 웹 API에 연결 됩니다.The clerk enters data into the hospital's web portal, which connects to a Python Flask–based web API built by a popular medical platform vendor. Scone 기밀 컴퓨팅 소프트웨어의 기밀 노드가 환자 데이터를 보호 합니다.A confidential node in the SCONE confidential computing software protects the patient data. SCONE은 enclave에서 컨테이너를 실행 하는 데 도움이 되는 SGX (Software Guard Extensions)를 사용 하는 AKS 클러스터 내에서 작동 합니다.SCONE works within an AKS cluster that has the Software Guard Extensions (SGX) enabled that help run the container in an enclave. 웹 API는 신뢰할 수 있는 실행 환경에서 중요 한 데이터 및 앱 코드가 암호화 되 고 격리 된다는 증거를 제공 합니다.The Web API will provide evidence that the sensitive data and app code is encrypted and isolated in a Trusted Execution Environment. 즉, 일반 텍스트 데이터 나 응용 프로그램 코드에 액세스할 수 있는 사람, 프로세스 및 로그가 없습니다.This means that no humans, no processes, and no logs have access to the cleartext data or the application code.
  3. 병원의 웹 앱 클라이언트는 증명 서비스 (Azure 증명)가이 증명 정보를 확인 하도록 요청 하 고 다른 앱에서 확인할 서명 된 증명 토큰 을 받습니다.The hospital's web app client requests that an attestation service (Azure Attestation) validates this evidence, and receives a signed attestation token for other apps to verify.
  4. 웹 API가 추가 구성 요소 (예: Redis cache)를 필요로 하는 경우 증명 토큰을 따라 전달 하 여 데이터 및 앱 코드가 안전한 enclave에 남아 있는지 확인할 수 있습니다 (확인을 위한 6 단계 참조).If the Web API requires additional components (like a Redis cache), it can pass along the attestation token to verify that the data and app code have so far remained in a safe enclave (see step 6 for verification).
  5. Web API는 타사 진단 공급자가 호스팅하는 ML 모델과 같은 원격 서비스도 사용할 수 있습니다.The Web API can even consume remote services, such as an ML model hosted by a third-party diagnostics provider. 이 작업을 수행 하는 경우 필요한 enclaves가 안전 하다는 증명 토큰을 계속 전달 합니다.When doing so, it continues to pass along any attestation tokens for evidence that required enclaves are safe. 웹 API는 진단 공급자의 인프라에 대 한 증명 토큰을 수신 및 확인 하려고 할 수도 있습니다.The Web API could also attempt to receive and verify attestation tokens for the diagnostic provider's infrastructure.
  6. 원격 인프라는 의료 플랫폼의 웹 api에서 증명 토큰을 수락 하 고 Azure 증명 서비스에서 찾은 공용 인증서를 사용 하 여 확인 합니다.The remote infrastructure accepts the attestation token from the medical platform's web api and verifies it with a public certificate found in the Azure Attestation service. 토큰이 확인 되 면 enclave은 안전 하 고 데이터 또는 앱 코드는 enclave 외부에서 열리지 않습니다.If the token is verified, there is near certainty that the enclave is safe and neither the data or app code have been opened outside of the enclave.
  7. 데이터를 노출 하지 않은 것으로 확신 하는 진단 공급자는 ONNX (Open 신경망 Exchange) 런타임 서버에서 자체 enclave에 보냅니다.The diagnostics provider, confident that the data has not been exposed, sends it into its own enclave in an Open Neural Network Exchange (ONNX) runtime server. AI 모델은 의료 이미지를 해석 하 고 해당 진단 결과를 의료 플랫폼의 기밀 웹 API 앱으로 다시 반환 합니다.An AI model interprets the medical imagery and returns its diagnosis results back to the medical platform's confidential Web API app. 여기에서 소프트웨어는 환자 기록과 상호 작용 하 고 다른 병원 직원에 게 문의할 수 있습니다.From here, the software can then interact with patient records and/or contact other hospital staff.

구성 요소Components

  • Blob Storage의 정적 웹 사이트 호스팅 에서는 HTML, CSS, JavaScript 및 이미지 파일 같은 정적 콘텐츠를 저장소 컨테이너에서 직접 제공 합니다.Static website hosting in Blob Storage serves static content like HTML, CSS, JavaScript, and image files directly from a storage container.

  • Azure 증명 은 플랫폼의 신뢰성을 원격으로 확인 하는 통합 솔루션입니다.Azure Attestation is a unified solution that remotely verifies the trustworthiness of a platform. 또한 Azure 증명은 플랫폼에서 실행 되는 이진 파일의 무결성을 원격으로 확인 합니다.Azure Attestation also remotely verifies the integrity of the binaries that run in the platform. Azure 증명을 사용 하 여 기밀 응용 프로그램으로 신뢰를 설정 합니다.Use Azure Attestation to establish trust with the confidential application.

  • AKS 클러스터 는 Kubernetes 클러스터를 배포 하는 프로세스를 간소화 합니다.AKS Cluster simplifies the process of deploying a Kubernetes cluster.

  • 기밀 컴퓨팅 노드 는 특정 가상 머신 시리즈에서 호스트 됩니다 .이는 사용자 수준 코드를 사용 하 여 enclaves 라는 개인 메모리 영역을 할당할 수 있도록 함으로써 하드웨어 기반 AKS에서 중요 한 작업을 실행할 수 있습니다.Confidential computing nodes are hosted on a specific virtual machine series that can run sensitive workloads on AKS within a hardware-based trusted execution environment (TEE) by allowing user-level code to allocate private regions of memory, known as enclaves. 기밀 컴퓨팅 노드는 기밀 컨테이너 또는 enclave 인식 컨테이너를 지원할 수 있습니다.Confidential computing nodes can support confidential containers or enclave-aware containers.

  • Scone 플랫폼 은 scone의 AZURE Partner ISV (독립 소프트웨어 공급 업체) 솔루션입니다.SCONE platform is an Azure Partner independent software vendor (ISV) solution from Scontain.

  • Redis 은 오픈 소스 메모리 내 데이터 구조 저장소입니다.Redis is an open-source, in-memory data structure store.

  • SCONE (Secure Container Environment) 은 Kubernetes 클러스터 내에서 실행 되는 컨테이너에서 기밀 응용 프로그램의 실행을 지원 합니다.Secure Container Environment (SCONE) supports the execution of confidential applications in containers that run inside a Kubernetes cluster.

  • 추론 Onnx Runtime Server Enclave (ONNX RT-Enclave) 는 추론 요청 및 해당 응답에 모두 액세스할 수 없도록 ML 호스팅 파티를 제한 하는 호스트입니다.Confidential Inferencing ONNX Runtime Server Enclave (ONNX RT - Enclave) is a host that restricts the ML hosting party from accessing both the inferencing request and its corresponding response.

대안Alternatives

  • SCONE 대신 Fortanix 를 사용 하 여 컨테이너 화 된 응용 프로그램에서 사용할 기밀 컨테이너를 배포할 수 있습니다.You can use Fortanix instead of SCONE to deploy confidential containers to use with your containerized application. Fortanix는 기존 응용 프로그램, 새로운 enclave, 네이티브 응용 프로그램 및 사전 패키지 된 응용 프로그램 등 광범위 한 응용 프로그램을 실행 하 고 관리 하는 데 필요한 유연성을 제공 합니다.Fortanix provides the flexibility you need to run and manage the broadest set of applications: existing applications, new enclave-native applications, and pre-packaged applications.

  • Graphene 는 경량 오픈 소스 게스트 OS입니다.Graphene is a lightweight, open-source guest OS. Graphene는 완전 한 OS를 실행 하는 것과 유사한 이점을 제공 하는 격리 된 환경에서 단일 Linux 응용 프로그램을 실행할 수 있습니다.Graphene can run a single Linux application in an isolated environment with benefits comparable to running a complete OS. 기존 Docker 컨테이너 응용 프로그램을 GSC (Graphene 차폐 컨테이너)로 변환 하는 데 적합 한 도구를 지원 합니다.It has good tooling support for converting existing Docker container applications to Graphene Shielded Containers (GSC).

고려 사항Considerations

Azure 기밀 컴퓨팅 Vm (가상 머신)은 일반적인 용도에 맞게 2 세대 D 제품군 크기에서 사용할 수 있습니다.Azure confidential computing virtual machines (VMs) are available in 2nd-generation D family sizes for general purpose needs. 이러한 크기는 집합적으로 D 시리즈 v2 또는 DCsv2 시리즈 라고 합니다.These sizes are known collectively as D-Series v2 or DCsv2 series. 이 시나리오에서는 Gen2 OS (운영 체제) 이미지가 포함 된 Intel SGX 사용 DCs_v2 시리즈 가상 컴퓨터를 사용 합니다.This scenario uses Intel SGX-enabled DCs_v2-series virtual machines with Gen2 operating system (OS) images. 그러나 특정 지역 에서만 특정 크기를 배포할 수 있습니다.But you can only deploy certain sizes in certain regions. 자세한 내용은 빠른 시작: Marketplace에서 Azure 기밀 컴퓨팅 VM 배포지역별 사용 가능한 제품을 참조 하세요.For more information, see Quickstart: Deploy an Azure Confidential Computing VM in the Marketplace and Products available by region.

시나리오 배포Deploy this scenario

이 시나리오를 배포 하려면 다음과 같은 개략적인 단계를 수행 해야 합니다.Deploying this scenario involves the following high-level steps:

  • 기존 SGX 지원 AKS 클러스터에 기밀 추론 서버를 배포 합니다.Deploy the confidential inferencing server on an existing SGX-enabled AKS Cluster. 이 단계에 대 한 자세한 내용은 GitHub의 기밀 ONNX 유추 서버 프로젝트를 참조 하세요.See the confidential ONNX inference server project on GitHub for information on this step.

  • Azure 증명 정책을 구성 합니다.Configure Azure Attestation policies.

  • SGX를 사용 하는 AKS 클러스터 노드 풀을 배포 합니다.Deploy an SGX-enabled AKS cluster node pool.

  • SconeApps 라는 큐 레이트 기밀 응용 프로그램에 대 한 액세스 권한을 얻습니다.Get access to curated confidential applications called SconeApps. SconeApps는 현재 상용 고객만 사용할 수 있는 개인 GitHub 리포지토리에서 사용할 수 있습니다.SconeApps are available on a private GitHub repository that's currently only available for commercial customers, through SCONE Standard Edition. Scone 웹 사이트로 이동 하 고 회사에 직접 문의 하 여이 서비스 수준을 가져옵니다.Go to the SCONE website and contact the company directly to get this service level.

  • AKS 클러스터에 SCONE 서비스를 설치 하 고 실행 합니다.Install and run SCONE services on your AKS cluster.

  • AKS 클러스터에서 Flask 기반 응용 프로그램을 설치 하 고 테스트 합니다.Install and test the Flask-based application on your AKS cluster.

  • 웹 클라이언트를 배포 하 고 액세스 합니다.Deploy and access the web client.

이러한 단계는 enclave 컨테이너에 초점을 둡니다.These steps focus on the enclave containers. 보안 인프라는이 구현 이상으로 확장 되며 HIPAA에서 요구 하는 추가 보호와 같은 규정 준수 요구 사항을 포함 합니다.A secured infrastructure would extend beyond this implementation and include compliance requirements, such as added protections required by HIPAA.

가격 책정Pricing

이 시나리오를 실행 하는 데 드는 비용을 살펴보려면 모든 Azure 서비스를 미리 구성 azure 가격 계산기를 사용 합니다.To explore the cost of running this scenario, use the Azure pricing calculator, which preconfigures all Azure services.

샘플 비용 프로필 은 다이어그램에 나와 있는 것 처럼 Contoso 의료 SaaS 플랫폼에 사용할 수 있습니다.A sample cost profile is available for the Contoso Medical SaaS Platform, as pictured in the diagram. 다음 구성 요소가 포함되어 있습니다.It includes the following components:

  • 시스템 노드 풀 및 SGX 노드 풀: 디스크 없음, 모든 임시System node pool and SGX node pool: no disks, all ephemeral
  • AKS Load BalancerAKS Load Balancer
  • Azure Virtual Network: 명목상Azure Virtual Network: nominal
  • Azure Container RegistryAzure Container Registry
  • SPA (단일 페이지 응용 프로그램)에 대 한 저장소 계정Storage account for single-page application (SPA)

프로필에는 다음 구성 요소가 포함 되어 있지 않습니다.The profile doesn't include the following components:

  • Azure 증명 서비스: 무료Azure Attestation Service: free

  • Azure Monitor 로그: 사용량 기반Azure Monitor Logs: usage based

  • SCONE ISV 라이선스SCONE ISV licensing

  • 다음을 포함 하 여 중요 한 데이터로 작업 하는 솔루션에는 규정 준수 서비스가 필요 합니다.Compliance services required for solutions working with sensitive data, including:

    • Azure Security Center 및 Azure Defender for KubernetesAzure Security Center and Azure Defender for Kubernetes
    • Azure DDoS Protection: 표준Azure DDoS Protection: standard
    • Azure FirewallAzure Firewall
    • Azure 애플리케이션 게이트웨이 및 Azure 웹 응용 프로그램 방화벽Azure Application Gateway and Azure Web Application Firewall
    • Azure Key VaultAzure Key Vault

다음 단계Next steps