测验:RBAC
用 RoleBinding 绑定 ClusterRole 后,权限的范围是什么?
- 仅限该 RoleBinding 所在的命名空间
- 仅限创建该 ClusterRole 的命名空间
- 角色与绑定类型不匹配,因此绑定被忽略
- 由于使用 ClusterRole,权限覆盖整个集群
Role 规则无法授予操作 Pod 的权限,最常见的原因是什么?
- 命名空间没有标签
- 在
apiGroups中填写了"v1" - 在
verbs中漏掉了list - RoleBinding 名称不正确
某主体对 pods 有 get 和 list 权限,执行 kubectl logs 时会怎样?
- 由于还需要单独的
pods/log权限,请求被拒绝 - 必须升级为命名空间管理员才能查看日志
pods权限自动包含子资源,因此成功- 只有 Pod 处于 Running 状态时才成功
为什么 kubectl auth can-i list pods --as=system:serviceaccount:rbac-lab:app-reader -n default 返回 no?
- default 命名空间在 RBAC 判定中受到特殊处理
- app-reader 的令牌已经过期,认证失败
- 不能对 ServiceAccount 使用 impersonation
- RoleBinding 只在其所属命名空间生效
使用 verbs: ["*"] 最准确的风险是什么?
- 以后新增的动词或资源也可能被自动纳入,权限静默扩大
- 通配符授权的请求不会在审计日志中记录资源名
- 包含
*的角色不能创建 RoleBinding - 每次请求必须比较所有动词,导致授权判定变慢
要允许查看节点列表,应使用什么?
- 命名空间中的 Role + RoleBinding
- 集群范围的 Role + ClusterRoleBinding
- ClusterRole + ClusterRoleBinding
- 给 ServiceAccount 添加 node-reader 标签
权限审计中最应该优先检查哪组项目?
- Service 类型、Ingress 主机规则、PVC 存储类
- cluster-admin 绑定、通配符角色、可读取 secrets 的角色
- 各命名空间 Pod 数、节点数、容器镜像标签数
- 镜像标签策略、容器资源请求量、Pod 安全标签