下面的代码说"我可以"使用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
,对吗?
1条答案
按热度按时间nvbavucw1#
kubectl auth can-i
没有错。can-i
命令正在检查群集RBAC(是否存在授予您访问该操作的权限的角色和角色绑定)。它不知道也不关心“支持的方法”。在某些地方存在赠款您对这些资源的get
predicate 的角色...可能是隐式的,例如通过resources: ['*']
。例如,我正在使用
cluster-admin
权限访问本地群集,这意味着我的访问权限由以下角色控制:kubectl auth can-i get <anything>
的答案将是yes
,而不管该操作对于给定的资源是否有意义。