在Kubernetes中-授予列出命名空间的权限(仅限)



我正在尝试使用第三方工具解决一个问题。该工具需要能够确保我告诉它工作的命名空间存在。为此,它运行:

kubectl get namespace my-namespace-name-here

我让第三方工具以其身份运行的用户在my-namespace-name-here命名空间中具有edit权限。(通过使用称为editclusterrolerolebinding到命名空间。(

但是,编辑权限不足以允许它检查(使用该命令(命名空间是否存在。

理想情况下,我想要一种方法来授予用户权限,只获取上面的一个命名空间。但是,如果我可以只授予列出名称空间的权限,而不授予集群级别的其他新内容,我会感到满意。

如何仅向列表命名空间添加权限

我想通了!

我需要将Role的作用域设置为my-namespace-name-here,以授予获取名称空间的能力。然后创建一个rolebinding,将该权限授予我的用户。运行kubectl apply -f ./my-yaml-file-below.yaml做到了。

这是yaml

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:  
  name: namespace-reader
  namespace: my-namespace-name-here
rules:
- apiGroups: [""]
  resources: ["namespaces"]
  verbs: ["get"]
---
apiVersion: "rbac.authorization.k8s.io/v1"
kind: RoleBinding
metadata:
  name: my-username-here-namespace-reader
  namespace: my-namespace-name-here
roleRef:
  apiGroup: "rbac.authorization.k8s.io"
  kind: Role
  name: namespace-reader
subjects:
  - apiGroup: "rbac.authorization.k8s.io"
    kind: User
    name: "my-username-here@mydomain.com"

这允许用户只在授予权限的命名空间上执行kubectl get namespace

相关内容

  • 没有找到相关文章

最新更新