限制 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 数据集?

限制从 Azure 函数子网访问存储帐户

Kubernetes 配置Pod和容器(五)应用资源配额和限制

S3 存储桶策略授予/限制对特定联合用户的访问权限

授权谷歌云平台服务账号只访问一个谷歌云存储桶