kubernetes - kubernetes 列表权限是否允许获取集合中的单个对象
问题描述
下面的角色是否允许获取bar
命名空间中所有秘密的内容,还是只允许获取名为 的秘密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"]
谢谢
解决方案
角色特定于namespace
. 所以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 列表权限是否允许获取集合中的单个对象
不,不是的。您只能获取列表中所有项目的完整聚合内容,但不能单独获取每个项目的内容。
推荐阅读
- javascript - 如何动态引用对象变量?
- html - 使用 Flex-box 为 Material-UI 制作两个相同高度的网格项
- haskell - Haskell 函数将 Int 转换为 alpha numeration
- java - 是否可以使“标题/列”对表格视图中的行进行分组?
- objective-c - UISegmentedControl 确定当 momentary = YES 时点击哪个按钮
- elixir - 在 Elixir 中的函数调用之间保留变量值
- jquery - 如何在 jquery ajax 中解码 base 64 json 图像?
- utf-8 - Apex 错误(图像到 PDF 的转换):BLOB 不是有效的 UTF-8 字符串
- vector - 访问数组的倒数第二个元素
- python - Python asyncio子进程连续写入stdin和读取stdout/stderr