医療プラットフォームのコンフィデンシャル コンピューティング

Azure Attestation
Azure Kubernetes Service (AKS)

この記事では、Azure Confidential Computing (ACC) が使用中のデータを暗号化するために提供するソリューションについて説明します。

アーキテクチャ

機密医療プラットフォームのデモンストレーションの図。プラットフォームには、病院、医療プラットフォーム プロバイダー、診断プロバイダーが含まれています。

医療の設定で、3 つのパーティ間でデータがどのように流れるかを示す図 3 つの四角形は、病院、医療プラットフォーム、診断プロバイダーという 3 つのパーティを表します。 各四角形には、Web サイト、クライアント アプリケーション、Azure Attestation、Web API、データ ストレージ、ランタイムなどのさまざまなコンポーネントを表すアイコンが含まれています。 医療プラットフォームと診断プロバイダーの四角形には、機密ノードと A K S クラスターを表す小さな四角形も含まれています。 矢印は、これらのコンポーネントを接続し、データのフローを示します。 番号付きのコールアウトは、図の後にこの記事で説明する手順に対応しています。

このアーキテクチャの Visio ファイルをダウンロードします。

この図は、アーキテクチャの概要を示しています。 システム全体:

  • ネットワーク通信は、転送中には TLS で暗号化されます。
  • Azure Monitor はコンポーネントのパフォーマンスを追跡し、Azure Container Registry (ACR) はソリューションのコンテナーを管理します。

ワークフロー

このソリューションでは、次の手順を実行します。

  1. 地元の病院の事務員が Web ポータルを開きます。 Web アプリ全体が、Azure Blob Storage の静的な Web サイトです。
  2. 事務員が病院の Web ポータルにデータを入力します。このポータルは、一般的な医療プラットフォーム ベンダーによって構築された Python Flask ベースの Web API に接続します。 SCONE コンフィデンシャル コンピューティング ソフトウェアの機密ノードが患者のデータを保護します。 SCONE は AKS クラスター内で機能します。このクラスターでは、Software Guard Extensions (SGX) が有効になっており、エンクレーブでコンテナーを実行するのに役立ちます。 Web API は、高信頼実行環境で機密データとアプリ コードが暗号化され、分離されているという証拠を提供します。 これは、人、プロセス、ログが、クリア テキスト データやアプリケーション コードにアクセスできないことを意味します。
  3. 病院の Web アプリ クライアントは、構成証明サービス (Azure Attestation) がこの証拠を検証することを要求し、他のアプリが確認するための署名済み "構成証明トークン" を受け取ります。
  4. Web API は、追加のコンポーネント (Redis キャッシュなど) が必要な場合に、この構成証明トークンを渡して、データとアプリ コードがこれまでのところ安全なエンクレーブに保持されていることを確認できます (確認については手順 6. を参照)。
  5. Web API は、サードパーティの診断プロバイダーによってホストされている ML モデルなどのリモート サービスを使用することもできます。 その場合、必要なエンクレーブが安全であることを証明するために、引き続き構成証明トークンを渡します。 Web API は、診断プロバイダーのインフラストラクチャの構成証明トークンを受け取り、確認を試みることもできます。
  6. リモート インフラストラクチャは、医療プラットフォームの Web API から構成証明トークンを受け取ると、Azure Attestation サービスにある公開証明書を使用してそれを確認します。 トークンが確認されると、エンクレーブが安全であり、データもアプリ コードもエンクレーブの外部で開かれていないことがほぼ確実になります。
  7. データが公開されていないことを確信した診断プロバイダーは、Open Neural Network Exchange (ONNX) ランタイム サーバー内の独自のエンクレーブにデータを送信します。 AI モデルが医療画像を解釈し、その診断結果を医療プラットフォームの機密 Web API アプリに返します。 ここから、ソフトウェアでは患者記録の操作や他の病院スタッフへの連絡を行うことができます。

コンポーネント

  • Azure Blob Storage では、ストレージ コンテナーから直接に、HTML、CSS、JavaScript、画像ファイルなどの静的コンテンツが提供されます。

  • Azure Attestation は、プラットフォームの信頼性をリモートで検証する統合ソリューションです。 Azure Attestation は、プラットフォームで実行されているバイナリの整合性もリモートで検証します。 Azure Attestation を使用して、機密アプリケーションとの信頼関係を確立します。

  • Azure Kubernetes Service は、Kubernetes クラスターのデプロイのプロセスを簡略化します。

  • コンフィデンシャル コンピューティング ノードは、特定の仮想マシン シリーズでホストされます。これは、ユーザー レベルのコードでエンクレーブと呼ばれるメモリのプライベート領域を割り当てることができるようにすることによって、ハードウェアベースの信頼できる実行環境 (TEE) 内の AKS で機密性の高いワークロードを実行できます。 コンフィデンシャル コンピューティング ノードは、機密コンテナーまたはエンクレーブ対応のコンテナーをサポートできます。

  • SCONE プラットフォーム は、Scontain の Azure Partner の独立系ソフトウェア ベンダー (ISV) ソリューションです。

  • Redis は、オープンソースのメモリ内データ構造ストアです。

  • Secure Container Environment (SCONE) は、Kubernetes クラスター内で実行されるコンテナーでの機密アプリケーションの実行をサポートします。

  • 機密推論 ONNX Runtime Server エンクレーブ (ONNX RT-エンクレーブ) は、ML ホスティング パーティが推論要求とそれに対応する応答の両方にアクセスすることを制限するホストです。

