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格式的完整聚合内容…是的,这是一个安全问题,因为您可以看到内容。不可能使用列表权限获取单个对象内容