如何防止滥用kubernetes服务帐号

时间:2018-01-18 10:45:21

标签: kubernetes rbac

我尝试使用PodSecurityPolicy来强化我的群集。 我创建了2个Pod安全策略,一个是默认值,允许最小权限,另一个是限制,允许Pod的所有权限都可以通过SecurityContext请求。 默认值可以由任何服务帐户使用,受限制的帐户只能由某些服务帐户使用。

如官方文档中所述,"大多数Kubernetes pod不是由用户直接创建的。相反,它们通常通过控制器管理器间接创建为Deployment,ReplicaSet或其他模板化控制器的一部分。授予控制器对策略的访问权限将授予对控制器创建的所有pod的访问权限,因此授权策略的首选方法是授予对pod的服务帐户的访问权限#34;。 但似乎任何用户都有权创建部署,可以通过spec.ServiceAccountName指定yaml中的任何服务帐户。 这意味着只要一些顽皮的人知道有权访问受限制的PodSecurityPolicy的服务帐户名称,他就可以创建一个具有该服务帐户的pod,这将允许此pod获得升级的权限。然后他可以在吊舱里做任何事情。

那么有没有办法防止滥用服务帐户?例如,如果用户想要创建一个包含他无权使用的服务帐户的pod,则apiserver会阻止该请求。

任何人都可以提出任何想法吗?谢谢!

1 个答案:

答案 0 :(得分:1)

命名空间允许您将用户限制为一组服务帐户。不受信任的用户可以限制为仅包含低权限服务帐户的名称空间。