Azure Kubernetes Service (AKS) 上の Confidential Computing ノードについてよく寄せられる質問

この記事では、Azure Kubernetes Service (AKS) 上の Intel SGX ベースの Confidential Computing ノードについてよく寄せられる質問にお答えします。 他に質問がある場合は、acconaks@microsoft.com にメールを送信してください。

Product

AKS 上の Confidential Computing ノードは、運用環境で使用できますか?

はい (Intel SGX エンクレーブ ノードの場合)。

Azure Confidential Computing AKS クラスターで高速ネットワークを有効にできますか。

はい。DCSv3 VM ノードでは高速ネットワークがサポートされます。 DCSv2 仮想マシンではサポートされません。

Confidential ノードの AKS イメージには、どのバージョンの Intel SGX ドライバーがありますか。

現在、Azure Confidential Computing DCSv2/DCSv3 VM は、Intel SGX DCAP 1.33.2 と共にインストールされています

AKS によってプロビジョニングされたノードに対してインストール後のスクリプトを挿入することや、ドライバーをカスタマイズすることはできますか。

不正解です。 AKS エンジン ベースの Confidential Computing ノードでは、カスタム インストールを実行でき、かつ Kubernetes コントロール プレーンをフル制御できる Confidential Computing ノードがサポートされています。

他の Standard AKS SKU で ACC ノードを実行する (異種ノード プール クラスターを構築する) ことはできますか。

はい。ACC ノードを含む同じ AKS クラスター内で異なるノード プールを実行できます。 特定のノード プール上のエンクレーブ アプリケーションをターゲットにするには、ノード セレクターを追加するか、EPC 制限を適用することを検討してください。 機密ノードのクイック スタートの詳細については、こちらを参照してください。

ACC で Windows ノードと Windows コンテナーを実行できますか。

現時点ではありません。 Windows ノードまたはコンテナーを必要とする場合は、製品チーム (acconaks@microsoft.com) にお問い合わせください。

Confidential Computing ノード上で非エンクレーブ コンテナーをスケジュールして実行することはできますか。

はい。 VM には、標準のコンテナー ワークロードを実行できる通常のメモリもあります。 デプロイ モデルを決定する前に、アプリケーションのセキュリティと脅威モデルを検討してください。

Confidential Computing ノードには、どのような 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 メモリ ベースの水平ポッド自動スケーリングはサポートされていません。 CPU と通常のメモリベースのスケーリングはサポートされています。
  • 機密アプリ用の AKS 上の Dev Spaces は現在サポートされていません

Azure portal を使用して DCSv2 または DCSv3 ノード プールで AKS をプロビジョニングできますか?

はい。 Azure CLI は、こちらに記載されている代替手段として使用することもできます。

開発とデプロイ

既存のコンテナー化されたアプリケーションを持ち込み、Azure Confidential Computing を使用する AKS 上で実行できますか。

はい。SGX ラッパー ソフトウェアを Intel SGX エンクレーブで実行します。プラットフォーム イネーブラーの詳細については、機密コンテナーに関するページを参照してください。

エンクレーブ アプリケーションを開始するには、Docker ベース イメージを使用する必要がありますか。

さまざまなイネーブラー (ISV および OSS プロジェクト) には、機密コンテナーを有効にする方法が用意されています。 詳細と実装への個々の参照については、「機密コンテナー」ページを参照してください。

機密コンテナーの概念

構成証明とは何ですか。エンクレーブで実行されているアプリの構成証明を実行するにはどうすればよいですか。

構成証明は、ソフトウェアの一部が特定のハードウェア プラットフォームで適切にインスタンス化されていることを実証および検証するプロセスです。 これにより、セキュリティで保護されたプラットフォームで実行されており、改ざんされていないことを保証する証拠が検証可能であることも確保されます。 エンクレーブ アプリの構成証明の実行方法の詳細について参照してください

コンテナー サイズが使用可能な EPC メモリを超えている場合はどうすればよいですか。

EPC メモリは、エンクレーブで実行するようにプログラムされているアプリケーションの部分に適用されます。 コンテナーの合計サイズは、使用可能な最大 EPC メモリと比較する場合に適した方法ではありません。 実際、SGX が搭載された DCSv2 マシンでは、アプリケーションの信頼されていない部分で使用される最大 32GB の VM メモリが許可されています。 ただし、コンテナーに使用可能な EPC メモリを超える量が消費される場合、エンクレーブで実行されているプログラムの部分のパフォーマンスが影響を受ける可能性があります。

ワーカー ノードの EPC メモリをより適切に管理するには、Kubernetes を介した EPC メモリベースの制限管理を検討してください。 以下の例を参考にしてください。

Note

次の例では、パブリック コンテナー イメージを Docker Hub からプルします。 匿名の pull request を行うのではなく、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

エンクレーブに使用可能な最大 EPC メモリを超える量が消費されるとどうなりますか。

使用可能な EPC メモリの合計は、同じ VM またはワーカー ノード内のエンクレーブ アプリケーション間で共有されます。 アプリケーションに使用可能な EPC メモリを超える量が使用されている場合、アプリケーションのパフォーマンスが影響を受ける可能性があります。 このため、上の例で示すように、デプロイの yaml ファイルでアプリケーションごとの許容値を設定して、ワーカー ノードごとに使用可能な EPC メモリをより適切に管理することをお勧めします。 または、ワーカー ノード プールの VM サイズの上限を引き上げるか、ノードを追加することをいつでも選択できます。

エンクレーブ アプリケーションで複数のプロセスを実行するために forks () と exec を実行できないのはなぜですか。

現在、Azure Confidential Computing DCsv2 SKU VM は、エンクレーブで実行されているプログラムに対して 1 つのアドレス空間をサポートしています。 1 つのプロセスは、高度なセキュリティを中心に設計された現在の制限です。 ただし、機密コンテナー イネーブラーには、この制限を克服できる代替実装が存在する場合があります。

デプロイの yaml でドライバー ボリュームをマウントする必要がありますか?

不正解です。 製品には、これに役立つ (confcom) を含む ACC アドオンが提供されています。 デプロイの詳細については、こちらをご覧ください。

AKS 上で現在の Intel SGX DCAP ダイバーのバージョンを変更できますか。

不正解です。 カスタム インストールを実行するには、AKS-Engine Confidential Computing ワーカー ノードのデプロイを選択することをお勧めします。

Confidential Computing では、署名され、信頼されたイメージのみがエンクレーブに読み込まれますか。

エンクレーブの初期化中はネイティブで行われませんが、構成証明プロセスを通じて署名を検証できるので、「はい」です。 こちらを参照してください。

機密コンテナーにコード整合性保護をもたらすコンテナー署名は可能ですか?

機密コンテナーを使用すると、エンクレーブ コードには署名できますが、Docker コンテナー自体にはできません。 エンクレーブ コード (通常は Java や Python などのコア アプリケーション コード) の署名を使用すると、構成証明フローを通じてコードと実行環境を信頼する前に、エンクレーブ コードの MRSIGNER の詳細を構成証明を通じて検証できます。

次のステップ

機密コンテナーの詳細について、「機密コンテナー」ページを確認します。