kubernetes 使用“get”访问SubjectAccessReview对象

v1uwarro  于 2023-01-08  发布在  Kubernetes
关注(0)|答案(1)|浏览(121)

下面的代码说"我可以"使用get SubjectAccessReview,但随后它返回了MethodNotAllowed错误。为什么?

❯ kubectl auth can-i get SubjectAccessReview
Warning: resource 'subjectaccessreviews' is not namespace scoped in group 'authorization.k8s.io'

yes
❯ kubectl get SubjectAccessReview
Error from server (MethodNotAllowed): the server does not allow this method on the requested resource
❯ kubectl version --short
Flag --short has been deprecated, and will be removed in the future. The --short output will become the default.
Client Version: v1.25.2
Kustomize Version: v4.5.7
Server Version: v1.25.3+k3s1

如果我不能返回get,那么can-i不应该返回yes,对吗?

nvbavucw

nvbavucw1#

kubectl auth can-i没有错。
can-i命令正在检查群集RBAC(是否存在授予您访问该操作的权限的角色和角色绑定)。它不知道也不关心“支持的方法”。在某些地方存在赠款您对这些资源的get predicate 的角色...可能是隐式的,例如通过resources: ['*']
例如,我正在使用cluster-admin权限访问本地群集,这意味着我的访问权限由以下角色控制:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: cluster-admin
rules:
- apiGroups:
  - '*'
  resources:
  - '*'
  verbs:
  - '*'
- nonResourceURLs:
  - '*'
  verbs:
  - '*'

kubectl auth can-i get <anything>的答案将是yes,而不管该操作对于给定的资源是否有意义。

相关问题