5.8. 创建 initdata
您可以创建 initdata 以在运行时安全地初始化带有敏感或特定于工作负载的数据的 pod,从而避免需要在虚拟机镜像中嵌入此数据。这种方法通过降低公开机密信息的风险并消除自定义镜像构建需求来提供额外的安全性。
您可以为 pod 配置映射中指定 initdata,对于全局配置,或者在 pod 清单中为特定 pod 指定。pod 清单中的 initdata 值覆盖 pod 配置映射中设置的值。
在生产环境中,您必须创建 initdata 来覆盖默认的 permissive Kata 代理策略。
您可以在 pod 清单中为特定 pod 指定 initdata。
如果您在红帽构建的 Trustee 的 kbs-config 配置映射中配置 insecure_http = true,则必须删除 kbs_cert 设置。
流程
运行以下命令,获取红帽构建的 Trustee IP 地址:
oc get node $(oc get pod -n trustee-operator-system \ -o jsonpath='{.items[0].spec.nodeName}') \ -o jsonpath='{.status.addresses[?(@.type=="InternalIP")].address}'$ oc get node $(oc get pod -n trustee-operator-system \ -o jsonpath='{.items[0].spec.nodeName}') \ -o jsonpath='{.status.addresses[?(@.type=="InternalIP")].address}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
192.168.122.22
192.168.122.22Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来获取端口:
oc get svc kbs-service -n trustee-operator-system
$ oc get svc kbs-service -n trustee-operator-systemCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kbs-service NodePort 172.30.116.11 <none> 8080:32178/TCP 12d
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kbs-service NodePort 172.30.116.11 <none> 8080:32178/TCP 12dCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
initdata.toml文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - url
- 指定红帽构建的 Trustee
- <kbs_certificate>
- 为 attestation 代理指定 Base64 编码的 TLS 证书。
- kbs_cert
-
如果您在红帽构建的 Trustee 的
kbs-config配置映射中配置insecure_http = true,请删除kbs_cert设置。 - image_security_policy_uri
-
可选,只有在启用了容器镜像签名验证策略时。将
<secret-policy-name>和 <key> 替换为 创建 KbsConfig 自定义资源中指定 的 secret 名称和密钥。
运行以下命令,将
initdata.toml文件转换为 gzip 格式的 Base64 编码字符串:cat initdata.toml | gzip | base64 -w0 > initdata.txt
$ cat initdata.toml | gzip | base64 -w0 > initdata.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 记录此字符串,以便在 pod 清单中使用。