首页 > 解决方案 > 如何在 K8s 中管理服务帐户令牌的使用?

问题描述

当在 Kubernetes 中创建 ServiceAccount 时,也会创建一个秘密。此密钥包含 ServiceAccountToken。这个令牌可以在 CI 管道中使用,甚至可以在 kubectl 和其他任何地方访问集群。假设公司中的开发人员为自己复制了这个令牌(没有人知道),并且在他离开公司后,他仍然可以访问我们的 Kubernetes 集群。我想限制他的访问。我怎样才能做到这一点?

标签: kubernetescloudamazon-iamhashicorp-vault

解决方案


从安全角度来看,使用服务帐户使用 kubectl 或 CI/CD 系统从集群外部与 kubernetes 集群交互并不是最好的方法。您应该使用身份验证代理,其中短期 JWT 令牌的生成和轮换委托给外部 OpenId/oAuth 投诉授权系统。

服务帐户只能在集群内运行的 pod 中使用,您可以通过RBAC Role 和 RoleBinding 限制服务帐户的授权。请记住,当前服务帐户令牌不是由 kubernetes 轮换的。


推荐阅读