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

如官方文档中所述,“大多数Kubernetes Pod不是由用户直接创建的。相反,它们通常是通过Controller Manager作为Deployment,ReplicaSet或其他模板化Controller的一部分间接创建的。授予Controller对策略的访问权限将授予对由该 Controller 创建的所有Pod的访问权限,因此,授权策略的首选方法是向该Pod的服务帐户授予访问权限”。
但是似乎任何有权创建部署的用户都可以通过spec.ServiceAccountName在yaml中指定任何服务帐户。
这意味着只要有些顽皮的人知道可以访问受限PodSecurityPolicy的服务帐户名,他就可以使用该服务帐户创建一个Pod,这将使该Pod能够获得升级的特权。然后他可以在 pods 中做任何事情。

那么有没有办法防止在Pod中滥用服务帐户?例如,如果用户要使用其无权使用的服务帐户创建广告连播,则apiserver会阻止该请求。

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

最佳答案

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

关于kubernetes - 如何防止滥用kubernetes服务帐户,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48319409/

10-12 17:40