是否了解K8s集群中的ServiceAccount?
1 个回答
热爱漫无边际,生活自有分寸。唐昊## 作用 - ServiceAccount 是 Kubernetes 中面向工作负载的身份标识,主要给 Pod 中的进程使用,而不是给人使用。 - 在 Consul-k8s 的系统 ACL 管理场景中,开启 `global.acls.manageSystemACLs=true` 后,系统会建立 Kubernetes 认证和 ACL 绑定规则。 - 这些规则把 Consul 各组件对应的 Kubernetes ServiceAccount 映射到相应的 Consul 角色,使组件能够通过自身的 Kubernetes 身份换取 Consul 令牌并获得对应权限。 ## 原理 - Pod 可关联指定的 ServiceAccount,并使用该 ServiceAccount 的令牌表明自己的 Kubernetes 身份。 - Consul-k8s 的认证与绑定规则会校验该身份,并将其映射到预定义的 Consul 角色或权限。 - 正常情况下,绑定规则还应限制 ServiceAccount 所在的 Kubernetes 命名空间,确保只有部署 Consul 的命名空间中的组件身份可以换取对应 Consul 权限。 - 如果规则缺少命名空间限制,其他命名空间中具备创建 ServiceAccount 和获取令牌权限的攻击者,就可能冒充 Consul 组件身份,获得该组件关联的 Consul 权限。 - 因此,ServiceAccount 本身承担工作负载身份认证的作用,而最终能访问什么资源,还需要结合命名空间限制、ACL 绑定规则和网络访问控制共同决定。发布于 2026-10-27 03:39 •IP属地 天津举报评论收藏
公众号进入网站体验更佳

