首页/云/云与容器速查/RBAC:Role/RoleBinding 与 ServiceAccount
Kubernetes68 条

RBAC:Role/RoleBinding 与 ServiceAccount

RBAC 三要素:主体(User/Group/ServiceAccount)— 角色(Role/ClusterRole)— 绑定(RoleBinding/ClusterRoleBinding)。命名空间级用 Role,集群级资源用 ClusterRole。

云与容器速查云更新于 2026-10-12
ServiceAccountPod 的集群内身份;默认 SA 权限应最小
Role命名空间内权限:apiGroups/resources/verbs
ClusterRole集群级权限(节点、PV、CRD 等)或跨命名空间复用
绑定RoleBinding 授权到主体;ClusterRoleBinding 全集群生效
审计kubectl auth can-i --as=system:serviceaccount:<ns>:<sa>

最小权限示例

最小权限示例
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: dev
  name: pod-reader
rules:
  - apiGroups: [""]
    resources: ["pods", "pods/log"]
    verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: ci-read
  namespace: dev
subjects:
  - kind: ServiceAccount
    name: ci-bot
    namespace: dev
roleRef:
  kind: Role
  name: pod-reader
  apiGroup: rbac.authorization.k8s.io
别用 cluster-admin 给 CI/机器人:一个凭据泄露等于整个集群沦陷;按命名空间+动词最小授权。

易错点

  • verbs 给 * 或 resources 给 *:看似省事,实际放大攻击面
  • ClusterRoleBinding 绑到默认 SA:全集群权限暴露给所有工作负载

数据来源与参考

  • Kubernetes Docs:RBAC Authorization
  • Kubernetes Docs:Service Accounts

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