我有一个包含30个服务的应用程序名称空间。大多数是无状态部署,与某些StatefulSet等混合在一起。是相当标准的东西。
我需要授予一个特殊用户一个只能在特定Pod中执行的角色。目前,RBAC将exec权限授予名称空间中的所有pod,但是我需要将其收紧。
问题是Pod是由部署configurator
创建的,因此Pod名称是“生成的” configurator-xxxxx-yyyyyy
。由于您不能使用glob(即configurator-*
),并且Role无法直接为部署授予exec。
到目前为止,我已经考虑过:
这两种方法都可以,但是都不是最优的。有没有办法为此编写适当的角色?
答案 0 :(得分:2)
RBAC不允许使用除名称空间和资源名称之外的其他属性来过滤资源。讨论开放here。
因此,名称空间是授权访问Pod的最小组件。服务必须在命名空间中分开,以考虑哪些用户可能需要访问它们。
目前的最佳解决方案是将该部署移动到另一个名称空间,因为它需要与原始名称空间中的其他部署不同的访问规则。