在 kubernetes 中禁用自动挂载服务帐户的推荐方法是什么

What is the recommended way to disable the automount of service account in kubernetes

我们需要从 AKS 群集中的现有部署中禁用服务帐户的自动挂载。在服务帐户清单或 pod 模板中添加 属性“automountserviceaccount : false”有两种方法。

我们正在使用我们的应用程序部署中指定的单独服务帐户,但是当我们查看命名空间时,还创建了默认服务帐户。

因此,为了保护我们的集群,我们是否需要为默认和特定于应用程序的服务帐户禁用自动挂载 属性?

既然我们的应用程序已经上线,那么将它添加到服务帐户 s 是否会有任何影响。

如何知道一个 pod 使用的服务帐户及其依赖项?

So inorder to secure our cluster, do we need to disable the automount property for both default and application specific service accounts?.

default ServiceAccount 背后的设计是它没有任何权利,除非你给他们一些。因此,从安全的角度来看,除非您出于某种原因授予他们访问权限,否则没有太多必要禁用挂载。相反,无论何时应用程序确实需要一些访问权限,请继续为该特定应用程序创建一个 ServiceAccount,并通过 RBAC 授予它所需的权限。

Since our app already live, will there be any impact by adding this to the service account s.

如果您真的想禁用挂载,那么如果您的应用程序事先没有使用 ServiceAccount,则不会对您的应用程序产生影响。但是,将要发生的是,将创建一个新的 Pod,并删除现有的 Pod。但是,如果您正确配置了 readinessProbes 和滚动更新策略,那么 Kubernetes 将确保不会出现停机。

How to know the used service accounts of a pod and it's dependencies ?

您可以通过执行kubectl get pods <pod-name> -o yaml查看一个Pod挂载的ServiceAccount。输出将向您展示 Pod 清单的全部内容,字段 spec.serviceAccountName 包含有关 Pod 挂载的 ServiceAccount 的信息。

禁用 auto-mount 默认服务帐户:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: default
automountServiceAccountToken: false

https://gist.github.com/pjbgf/0a8c8a1459e5a2eb20e9d0852ba8c4be