配置檔適用性:第 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'