【问题标题】:Grant privileges to specific namespaces for every user为每个用户授予特定命名空间的权限
【发布时间】:2025-12-18 13:05:01
【问题描述】:

我有很多用户。每个用户都应该能够在 *-stage 等命名空间中创建/更改/删除物质。命名空间可以动态添加或删除。我可以在每个命名空间中创建 ServiceAccount 并授予权限。

我在 k8s 中创建了 pod,并在其中安装了 kubectl 和 ssh。所以每个用户都可以访问这个 pod 并且可以使用 kubectl。我知道我可以将 ServiceAccount 机密挂载到 pod。至于我对每个命名空间都有不同的 ServiceAccounts,我不知道如何为每个用户授予所有 *-stage 命名空间的权限。我不想为 ServiceAccount 创建cluster-admin ClusterRoleBinding,因为用户应该只能修改*-stage 命名空间。你能帮帮我吗?

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    我正在发布基于 OP 解决方案的社区 wiki 答案,以提高知名度:

    其实我已经解决了问题。我在每个角色中创建["*"] 角色 *-stage 命名空间并将其绑定到 ServiceAccount。然后我将 ServiceAccount 挂载到通过 ssh 可用的 kubectl pod。所以每 用户可以无限制地访问 *-stage 命名空间。

    我还添加了有关ServiceAccountrole-based access control 的官方文档的链接作为补充。

    【讨论】: