当前位置: 首页 > 知识库问答 >
问题:

如何将kubernetes dashboard限制为分配给特定角色的用户的特定dashboard

徐景明
2023-03-14

我正在尝试限制kubernetes仪表板上的a用户,该仪表板在我创建后连接到kubectl。他和相应的配置的crt。

我成功地限制了他可以使用以下role.yaml

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
 namespace: development
 name: dev
rules:
- apiGroups: [""]
  resources: ["pods", "services", "crontabs", "pods/log"]
  verbs: ["create", "get", "update", "list", "delete"]
- apiGroups: ["batch"]
  resources: ["cronjobs", "jobs"]
  verbs: ["*"]
- apiGroups: ["apps"]
  resources: ["deployments"]
  verbs: ["create", "get", "update", "list", "delete"]

和簇绑定

kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: kubernetes-dashboard-susann
rules:
- apiGroups: [""]
  resources: ["services/proxy"]
  resourceNames: ["https:kubernetes-dashboard:"]
  verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
- nonResourceURLs: ["/ui", "/ui/*", "/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/*"]
  verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]

让他能够进入仪表板。问题是,我只希望他能够访问名称空间development

我已经搜索了一些,一些解决方案似乎涉及创建一个服务帐户,另一个问题可能是因为查看仪表板的权限是在集群角色上授予的,并且无法命名。

有没有最好的方法来解决这个问题?

共有1个答案

太叔涵亮
2023-03-14

这可以通过适当的RBAC配置来完成。

您需要在特定的命名空间中创建一个Role绑定。例如,RBAC规则可以如下创建:

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: dev
  namespace: development
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: edit
subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: Group
  name: dev

有了它,dev角色将具有预定义的集群角色edit,该角色将通过仪表板将它们限制为对大多数对象的标准操作。dev将无法下拉列出其他名称空间。

为了全面了解整个过程,我强烈建议您阅读以下指南:

  • 每个命名空间安装库伯内特斯仪表板

如果你需要使用这个或者类似的方法,你可以考虑使用这个工具:

  • RBAC经理

如果你想了解更多关于这个话题的知识,我建议你查阅以下资料:

>

  • 使用RBAC授权

    创建仅限于一个命名空间的Kubernetes服务/用户帐户

    KUBERNETES和RBAC:限制用户访问一个名称空间

    阅读本指南并用链接的资源补充任何必要的知识,将使您更容易理解并在您的用例中实现此解决方案

  •  类似资料:
    • 我有3个用户角色:管理员、客户和员工。 登录后,每个角色将重定向到特定的仪表板,例如:-管理员:网站。com/admin-客户:网站。com/客户-员工:网站。通讯员/雇员 此时,无论我使用哪个用户角色,都可以通过这些网址访问所有内容。 限制客户打开admin的最简单方法是什么 Laravel版本5.2.45 PHP版本7.2我正在使用共享托管提供商。谢谢你们

    • 我试图将对Swagger用户界面(UI)的访问限制为特定角色(例如,Swagger API用户、系统管理员用户等) 我在这个SO问题中尝试了答案--限制对Swagger UI的访问 我想我在等401的未经授权的回复。我对昂首阔步是完全陌生的,所以任何建议都很感激!

    • 问题内容: 如何将MySQL数据库中的user_account限制为特定表。例如: 我只想将“ RestrictedUser”限制为,并且将创建该表的其余表以供将来使用,并授予其访问权限。 问题答案: 假设用户没有当前权限,则可以执行以下操作 根据您希望授予用户的特权,您可以更改为其他内容,例如。 之后,请记住清除特权以使其生效。

    • 我确实有一些独特的要求,我想隐藏要从特定角色用户中选择的角色。 例如,我有一个角色名称admin、部门1、部门2和部门3。作为管理员,我应该只能在门户中看到部门1、部门2和部门3的角色管理。 但如果我为管理员定义权限,他/她可以管理角色。管理员用户可以查看Liferay中可用OOTB的所有角色。 有人能帮我配置一下吗?

    • 问题内容: 我需要制作一个只能由具有特定角色的人执行的命令。我在google和youtube上搜索以找到答案,但一无所获 问题答案: 您可以在命令上添加装饰器,以将其限制为仅具有特定角色或权限的成员。它的文档在这里。它看起来像这样: 请记住,您传递的字符串区分大小写。

    • 我搜索了以下内容:,但没有找到任何内容。 JDA版本: