Confidential GKE Node ワークロードで vTPM を実行する


このページでは、Confidential GKE Node で実行される Google Kubernetes Engine(GKE)Standard ワークロードで仮想トラステッド プラットフォーム モジュール(vTPM)を使用する方法について説明します。vTPM は、リモート認証、シークレット シーリング、乱数の生成などの他のセキュリティ機能とともに、プラットフォームの完全性を提供します。このページでは、デバイス プラグインをインストールして、vTPM を GKE アプリケーションに公開する方法について説明します。

このページは、GKE アプリケーションの vTPM のセキュリティ機能にリモートからアクセスするセキュリティ エンジニアを対象としています。

このページを読む前に、次の機能についてよく理解しておいてください。

始める前に

始める前に、次の作業が完了していることを確認してください。

  • Google Kubernetes Engine API を有効にする。
  • Google Kubernetes Engine API の有効化
  • このタスクに Google Cloud CLI を使用する場合は、gcloud CLI をインストールして初期化する。すでに gcloud CLI をインストールしている場合は、gcloud components update を実行して最新のバージョンを取得する。

制限事項

Confidential Computing テクノロジーとして AMD SEV を使用する Confidential GKE Node でのみ、vTPM を GKE アプリケーションに表示できます。Intel TDX と AMD SEV-SNP はサポートされていません。

対象

Confidential GKE Node は、次の条件で使用できます。

Confidential GKE Node クラスタを作成する

gcloud CLI または Google Cloud コンソールを使用して、Confidential GKE Node が有効になっている新しいクラスタを作成できます。クラスタレベルで Confidential GKE Node を有効にすると、クラスタ内のすべてのノードが Confidential VMs になります。

gcloud

AMD SEV を Confidential Computing テクノロジーとして使用する新しいクラスタを作成します。

gcloud container clusters create CLUSTER_NAME \
    --machine-type=MACHINE_TYPE \
    --confidential-node-type=SEV

次のように置き換えます。

  • CLUSTER_NAME: 新しいクラスタの名前。
  • MACHINE_TYPE: クラスタのデフォルト ノードプールのマシンタイプ。N2D マシンタイプまたは C2D マシンタイプである必要があります。

コンソール

  1. Google Cloud コンソールで、[Kubernetes クラスタを作成する] ページに移動します。

    [Kubernetes クラスタの作成] に移動

  2. ナビゲーション メニューの [クラスタ] で [セキュリティ] をクリックします。
  3. [Confidential GKE Node を有効にする] を選択します。
  4. 確認ダイアログで [変更を適用] をクリックします。
  5. [タイプ] メニューで [AMD SEV] を選択します。
  6. クラスタの他のセクションを構成するには、リージョン クラスタの作成の手順に沿って操作します。
  7. [作成] をクリックします。

Confidential GKE Node を使用してクラスタを作成すると、このクラスタ内で作成されたノードプールは機密ノードしか使用できません。Confidential GKE Node が有効になっているクラスタには、通常のノードプールを作成できません。また、クラスタレベルで Confidential GKE Node を有効にすると、個々のノードプールで Confidential GKE Node を無効にできません。

Confidential GKE Node ワークロードで vTPM を実行する

Confidential GKE Node ワークロードで vTPM を実行するために、Google は Confidential GKE Node クラスタに適用する DaemonSet を提供しています。次のコマンドを実行して DaemonSet をデプロイします。

kubectl create -f https://raw.githubusercontent.com/google/cc-device-plugin/main/manifests/cc-device-plugin.yaml

vTPM を認識するように Pod を構成する

リソース上限を使用して、Pod が vTPM を認識するように構成します。次の Key-Value ペアを使用して、Pod 仕様でリソース制限を 1 に指定します。

  • キー: google.com/cc
  • 値: 1

vTPM を使用する Pod 仕様の例:

apiVersion: v1
kind: Pod
metadata:
  name: my-vtpm-pod
spec:
  containers:
  - name: nginx
    image: nginx
    ports:
    - containerPort: 8080
      name: http
    resources:
      limits:
        google.com/cc: 1

次のステップ