C-0189 - Ensure that default service accounts are not actively used
Framework
cis-v1.23-t1.0.1, cis-aks-t1.2.0, cis-eks-t1.2.0
Severity
Medium
Description of the the issue
Kubernetes provides a default
service account which is used by cluster workloads where no specific service account is assigned to the pod.
Where access to the Kubernetes API from a pod is required, a specific service account should be created for that pod, and rights granted to that service account.
The default service account should be configured such that it does not provide a service account token and does not have any explicit rights assignments.
Related resources
Namespace, ServiceAccount
What does this control test
Checks that each namespace has at least one service account that isn't the default, and checks that the default service accounts have 'automountServiceAccountToken: false' set
How to check it manually
For each namespace in the cluster, review the rights assigned to the default service account and ensure that it has no roles or cluster roles bound to it apart from the defaults.
Additionally ensure that the automountServiceAccountToken: false
setting is in place for each default service account.
Remediation
Create explicit service accounts wherever a Kubernetes workload requires specific access to the Kubernetes API server.
Modify the configuration of each default service account to include this value
automountServiceAccountToken: false
Impact Statement
All workloads which require access to the Kubernetes API will require an explicit service account to be created.
Default Value
By default the default
service account allows for its service account token to be mounted in pods in its namespace.
Example
No example
Updated 11 days ago