限制 Kubernetes 服务帐户访问特定命名空间
Posted
技术标签:
【中文标题】限制 Kubernetes 服务帐户访问特定命名空间【英文标题】:Limit the Kubernetes service account access specific namespace 【发布时间】:2018-10-03 13:20:58 【问题描述】:我创建了一个包含默认集群角色“view”的服务帐户,这使得它可以通过查看权限访问我们所有的资源。
但我想添加一个限制,以便此服务帐户无法访问我们的命名空间之一。
知道如何实现这一目标吗?
兄弟,
提姆
【问题讨论】:
【参考方案1】:Kubernetes 只有两个权限范围:Cluster(ClusterRole
) 或 Namespace(Role
),并且无法将 ClusterRole
限制或排除到特定的命名空间。如果您想将 ServiceAccount 限制为特定的命名空间,则不能使用 ClusterRole
,但必须在 ServiceAccount 应该有权访问的每个命名空间中使用 Role
。
【讨论】:
感谢您的回答!【参考方案2】:除了其他答案,当您使用Role
时,您需要在RoleBinding
上指定namespace
。例如:
$ kubectl create rolebinding my-binding --role=myrole --user=myuser --namespace=mynamespace
【讨论】:
以上是关于限制 Kubernetes 服务帐户访问特定命名空间的主要内容,如果未能解决你的问题,请参考以下文章
如何限制对 phpMyAdmin 中特定数据库用户帐户的访问?
是否可以将服务帐户限制为特定的 Big Query 数据集?