2.6. 为 TDX 工作负载配置 TDX 远程测试基础架构
您可以为机密容器裸机基础架构部署 pod 虚拟机镜像,其中包括以下组件,它们为 Intel Trust Domain Extensions (TDX)提供远程认证:
- 集群置备证书缓存服务(PCCS)部署
- 自动每个节点 PCK Cert ID Retrieval 基于工具的平台(re-) registration
- 每个节点 TDX-QGS quoting 服务
您可以设置部署所需的命名空间、secret、证书和环境变量。
先决条件
- 已安装 Intel Device Plugins Operator,并创建了 Intel Software Guard Extensions Device Plugin 的实例。详情请参阅 OpenShift Container Platform 文档中的使用 Web 控制台从软件目录安装。
- 部署 PCCS 的节点必须具有互联网访问。
流程
运行以下命令来创建
intel-dcap命名空间:oc create namespace intel-dcap
$ oc create namespace intel-dcapCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,切换到
intel-dcap项目:oc project intel-dcap
$ oc project intel-dcapCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来更新安全性上下文约束:
oc adm policy add-scc-to-user privileged -z default
$ oc adm policy add-scc-to-user privileged -z defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来切换到 default 项目:
oc project default
$ oc project defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令设置
PCCS_API_KEY变量:export PCCS_API_KEY="${PCCS_API_KEY:-}"$ export PCCS_API_KEY="${PCCS_API_KEY:-}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow PCCS_API_KEY- Intel® SGX 和 Intel® TDX 置备认证服务的 API 密钥。导航到 Intel Trusted Services API 门户,登录并订阅 Intel® SGX 和 Intel® TDX 置备认证服务。API 键显示在 Manage Subscriptions 页面中。
运行以下命令设置
PCCS_USER_TOKEN变量:export PCCS_USER_TOKEN="${PCCS_USER_TOKEN:-mytoken}"$ export PCCS_USER_TOKEN="${PCCS_USER_TOKEN:-mytoken}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow PCCS_USER_TOKEN- 指定 PCCS 用户令牌。详情请参阅 Intel® SGX 置备证书缓存服务(Intel® SGX PCCS)的设计指南。
运行以下命令设置
PCCS_ADMIN_TOKEN变量:export PCCS_ADMIN_TOKEN="${PCCS_ADMIN_TOKEN:-mytoken}"$ export PCCS_ADMIN_TOKEN="${PCCS_ADMIN_TOKEN:-mytoken}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow PCCS_ADMIN_TOKEN- 指定 PCCS 管理令牌。详情请参阅 Intel® SGX 置备证书缓存服务(Intel® SGX PCCS)的设计指南。
运行以下命令,将
PCCS_NODE变量的值设置为 control plane 节点的名称:export PCCS_NODE=$(oc get nodes \ -l 'node-role.kubernetes.io/control-plane=,node-role.kubernetes.io/master=' \ -o jsonpath='{.items[0].metadata.name}')$ export PCCS_NODE=$(oc get nodes \ -l 'node-role.kubernetes.io/control-plane=,node-role.kubernetes.io/master=' \ -o jsonpath='{.items[0].metadata.name}')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置集群范围的代理变量:
如果使用集群范围代理,请运行以下命令:
export CLUSTER_HTTPS_PROXY="$(oc get proxy/cluster \ -o jsonpath={.spec.httpsProxy})"$ export CLUSTER_HTTPS_PROXY="$(oc get proxy/cluster \ -o jsonpath={.spec.httpsProxy})"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果没有使用代理,请运行以下命令:
export CLUSTER_NO_PROXY="$(oc get proxy/cluster \ -o jsonpath={.spec.noProxy})"$ export CLUSTER_NO_PROXY="$(oc get proxy/cluster \ -o jsonpath={.spec.noProxy})"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
运行以下命令,为 PCCS 用户令牌生成 SHA-512 哈希:
export PCCS_USER_TOKEN_HASH=$(echo -n "$PCCS_USER_TOKEN" | sha512sum | tr -d '[:space:]-')
$ export PCCS_USER_TOKEN_HASH=$(echo -n "$PCCS_USER_TOKEN" | sha512sum | tr -d '[:space:]-')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,为 PCCS admin 令牌生成 SHA-512 哈希:
export PCCS_ADMIN_TOKEN_HASH=$(echo -n "$PCCS_ADMIN_TOKEN" | sha512sum | tr -d '[:space:]-')
$ export PCCS_ADMIN_TOKEN_HASH=$(echo -n "$PCCS_ADMIN_TOKEN" | sha512sum | tr -d '[:space:]-')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,为 PCCS 证书和密钥创建一个临时目录:
PCCS_PEM_CERT_PATH=$(mktemp -d)
$ PCCS_PEM_CERT_PATH=$(mktemp -d)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令生成自签名 PCCS 证书和私钥:
openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 \ -keyout $PCCS_PEM_CERT_PATH/private.pem \ -out $PCCS_PEM_CERT_PATH/certificate.pem \ -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com"
$ openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 \ -keyout $PCCS_PEM_CERT_PATH/private.pem \ -out $PCCS_PEM_CERT_PATH/certificate.pem \ -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,将
PCCS_PEM的值设置为 Base64 编码的 PCCS 私钥:export PCCS_PEM=$(cat "$PCCS_PEM_CERT_PATH"/private.pem | base64 | tr -d '\n')
$ export PCCS_PEM=$(cat "$PCCS_PEM_CERT_PATH"/private.pem | base64 | tr -d '\n')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,将
PCCS_CERT的值设置为 Base64 编码的 PCCS 证书:export PCCS_CERT=$(cat "$PCCS_PEM_CERT_PATH"/certificate.pem | base64 | tr -d '\n')
$ export PCCS_CERT=$(cat "$PCCS_PEM_CERT_PATH"/certificate.pem | base64 | tr -d '\n')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,为 PCCS 创建通用 secret:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow