基于角色的访问控制保障资源安全
1. 集群内资源访问安全
在 Kubernetes 中,每个命名空间都会自动创建一个默认服务账户,未指定服务账户的 Pod 将使用该默认账户。默认服务账户初始没有任何权限,需要通过角色绑定和集群角色绑定来添加权限,这与为最终用户主体添加权限的方式相同。不过,应用通常只需要有限的权限集,因此最佳实践是为每个组件创建专用的服务账户。
创建服务账户并设置角色和绑定会增加一定的开销,但这并非是为了限制应用模型中对资源的访问。在清单文件中可以包含 ConfigMaps、Secrets 等所需内容,它们在运行时不受服务账户权限的影响。服务账户的基于角色的访问控制(RBAC)主要是为了保护使用 Kubernetes API 服务器的应用,例如 Prometheus 通过查询 API 获取 Pod 列表。
以下是一些具体操作步骤:
1. 创建新命名空间并检查服务账户权限 :
- 若使用 Docker Desktop for Mac,运行以下命令修复 RBAC 设置:
kubectl patch clusterrolebinding docker-for-desktop-binding --type=json --patch $'[{"op":"replace", "path":"/subjects/0/name", "value":"system:serviceaccounts:kube-system"}]'
- 若使用 Docker Desktop for Windows,运行
超级会员免费看
订阅专栏 解锁全文
2926

被折叠的 条评论
为什么被折叠?



