本页面介绍如何将虚拟可信平台模块 (vTPM) 与在机密 GKE 节点中运行的 Google Kubernetes Engine (GKE) Standard 工作负载搭配使用。vTPM 可提供平台完整性以及其他安全功能,例如远程证明、Secret 密封和随机号码生成。在本页面中,您将了解如何安装设备插件并使 vTPM 对 GKE 应用可见。
本页面适用于希望在 GKE 应用中远程访问 vTPM 安全功能的安全工程师。
在阅读本页面之前,请确保您熟悉以下功能:
准备工作
在开始之前,请确保您已执行以下任务:
- 启用 Google Kubernetes Engine API。 启用 Google Kubernetes Engine API
- 如果您要使用 Google Cloud CLI 执行此任务,请安装并初始化 gcloud CLI。 如果您之前安装了 gcloud CLI,请运行
gcloud components update命令以获取最新版本。较早版本的 gcloud CLI 可能不支持运行本文档中的命令。
限制
您只能在将 AMD SEV 用作机密计算技术的机密 GKE 节点中,使 vTPM 对 GKE 应用可见。不支持 Intel TDX 和 AMD SEV-SNP。
可用性
满足以下条件时,您可以使用机密 GKE 节点:
使用包含 containerd 的 Container-Optimized OS (
cos_containerd) 的节点映像。
创建机密 GKE 节点集群
您可以使用 gcloud CLI 或 Google Cloud 控制台创建启用了机密 GKE 节点的新集群。如果在集群级层启用机密 GKE 节点,则集群中的所有节点都会成为机密虚拟机。
gcloud
创建一个使用 AMD SEV 作为机密计算技术的新集群:
gcloud container clusters create CLUSTER_NAME \
--machine-type=MACHINE_TYPE \
--confidential-node-type=SEV
替换以下内容:
- CLUSTER_NAME:新集群的名称。
- MACHINE_TYPE:集群的默认节点池的机器类型,必须是 N2D 或 C2D 机器类型。
控制台
- 在 Google Cloud 控制台中,前往创建 Kubernetes 集群页面。
- 在导航菜单的集群下,点击安全。
- 选择启用机密 GKE 节点。
- 在确认对话框中,点击进行更改。
- 在类型菜单中,选择 AMD SEV。
- 如需配置集群的其他部分,请按照创建区域级集群中的说明操作。
- 点击创建。
创建具有机密 GKE 节点的集群后,在此集群中创建的所有节点池都只能使用机密节点。您无法在启用了机密 GKE 节点的集群中创建常规节点池。您也无法在集群级启用机密 GKE 节点时在单个节点池上停用机密 GKE 节点。
在机密 GKE 节点工作负载中运行 vTPM
为了在机密 GKE 节点工作负载中运行 vTPM,Google 提供了一个应用到机密 GKE 节点集群的 DaemonSet。运行以下命令部署 DaemonSet:
kubectl create -f https://raw.githubusercontent.com/google/cc-device-plugin/main/manifests/cc-device-plugin.yaml
配置 Pod 以查看 vTPM
您可以使用资源限制来配置 Pod,以查看 vTPM。使用以下键值对在 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
后续步骤
- 了解如何远程证明工作负载是否在机密虚拟机上运行。