工作负载元数据变量

您可以在创建虚拟机时通过将变量传递到 --metadata 选项来更改 Confidential Space 工作负载虚拟机行为。

如需传入多个变量,请首先在 --metadata 值前面添加 ^~^ 来设置分隔符。这会将分隔符设置为 ~,因为变量值中使用了 ,。

例如:

metadata="^~^tee-restart-policy=Always~tee-image-reference=us-docker.pkg.dev/WORKLOAD_AUTHOR_PROJECT_ID/REPOSITORY_NAME/WORKLOAD_CONTAINER_NAME:latest"

下表详细介绍了您可以为工作负载虚拟机设置的元数据变量。

元数据键 类型 说明和值

tee-image-reference

互动对象:

字符串

必需。这指向工作负载容器所在的位置。

示例
tee-image-reference=us-docker.pkg.dev/WORKLOAD_AUTHOR_PROJECT_ID/REPOSITORY_NAME/WORKLOAD_CONTAINER_NAME:latest

ita-api-key

字符串

仅当您使用 Intel Trust Authority 作为证明服务时,才需要执行此操作。将值设置为您的 Intel Trust Authority API 密钥。

如需了解如何创建 Intel Trust Authority API 密钥,请参阅 Intel 的文档。

Intel Trust Authority 支持 Intel TDX 虚拟机实例,这些实例可选择配备 NVIDIA H100 GPU。如果存在 GPU,系统还会验证其证据。

示例
ita-api-key=API_KEY

ita-region

字符串

仅当您使用 Intel Trust Authority 作为证明服务时,才需要执行此操作。将该值设置为您希望 Intel Trust Authority 在其中运行的区域。有效区域包括:

  • 美国:https://api.trustauthority.intel.com
  • 欧洲: https://api.eu.trustauthority.intel.com

Intel Trust Authority 支持 Intel TDX 虚拟机实例,这些实例可选择配备 NVIDIA H100 GPU。如果存在 GPU,系统还会验证其证据。

示例
ita-region=REGION_NAME

tee-added-capabilities

互动对象:

JSON 字符串数组

向工作负载容器添加额外的 Linux 功能。

示例
tee-added-capabilities="[\"CAP_SYS_ADMIN\", \"CAP_SYS_CHROOT\"]"

tee-cgroup-ns

互动对象:

布尔值

默认为 false。设置为 true 时,在 /sys/fs/cgroup 处启用命名空间 cgroup 装载。

示例
tee-cgroup-ns=true

tee-cmd

互动对象:

JSON 字符串数组

替换工作负载容器的 Dockerfile 中指定的 CMD 指令。

示例
tee-cmd="[\"params1\", \"params2\"]"

tee-container-log-redirect

互动对象:

枚举

使用 confidential-space-launcher 字段将 STDOUT 和 STDERR 从工作负载容器输出到 Cloud Logging 或串行控制台。

有效值为:

  • false:(默认)不进行日志记录。
  • true:输出到串行控制台和 Cloud Logging。
  • cloud_logging:仅输出到 Cloud Logging。
  • serial:仅输出到串行控制台。

串行控制台中的日志量过高可能会影响工作负载性能。

示例
tee-container-log-redirect=true

tee-dev-shm-size-kb

整数

设置 /dev/shm 共享内存装载的大小(以 kB 为单位)。

示例
tee-dev-shm-size-kb=65536

tee-env-ENVIRONMENT_VARIABLE_NAME

互动对象:

字符串

在工作负载容器中设置环境变量。 工作负载作者还必须将环境变量名称添加到 allow_env_override 发布政策中,否则无法设置这些变量。

示例
tee-env-example-env-1='value-1'~tee-env-example-env-2='value-2'

tee-impersonate-service-accounts

互动对象:

字符串

工作负载操作员可以模拟的服务账号列表。工作负载操作员必须 能够模拟服务账号。

可以列出多个服务账号(以英文逗号分隔)。

示例
tee-impersonate-service-accounts=SERVICE_ACCOUNT_NAME_1@WORKLOAD_OPERATOR_PROJECT_ID.iam.gserviceaccount.com,SERVICE_ACCOUNT_NAME_2@WORKLOAD_OPERATOR_PROJECT_ID.iam.gserviceaccount.com

tee-install-gpu-driver

互动对象:

布尔值

是否安装 NVIDIA 的机密计算 GPU 驱动程序。 需要支持 NVIDIA 机密计算的机器类型。

示例
tee-install-gpu-driver=true

tee-monitoring-memory-enable

互动对象:

布尔值

默认为 false。设置为 true 时,会启用内存用量监控。机密虚拟机收集的指标属于 guest/memory/bytes_used 类型,可在 Cloud Logging 或 Metrics Explorer 中查看。

示例
tee-monitoring-memory-enable=true

tee-mount

互动对象:

字符串

以英文分号分隔的装载定义列表。装载定义由逗号分隔列表的键值对组成,需要 type、source 和 destination。destination 必须是绝对路径,type/source 必须是 tmpfs。

示例
type=tmpfs,source=tmpfs,destination=/tmp/tmpfs,size=12345;type=tmpfs,source=tmpfs,destination=/run/workload

tee-nonroot-container

互动对象:

布尔值

默认为 false。设置为 true 时,容器会在隔离的用户命名空间中作为主机虚拟机上的非根用户运行。如果工作负载作者将 tee.launch_policy.nonroot_container 设置为 nonrootonly,则此变量必须设置为 true。

示例
tee-nonroot-container=true

tee-restart-policy

互动对象:

枚举

工作负载停止时容器启动器的重启政策。

有效值为:

  • Never(默认)
  • Always
  • OnFailure

此变量仅受生产 Confidential Space 映像支持。

示例
tee-restart-policy=OnFailure

tee-signed-image-repos

互动对象:

字符串

以逗号分隔的容器代码库列表,用于存储由 Sigstore Cosign 生成的签名。

示例
tee-signed-image-repos=us-docker.pkg.dev/projectA/repo/example,us-docker.pkg.dev/projectB/repo/example,us-docker.pkg.dev/projectC/repo/example