库伯内斯 RBAC : How to allow exec only to a specific Pod created by Deployment

标签 kubernetes rbac

我有一个包含 30 个服务的应用程序命名空间。大多数是无状态部署,混合了一些 StatefulSets 等。相当标准的东西。

我需要授予特殊用户一个只能执行到特定 Pod 的角色。目前 RBAC 授予命名空间中所有 pod 的执行权限,但我需要收紧它。

问题是 Pod(s) 是由 Deployment configurator 创建的,因此 Pod 名称是“生成的”,configurator-xxxxx-yyyyyy。由于您不能使用 glob(即 configurator-*),并且 Role 不能直接为 Deployments 授予 exec。

到目前为止我想到的是:

  • 将 Deployment 转换为 StatefulSet 或普通 Pod,因此 Pod 将具有已知的非生成名称,并且不需要 glob
  • 将 Deployment 移动到单独的命名空间中,因此全局执行权限不是问题

这两种方法都有效,但都不是最佳的。有没有办法为此编写适当的角色?

最佳答案

RBAC,就像现在的意思一样,不允许通过 namespace 和资源名称以外的其他属性来过滤资源。讨论开启here .

因此,命名空间是授权访问 pod 的最小部分。服务必须在命名空间中分开,考虑用户可能需要访问它们的内容。

目前最佳解决方案是将此部署移动到另一个命名空间,因为它需要与原始命名空间中的其他部署不同的访问规则。

关于库伯内斯 RBAC : How to allow exec only to a specific Pod created by Deployment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52943102/

相关文章:

javax.annotation.security 不是基于角色的访问控制?

kubernetes - kubectl 命令标志值的大小写敏感

python - 如何使用python从azure aks获取kubectl配置?

kubernetes - 基于 gossip 的 kubernetes 集群和 spring-cloud-kubernetes

kubernetes - 通过TCP/UDP而不是Loadbalancer在外部公开服务

jenkins - 无法为Jenkins设置Kubernetes插件

kubernetes - 来自带有 microk8s 的主机的简单入口?

kubernetes 系统 :discovery role mechanism

azure - 允许我从 key 保管库读取证书的最小 Azure 角色 (RBAC) 是什么?

kubernetes - 'UPDATE' Kubernetes RBAC 权限有什么作用?