設定檔適用性:等級 1
不應使用
預設
服務帳戶,以確保更容易審核和檢查授予應用程式的權限。Kubernetes 提供一個
default
服務帳戶,當叢集工作負載未對 pod 指派特定服務帳戶時,將使用此帳戶。若需要從 pod 存取 Kubernetes API,應為該 pod 建立特定的服務帳戶,並授予該服務帳戶權限。預設服務帳戶應配置為不提供服務帳戶權杖,且不具有任何明確的權限指派。![]() |
注意預設情況下,
default 服務帳戶允許其服務帳戶令牌在其命名空間中的 Pod 中掛載。 |
影響
所有需要訪問 Kubernetes API 的工作負載都需要創建一個明確的服務帳戶。
稽核
對於叢集中每個命名空間,檢查指派給預設服務帳戶的權限,並確保除了預設值之外,沒有其他角色或叢集角色綁定到它。此外,確保每個預設服務帳戶都設置了
automountServiceAccountToken: false
。矯正性處理
在 Kubernetes 工作負載需要特定訪問 Kubernetes API 伺服器時,創建明確的服務帳戶。修改每個默認服務帳戶的配置以包含此值:
automountServiceAccountToken: false
預設帳戶的自動修復:
kubectl patch serviceaccount default -p $'automountServiceAccountToken: false'