代替

  • SCONE ではなく Fortanix を使用して、機密コンテナーをデプロイし、コンテナー化されたアプリケーションで使用できます。 Fortanix により、既存のアプリケーション、新しいエンクレーブ ネイティブ アプリケーション、事前パッケージ済みアプリケーションなど、幅広いアプリケーションのセットを実行して管理する、必要な柔軟性が提供されます。

  • Graphene は、軽量のオープンソースのゲスト OS です。 Graphene は、分離された環境で単一の Linux アプリケーションを実行できますが、完全な OS の実行と同等の利点を備えています。 既存の Docker コンテナー アプリケーションを Graphene Shielded Containers (GSC) に変換するための優れたツールがサポートされています。

シナリオの詳細

組織で共同作業を行う場合は、情報を共有します。 しかし、データのすべての部分へのアクセス権を他のパーティに付与したくないパーティがほとんどです。 保存データと転送中のデータを保護するメカニズムが存在します。 ただし、使用中のデータを暗号化すると、さまざまな課題が生じます。

このソリューションでは、コンフィデンシャル コンピューティングとコンテナーを使用することにより、プロバイダーがホストするアプリケーションで病院やサードパーティの診断プロバイダーと安全に共同作業する方法が提供されます。 Azure Kubernetes Service (AKS) のコンフィデンシャル コンピューティング ノード。 Azure Attestation により、診断プロバイダーとの信頼関係が確立されます。 これらの Azure コンポーネントを使用することにより、特定の共有データがクラウドで処理されている間、病院の患者の機密データは分離されます。 その後、診断プロバイダーは、病院のデータにアクセスできなくなります。 このアーキテクチャでは、プロバイダーがホストするアプリケーションで高度な分析も利用することもできます。 診断プロバイダーは、機械学習 (ML) アプリケーションのコンフィデンシャル コンピューティング サービスとして、これらの分析を利用できるようにします。

考えられるユース ケース

多くの業界で、コンフィデンシャル コンピューティングを使用することによってデータを保護しています。その目的を以下に示します。

  • 財務データをセキュリティで保護する
  • 患者の情報を保護する
  • 機密情報に対して ML 処理を実行する
  • 多数のソースからの暗号化されたデータ セットに対してアルゴリズムを実行する
  • コンテナー データとコードの整合性を保護する

考慮事項

これらの考慮事項は、ワークロードの品質向上に使用できる一連の基本原則である Azure Well-Architected Framework の要素を組み込んでいます。 詳細については、「Microsoft Azure Well-Architected Framework」を参照してください。

Azure Confidential Computing 仮想マシン (VM) は、汎用的なニーズに合わせて、第 2 世代の D ファミリ サイズで利用できます。 これらのサイズは、総称して D シリーズ v2 または DCsv2 シリーズと呼ばれます。 このシナリオでは、Gen2 オペレーティング システム (OS) イメージを使用して、Intel SGX 対応の DCs_v2 シリーズの仮想マシンを使用します。 ただし、特定の領域では特定のサイズのみをデプロイできます。 詳細については、「クイック スタート: Marketplace で Azure Confidential Computing VM をデプロイする」および「リージョン別の利用可能な製品」をご覧ください。

コスト最適化

コストの最適化とは、不要な費用を削減し、運用効率を向上させる方法を検討することです。 詳しくは、コスト最適化の柱の概要に関する記事をご覧ください。

このシナリオの実行コストを調べるには、Azure 料金計算ツールを使用します。これには、すべての Azure サービスが事前構成されています。

サンプル コスト プロファイル は、図に示すように、Contoso Medical SaaS プラットフォームで使用できます。 アーキテクチャに含まれるコンポーネントを次に示します。

  • システム ノード プールと SGX ノード プール: ディスクなし、すべて短期
  • AKS ロード バランサー
  • Azure Virtual Network: 公称
  • Azure Container Registry
  • シングルページアプリケーション (SPA) のストレージ アカウント

プロファイルには、次のコンポーネントは含まれません。

  • Azure Attestation サービス: 無料

  • Azure Monitor ログ: 使用量ベース

  • SCONE ISV ライセンス

  • 機密データを操作するソリューションに必要なコンプライアンス サービス (以下を含む)

    • Microsoft Defender for Cloud と Microsoft Defender for Kubernetes
    • Azure DDoS Protection: ネットワーク保護
    • Azure Firewall
    • Azure Application Gateway と Azure Web Application Firewall
    • Azure Key Vault

このシナリオのデプロイ

このシナリオでのデプロイには、次の大まかなステップが含まれます。

  • 既存の SGX 対応の AKS クラスターに機密推論サーバーをデプロイします。 この手順の詳細については、GitHub の 機密 ONNX 推論サーバー プロジェクトをご覧ください。

  • Azure Attestation のポリシーを構成します。

  • SGX 対応の AKS クラスター ノード プールをデプロイします。

  • SconeApps と呼ばれるキュレーション機密アプリケーションにアクセスします。 SconeApps は、現在、商用のお客様のみに SCONE Standard Edition を通じて提供されているプライベート GitHub リポジトリでご利用いただけます。 SCONE Web サイトにアクセスし、会社に直接問い合わせてこのサービス レベルを取得してください。

  • SCONE サービスを AKS クラスターにインストールして実行します。

  • Flask ベースのアプリケーションを AKS クラスターにインストールしてテストします。

  • Web クライアントをデプロイしてアクセスします。

これらの手順では、エンクレーブ コンテナーを対象にしています。 セキュリティで保護されたインフラストラクチャは、この実装を超えて拡張され、HIPAA に必要な追加の保護などのコンプライアンス要件が含まれます。

共同作成者

この記事は、Microsoft によって保守されています。 当初の寄稿者は以下のとおりです。

プリンシパル作成者:

  • Amar Gowda | プリンシパル製品マネージャー

次のステップ