首页 » 翻译 » Kubernetes » 正文

聊一聊Kubernetes 的 PSP Pod Security Policy

什么是PSP : Pod Security Policy 是 kubernetes中一种集群级别的资源,它定义了用户能否在Pod中使用各种安全相关的特性,举例来说PSP可以做的事情:

  • 是否允许Pod使用宿主节点的PID,IPC,网络命名空间
  • Pod是否允许绑定到宿主节点端口
  • 容器运行时允许使用的用户ID
  • 是否允许特权模式的POD
  • ….

psp

一个psp的例子:

需要注意一个地方,当我们的cluster启用了这项功能以后,默认情况下任何pod都无法创建

这个是因为,当我们创建pod的时候,kubernetes会去查找是否有对应的PSP,发现没有任何定义,直接拒绝,所以,我们启用了PSP功能以后,要统一给所有的认证过的用户一个deafult的PSP(比较低但是可以创建普通Pod的权限)

如何来给所有的认证用户绑定一个defalt的权限呢? RBAC

 

上边这个命令给所有的认证用户加了一个clusterrole:psp-default

具体的psp-default rule:

这个时候所有的用户都要按照我们的default PSP里边的定义来创建pod了

当然,我们也可以给一些用户特殊的权限:

首先,创建一个特殊的PSP:

也就说,谁允许用这个PSP,就可以创建priviledged的pod

然后我们为他创建一个cluserrole

然后我们给指定的用户或者serviceaccount绑定

例如,这个例子中,用户bob就和其他用户不一样了,它可以创建privileged 的Pod,其他人不可以

 

官方文档 https://kubernetes.io/docs/concepts/policy/pod-security-policy

Zhiming Zhang

Senior devops at Appannie
一个奔跑在运维路上的胖子
Zhiming Zhang

Latest posts by Zhiming Zhang (see all)

发表评论