Pod安全策略PodSecurityPolicy(PSP)是什么?

摘要:Pod安全策略:PodSecurityPolicy(PSP),PodSecurityPolicy 简介,为什么需要 PodSecurityPolicy,启用PodSecurityPolicy(PSP),PSP规则之禁止创建特权用户pod,P
目录一.系统环境二.前言三.PodSecurityPolicy 简介四.为什么需要 PodSecurityPolicy五.给客户端授权六.启用PodSecurityPolicy(PSP)七.PSP规则之禁止创建特权用户pod八.PSP规则之数据卷8.1 限定数据卷使用某一个目录8.2 限定数据卷的类型为emptyDir九.PSP规则之指定使用宿主机网络十.PSP规则之pod使用特定的UID运行十一.PSP规则之指定hostport端口十二.PSP规则实战1十三.PSP规则实战2:创建deployment十四.总结 一.系统环境 本文主要基于Kubernetes1.22.2和Linux操作系统Ubuntu 18.04。 服务器版本 docker软件版本 Kubernetes(k8s)集群版本 CPU架构 Ubuntu 18.04.5 LTS Docker version 20.10.14 v1.22.2 x86_64 Kubernetes集群架构:k8scludes1作为master节点,k8scludes2,k8scludes3作为worker节点。 服务器 操作系统版本 CPU架构 进程 功能描述 k8scludes1/192.168.110.128 Ubuntu 18.04.5 LTS x86_64 docker,kube-apiserver,etcd,kube-scheduler,kube-controller-manager,kubelet,kube-proxy,coredns,calico k8s master节点 k8scludes2/192.168.110.129 Ubuntu 18.04.5 LTS x86_64 docker,kubelet,kube-proxy,calico k8s worker节点 k8scludes3/192.168.110.130 Ubuntu 18.04.5 LTS x86_64 docker,kubelet,kube-proxy,calico k8s worker节点 二.前言 随着容器化和微服务架构的普及,Kubernetes 已经成为企业中编排和管理容器的主要平台。然而,随着集群中运行的容器数量和种类的增加,确保容器的安全性变得越来越重要。PodSecurityPolicy(PSP)是 Kubernetes 用于限制 Pod 创建的一组规则,以确保集群的安全性。在本文中,我们将深入了解 PSP 的概念、重要性以及如何在 Kubernetes 集群中实施。 使用PodSecurityPolicy(PSP)的前提是已经有一套可以正常运行的Kubernetes集群,关于Kubernetes(k8s)集群的安装部署,可以查看博客《Ubuntu 安装部署Kubernetes(k8s)集群》https://www.cnblogs.com/renshengdezheli/p/17632858.html。 三.PodSecurityPolicy 简介 PodSecurityPolicy 是一个内置的准入控制器, 允许集群管理员控制 Pod 规约中涉及安全的敏感内容。 首先,在集群中创建一个或多个 PodSecurityPolicy 资源来定义 Pod 必须满足的要求。 然后,创建 RBAC 规则来决定为特定的 Pod 应用哪个 PodSecurityPolicy。 如果 Pod 满足其 PSP 的要求,则照常被允许进入集群。 在某些情况下,PSP 还可以修改 Pod 字段,有效地为这些字段创建新的默认值。 如果 Pod 不符合 PSP 要求,则被拒绝进入集群,并且无法运行。 简单说来,就是PodSecurityPolicy 可以设置pod里的进程只能以某个UID运行,或者设置pod只能使用某一类型存储,不能使用其他,比如只能使用nfs存储。 四.为什么需要 PodSecurityPolicy 在 Kubernetes 中,我们定义了 Deployment、StatefulSet 和 Service 等资源。 这些资源代表软件应用程序的构建块。Kubernetes 集群中的各种控制器根据这些资源做出反应, 创建更多的 Kubernetes 资源或配置一些软件或硬件来实现我们的目标。 在大多数 Kubernetes 集群中,由 RBAC(基于角色的访问控制)规则 控制对这些资源的访问。 list、get、create、edit 和 delete 是 RBAC 关心的 API 操作类型, 但 RBAC 不考虑其所控制的资源中加入了哪些设置。
阅读全文