Important
ほとんどの新しい機密コンピューティングワークロードでは、まずAzureの機密VMオプションと機密コンテナから始めましょう。 本記事は、専門的なエンクレーブ対応開発に焦点を当てています。
Intel SGX などのアプリケーション エンクレーブは、特定のコードとデータを保護する分離された環境です。 エンクレーブを作成するときは、アプリケーションのどの部分がエンクレーブ内で実行するかを決定する必要があります。 エンクレーブを作成または管理するときは、選択したデプロイ スタックに互換性のある SDK とフレームワークを必ず使用してください。
注
もしまだIntel SGX VMとエンクレーブの導入を読んでいなければ、続ける前に必ず読んでください。
Microsoft メカニクス
アプリケーションの開発
エンクレーブで構築されたアプリケーションには2つのパーティションがあります。
ホストは"信頼されていない" コンポーネントです。 エンクレーブ アプリケーションはホスト上で実行されます。 ホストは信頼されていない環境です。 ホストにエンクレーブ コードをデプロイすると、ホストはそのコードにアクセスできません。
エンクレーブは"信頼できる" コンポーネントです。 アプリケーション コードとそのキャッシュされたデータとメモリは、エンクレーブで実行されます。 エンクレーブ環境は、シークレットと機密データを保護します。 セキュリティで保護された計算がエンクレーブで発生することを確認します。
エンクレーブと分離された環境の機能を使用するには、コンフィデンシャル コンピューティングをサポートするツールを選択します。 エンクレーブ アプリケーション開発は、さまざまなツールでサポートされています。 たとえば、次のオープンソース フレームワークを使用できます。
- Open Enclave ソフトウェア開発キット(OE SDK)
- The Intel SGX SDK
- EGo ソフトウェア開発キット
- Confidential Consortium Framework (CCF)
アプリケーションを設計する際には、エンクレーブで動作させる部分を特定し、決定してください。 信頼されたコンポーネント内のコードは、アプリケーションの残りの部分から分離されます。 エンクレーブが初期化され、コードがメモリに読み込まれた後、信頼されていないコンポーネントはそのコードを読み取ったり変更したりすることはできません。