このページでは、Confidential Google Kubernetes Engine(GKE)Standard リージョン クラスタのワークロードで仮想トラステッド プラットフォーム モジュール(vTPM)を使用する方法について説明します。vTPM の詳細については、シールドされた GKE ノードの使用をご覧ください。
概要
Confidential GKE Node のワークロードで vTPM を使用すると、クラスタを作成して vTPM をそれらのクラスタのワークロードに公開できます。vTPM とその他のセキュリティ機能(リモート認証、Secret シーリング、乱数の生成など)により、プラットフォームの完全性が実現します。
始める前に
始める前に、次の作業が完了していることを確認してください。
- Google Kubernetes Engine API を有効にする。 Google Kubernetes Engine API の有効化
- このタスクに Google Cloud CLI を使用する場合は、gcloud CLI をインストールして初期化する。すでに gcloud CLI をインストールしている場合は、
gcloud components update
を実行して最新のバージョンを取得する。
要件
Confidential GKE Node ワークロードの vTPM には、GKE バージョン 1.26 以降が必要です。
対象
Confidential GKE Node は、次の条件で使用できます。
N2D インスタンスまたは C2D インスタンスを使用できるゾーンとリージョン。
containerd を含む Container-Optimized OS を使用するノードイメージ(
cos_containerd
)。
Confidential GKE Node クラスタを作成する
gcloud CLI または Google Cloud コンソールを使用して、Confidential GKE Node が有効になっている新しいクラスタを作成できます。クラスタレベルで Confidential GKE Node を有効にすると、クラスタ内のすべてのノードが Confidential VMs になります。
gcloud
新しいクラスタを作成するときに、次のコマンドで --enable-confidential-nodes
オプションを指定します。
gcloud container clusters create CLUSTER_NAME \
--machine-type=MACHINE_TYPE \
--enable-confidential-nodes
次のように置き換えます。
- CLUSTER_NAME: 新しいクラスタの名前。
- MACHINE_TYPE: クラスタのデフォルト ノードプールのマシンタイプ。N2D マシンタイプまたは C2D マシンタイプである必要があります。
コンソール
Google Cloud コンソールで Google Kubernetes Engine のページに移動します。
[add_box 作成] をクリックします。
[Standard] セクションで [構成] をクリックします。
ナビゲーション メニューの [クラスタ] で [セキュリティ] をクリックします。
[Confidential GKE Node を有効にする] チェックボックスをオンにします。
クラスタの他のセクションを構成するには、リージョン クラスタの作成の手順に沿って操作します。
[作成] をクリックします。
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
次のステップ
- 詳しくは、仮想トラステッド プラットフォーム モジュールをご覧ください。