提问人:k0chan 提问时间:11/7/2023 最后编辑:k0chan 更新时间:11/13/2023 访问量:72
如何防止用户在 Rancher 端创建 Kubernetes Secret
How to prevent a user from creating a Kubernetes secret in the Rancher side
问:
长话短说。我有一个 Rancher 集群。集群中有一个 foo 项目,foo 项目中有一个 bar 命名空间。我为具有项目成员角色的 foo 项目分配了一个用户。rancher cluster -> foo project -> bar namespace
我的问题是,如何防止用户创建 Kubernetes 密钥对象?我想离开项目成员角色,但创建秘密权限除外,我想在 Rancher 端实现这一点。
到目前为止,我发现了什么?
- 我向 ChatGTP 询问了它,它给了我以下解决方案:“创建一个 RBAC 对象:角色和角色绑定,其中包含机密资源的 get、list 和 watch 谓词。我不想在我的情况下创建 RBAC。
- 牧场主的项目成员角色不包含秘密资源,所以我甚至不知道具有项目成员角色的用户如何能够创建秘密。谁能给我解释一下?
更新 #1
默认情况下,project-member 的 Rancher 角色继承自 Kubernetes-edit 角色,project-owner 角色继承自 Kubernetes-admin 角色。因此,项目成员和项目所有者角色都将允许命名空间管理,包括创建和删除命名空间的能力。源
有一个编辑 ClusterRole 对象,其中包含用于创建机密的权限。
更新 #2
我可以创建一个自定义项目角色,该角色将从只读角色继承,然后我可以添加所需的权限和角色。我认为这可能是我的最佳选择。我不会将问题标记为已回答。
谢谢你的提前!
答:
0赞
k0chan
11/13/2023
#1
这是我为实现目标所做的:
- 我创建了一个名为 restricted-project-member 的项目/命名空间角色
- restricted-project-member 角色继承自只读角色。
- 我从名为 edit 的 Kubernetes ClusterRole 获得了权限。
- 我直接将权限粘贴到 restricted-project-member,除了允许创建机密的权限。
评论