7.7. 自定义 Kata 代理策略
Kata 代理策略是一种安全机制,用于控制使用 Kata 运行时运行的 pod 的代理 API 请求。使用 Rego 编写并由 Pod 虚拟机(VM)中的 Kata 代理强制,此策略决定哪些操作被允许或拒绝。
默认情况下,Kata 代理策略禁用 exec
和日志
API,因为它们可能会通过 control plane 传输或接收未加密的数据,这是不安全的。
您可以针对特定用例使用自定义策略来覆盖默认策略,如在安全不是关注的地方进行开发和测试。例如,您可以在 control plane 可以被信任的环境中运行。您可以通过几种方法应用自定义策略:
- 将其嵌入到 pod 虚拟机镜像中。
- 修补对等 pod 配置映射。
- 为工作负载 pod YAML 添加注解。
对于生产环境系统,首选的方法是使用 initdata 覆盖 Kata 代理策略。以下流程使用 io.katacontainers.config.agent.policy
注解将自定义策略应用到单独的 pod。该策略以 Base64 编码的 Rego 格式提供。此方法会在创建 Pod 时覆盖默认策略,而不修改 pod 虚拟机镜像。
在机密容器工作负载中启用 exec
或 日志
API 可能会公开敏感信息。不要在生产环境中启用这些 API。
自定义策略完全替换了默认策略。要只修改特定的 API,请包含完整的策略并调整相关规则。
流程
使用自定义策略创建
policy.rego
文件。以下示例显示了所有可配置的 API,并且为演示启用了exec
和log
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此策略启用
exec
(ExecProcessRequest
)和log
(ReadStreamRequest
) API。根据您的需要,调整true
或false
值以进一步自定义策略。运行以下命令,将
policy.rego
文件转换为 Base64 编码的字符串:base64 -w0 policy.rego
$ base64 -w0 policy.rego
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将输出保存到 yaml 文件中。
将 Base64 编码的策略添加到
my-pod.yaml
pod 规格文件中:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用 pod 清单:
oc apply -f my-pod.yaml
$ oc apply -f my-pod.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow