6.10. 自定义 Kata 代理策略


您可以自定义 Kata Agent 策略,以覆盖对等 pod 的默认策略(permissive)。Kata Agent 策略是一种安全机制,用于控制对等 pod 的 API 请求。

重要

您必须在生产环境中覆盖默认策略。

满足最低要求,您必须禁用 ExecProcessRequest,以防止集群管理员通过在对等 pod 上运行 oc exec 命令来访问敏感数据。

您可以在安全不是关注的开发和测试环境中使用默认策略,例如,在 control plane 可以被信任的环境中。

自定义策略完全替换了默认策略。要修改特定的 API,请包含完整的策略并调整相关规则。

流程

  1. 通过修改 默认策略来创建自定义策略.rego 文件:

    package agent_policy
    
    default AddARPNeighborsRequest := true
    default AddSwapRequest := true
    default CloseStdinRequest := true
    default CopyFileRequest := true
    default CreateContainerRequest := true
    default CreateSandboxRequest := true
    default DestroySandboxRequest := true
    default ExecProcessRequest := true
    default GetMetricsRequest := true
    default GetOOMEventRequest := true
    default GuestDetailsRequest := true
    default ListInterfacesRequest := true
    default ListRoutesRequest := true
    default MemHotplugByProbeRequest := true
    default OnlineCPUMemRequest := true
    default PauseContainerRequest := true
    default PullImageRequest := true
    default ReadStreamRequest := false
    default RemoveContainerRequest := true
    default RemoveStaleVirtiofsShareMountsRequest := true
    default ReseedRandomDevRequest := true
    default ResumeContainerRequest := true
    default SetGuestDateTimeRequest := true
    default SetPolicyRequest := true
    default SignalProcessRequest := true
    default StartContainerRequest := true
    default StartTracingRequest := true
    default StatsContainerRequest := true
    default StopTracingRequest := true
    default TtyWinResizeRequest := true
    default UpdateContainerRequest := true
    default UpdateEphemeralMountsRequest := true
    default UpdateInterfaceRequest := true
    default UpdateRoutesRequest := true
    default WaitProcessRequest := true
    default WriteStreamRequest := true
    Copy to Clipboard Toggle word wrap

    默认策略允许所有 API 调用。根据您的需要,调整 truefalse 值以进一步自定义策略。

  2. 运行以下命令,将 policy.rego 文件转换为 Base64 编码的字符串:

    $ base64 -w0 policy.rego
    Copy to Clipboard Toggle word wrap

    记录输出。

  3. 将 Base64 编码的策略字符串添加到 my-pod.yaml 清单中:

    apiVersion: v1
    kind: Pod
    metadata:
      name: my-pod
      annotations:
        io.katacontainers.config.agent.policy: <base64_encoded_policy>
    spec:
      runtimeClassName: kata-remote
      containers:
      - name: <container_name>
        image: registry.access.redhat.com/ubi9/ubi:latest
        command:
        - sleep
        - "36000"
        securityContext:
          privileged: false
          seccompProfile:
            type: RuntimeDefault
    Copy to Clipboard Toggle word wrap
  4. 运行以下命令来创建 pod:

    $ oc create -f my-pod.yaml
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat