7.16. 验证测试过程
您可以通过创建测试 pod 并检索其机密来验证 attestation 过程。
此流程是验证 attestation 是否正常工作的示例。不要将敏感数据写入标准 I/O,因为可使用内存转储捕获数据。只有写入内存的数据才会被加密。
默认情况下,嵌入在 pod 虚拟机(VM)镜像中的 Kata 代理策略会禁用机密容器 pod 的 exec 和日志 API。此策略可防止集群管理员执行 pod 中的进程来减轻敏感数据,同时阻止意外将敏感数据写入标准 I/O。
在测试场景中,您可以通过向 pod 添加策略注解来覆盖运行时的限制。对于技术预览,远程测试不会验证运行时策略注解。
先决条件
- 如果 Trustee 服务器和测试 pod 没有在同一集群中运行,则已创建了路由。
流程
创建
verification-pod.yaml清单文件:apiVersion: v1 kind: Pod metadata: name: ocp-cc-pod labels: app: ocp-cc-pod annotations: io.katacontainers.config.agent.policy: <base64_encoded_policy>1 io.katacontainers.config.runtime.cc_init_data: <base64_initdata>2 spec: runtimeClassName: kata-remote containers: - name: skr-openshift image: registry.access.redhat.com/ubi9/ubi:9.3 command: - sleep - "36000" securityContext: privileged: false seccompProfile: type: RuntimeDefault如果您使用代理策略同时指定
io.katacontainers.config.agent.policy注解和io.katacontainers.config.runtime.cc_init_data注解,则 initdata 注解优先于代理策略注解。运行以下命令来创建 pod:
$ oc create -f verification-pod.yaml运行以下命令,连接到
ocp-cc-pod的 Bash shell:$ oc exec -it ocp-cc-pod -- bash运行以下命令来获取 pod secret:
$ curl http://127.0.0.1:8006/cdh/resource/default/kbsres1/key1输出示例
res1val1只有当 attestation 成功时才会返回 secret。