kubernetes列表权限是否允许获取集合中的单个对象
下面的角色是否允许获取kubernetes列表权限是否允许获取集合中的单个对象,kubernetes,rbac,Kubernetes,Rbac,下面的角色是否允许获取栏命名空间中所有机密的内容,或者仅获取名为foo的机密?我不明白这是什么意思 列表(用于集合,包括完整对象内容) 在此上下文中,“完整对象内容”是什么意思 apiVersion: rbac.authorization.k8s.io/v1beta1 kind: Role metadata: name: fooer namespace: bar rules: - apiGroups: [""] resources: [secrets]
栏
命名空间中所有机密的内容,或者仅获取名为foo
的机密?我不明白这是什么意思
列表(用于集合,包括完整对象内容)
在此上下文中,“完整对象内容”是什么意思
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: Role
metadata:
name: fooer
namespace: bar
rules:
- apiGroups: [""]
resources: [secrets]
verbs: [list]
- apiGroups: [""]
resources: [secrets]
verbs: [get, watch]
resourceNames: ["foo"]
谢谢角色特定于
命名空间
。所以yaml实际上应该看起来像
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: Role
metadata:
name: role
namespace: default
rules:
- apiGroups: [""]
resources: [secrets]
verbs: [list]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: role-binding
namespace: default
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: role
subjects:
- kind: ServiceAccount
name: default
namespace: default
对于集合(例如机密)list
表示对列表下所有资源的权限。因此,您可以使用下面的命令获取上述角色的所有机密
kubectl get secrets --as=system:serviceaccount:default:default -n default -o yaml
但是你不可能通过单独使用来获得每个秘密
kubectl get secrets/default-token-bwk2x --as=system:serviceaccount:default:default -n default -o yaml
Error from server (Forbidden): secrets "default-token-bwk2x" is forbidden: User "system:serviceaccount:default:default" cannot get resource "secrets" in API group "" in the namespace "default"
包括完整对象内容表示所有对象的内容都在该列表下,您可以使用上面的第一个命令看到
kubernetes列表权限是否允许在中获取单个对象
藏品
不,没有。您只能获取列表中所有项目的完整聚合内容,但不能单独获取每个项目的内容。即使列表不限于
foo
,并且列表包含完整对象内容
?我编辑此问题也是为了问完整对象内容的确切含义。这是我问题的根源。很抱歉一开始不清楚。谢谢你更新了答案。列表允许获取所有元素,但不是每个元素。我很怀疑。这是一个安全问题,所以我需要绝对肯定。client go有一个列出机密的方法,该方法返回完整的对象,而不仅仅是名称。我理解kubectl可能无法。我从未说过它只返回名称。我说它返回yaml和json格式的完整聚合内容…是的,这是一个安全问题,因为您可以看到内容。不可能使用列表权限获取单个对象内容