标准答案

  1. 应用应使用专用 ServiceAccount,不要默认复用高权限身份或自动挂载不需要的 token。
  2. Role 只在 namespace 内授权,ClusterRole 可以描述集群范围资源,绑定范围要结合业务。
  3. 权限应按 verbs、resources、resourceNames 和 namespace 缩小,并验证实际 API 调用。
  4. 轮换、审计、逃逸风险和工作负载身份映射要纳入权限生命周期。

题目解析

ServiceAccount 是工作负载访问 Kubernetes API 的身份,Role/ClusterRole 描述 verbs、resources 和范围,RoleBinding/ClusterRoleBinding 决定谁获得这些权限。最小权限要从实际 API 调用出发,优先 namespace 内 Role,避免把“方便排障”变成长期 cluster-admin。

RBAC 只约束 API Server,不会自动限制容器内 Linux 文件、网络、系统调用或云厂商资源;这些需要 securityContext、NetworkPolicy、seccomp、云 IAM 和节点边界共同完成。还要关闭不需要的 token 自动挂载,审计权限使用并定期回收。

常见误区

  • 误区:直接绑定 cluster-admin。改正:按资源、动词、namespace 和实际 API 调用建立最小 Role。
  • 误区:把 Role 当成容器内 Linux 权限控制。改正:分别配置运行用户、capability、网络策略和云 IAM。

作者信息