首页
/ UDS Core 项目中的Pepr策略详解

UDS Core 项目中的Pepr策略详解

2025-06-19 03:28:25作者:余洋婵Anita

概述

在Kubernetes环境中,安全策略是保障集群安全运行的关键要素。UDS Core项目通过Pepr策略提供了一套全面的安全控制机制,这些策略主要针对Pod、Service等Kubernetes资源进行安全限制和配置规范。

策略分类

UDS Core中的Pepr策略主要分为两大类:变异策略(Mutations)和验证策略(Validations)。

变异策略

变异策略会自动修改资源定义,确保它们符合安全规范:

  1. 禁止权限提升(Disallow Privilege Escalation)

    • 作用对象:容器
    • 功能:自动将allowPrivilegeEscalation设为false,除非容器是特权容器或添加了CAP_SYS_ADMIN能力
  2. 要求非root用户(Require Non-root User)

    • 作用对象:Pod
    • 功能:自动设置runAsNonRoot: true,默认用户和组ID为1000
    • 自定义:可通过uds/useruds/groupuds/fsgroup标签指定用户/组ID
  3. 丢弃所有能力(Drop All Capabilities)

    • 作用对象:容器
    • 功能:自动设置capabilities.drop: ["ALL"],确保所有能力被丢弃

验证策略

验证策略会检查资源定义是否符合规范,不符合则拒绝创建/更新:

网络安全类

  1. 禁止主机命名空间(Disallow Host Namespaces)

    • 严重性:高
    • 确保Pod不使用主机PID、IPC或网络命名空间
  2. 禁止NodePort服务(Disallow NodePort Services)

    • 严重性:中
    • 禁止创建NodePort类型的Service
  3. 限制外部名称(Restrict External Names)

    • 严重性:中
    • 防止CVE-2020-8554漏洞,限制Service使用外部名称
  4. 限制主机端口(Restrict Host Ports)

    • 严重性:高
    • 只允许使用预先批准的主机端口

安全配置类

  1. 禁止特权(Disallow Privileged)

    • 严重性:高
    • 禁止特权容器和权限提升
  2. 限制能力(Restrict Capabilities)

    • 严重性:高
    • 只允许添加特定能力,禁止随意添加
  3. 限制SELinux选项(Disallow SELinux Options)

    • 严重性:高
    • 禁止使用SELinux选项
  4. 限制proc挂载(Restrict Proc Mount)

    • 严重性:高
    • 只允许默认的proc挂载方式
  5. 限制Seccomp(Restrict Seccomp)

    • 严重性:高
    • 只允许使用RuntimeDefault或Localhost seccomp配置文件

存储类

  1. 限制卷类型(Restrict Volume Types)

    • 严重性:中
    • 限制可用的卷类型,特别是限制hostPath
  2. 限制hostPath可写路径(Restrict hostPath Volume Writable Paths)

    • 严重性:中
    • 确保hostPath卷以只读方式挂载

豁免机制

UDS Core提供了灵活的豁免机制:

  1. 通过UDS Exemption CR可以豁免特定资源
  2. 被豁免的资源会被标记为uds-core.pepr.dev/uds-core-policies.<POLICY>: exempted
  3. 变异策略和验证策略使用相同的豁免引用

最佳实践建议

  1. 最小权限原则:尽可能使用非root用户运行容器,默认策略已自动实现这一点
  2. 能力控制:使用"Drop All Capabilities"策略,只添加必要的能力
  3. 网络隔离:避免使用主机网络命名空间和NodePort服务
  4. 存储安全:限制volume类型,特别是hostPath的使用
  5. 安全配置:利用Seccomp和SELinux限制增强安全性

未实现策略说明

当前版本中,以下策略尚未实现但值得关注:

  1. 限制sysctls配置
  2. 限制镜像仓库
  3. 限制hostPath PV路径
  4. 要求镜像签名
  5. 禁止自动挂载ServiceAccount令牌

这些策略将在未来版本中逐步实现,以提供更全面的安全保护。

总结

UDS Core的Pepr策略提供了一套全面的Kubernetes安全控制机制,通过自动变异和严格验证相结合的方式,确保集群工作负载遵循安全最佳实践。这些策略基于行业标准设计,能够有效降低容器逃逸、权限提升等安全风险,是构建安全Kubernetes环境的重要保障。

登录后查看全文
热门项目推荐