作者信息:https://home.cnblogs.com/u/huangjiabobk

在k8S中,PodSecurityPolicy 机制能实现哪些安全策略?

PodSecurityPolicy (PSP) 在 Kubernetes 中能够实现以下的安全策略:

  1. 运行时用户和组限制

    • 确保容器以非 root 用户身份运行,或者限制容器可以使用的用户或组ID范围。
  2. 容器能力控制

    • 允许或禁止特定的 Linux 容器能力(capabilities),从而限制容器内进程的能力范围。
  3. 主机命名空间访问限制

    • 控制容器是否能访问宿主机的命名空间,如:hostPID、hostIPC 或 hostNetwork。
  4. 卷类型及挂载权限

    • 限制哪些类型的卷可以在 Pod 中使用,并控制它们能否以特权模式挂载(例如,只读、读写等)。
    • 阻止对宿主机文件系统的直接挂载,例如 /hostPath 类型的卷。
  5. SELinux 相关设置

    • 要求容器具有特定的 SELinux 上下文标签,用于更细致的强制访问控制。
  6. 特权模式与安全上下文要求

    • 禁止创建特权容器(privileged containers),即那些拥有几乎不受限的宿主机访问权的容器。
    • 强制要求 Pod 和其容器具有指定的安全上下文(SecurityContext)配置。
  7. AppArmor 或 Seccomp 策略应用

    • 虽然不是直接通过 PSP,但在 PSP 的辅助下可以实施 AppArmor 或 Seccomp 安全策略,进一步限制容器内进程可执行的操作系统调用。

综上所述,通过定义并启用适当的 PodSecurityPolicy,集群管理员可以确保所有被创建的 Pod 符合预设的安全标准,从而降低由于恶意或意外配置导致的安全风险。然而,在 Kubernetes 1.21 及更高版本中,PodSecurityPolicy 已不再推荐使用,并计划移除,转而推荐采用其他原生的 Kubernetes 安全特性来替代,如基于Namespace级别的Pod Security Admission控制器以及其他的政策引擎。

posted @ 2024-02-13 19:30  黄嘉波  阅读(49)  评论(0编辑  收藏  举报
版权声明:原创作品,谢绝转载!否则将追究法律责任。--作者 黄嘉波