More Info:
The default service account should not be used to ensure that rights granted to applications can be more easily audited and reviewed.Risk Level
MediumAddress
SecurityCompliance Standards
- APRA CPS 234 (Australia)
- BSI C5 (Germany)
- Brazil LGPD
- CCPA / CPRA (California)
- CIS Critical Security Controls v8
- CIS EKS
- CMMC 2.0
- CSA Cloud Controls Matrix v4
- DPDPA
- Digital Operational Resilience Act (EU)
- Essential 8
- ISO/IEC 27017
- ISO/IEC 27018
- ISO/IEC 27701
- KSA PDPL
- MAS Technology Risk Management (Singapore)
- MITRE ATT&CK (Cloud)
- NIS2 Directive
- NIST SP 800-171
- NYDFS 23 NYCRR 500
- SWIFT Customer Security Controls Framework
- Sarbanes-Oxley IT General Controls
- UK NCSC Cyber Assessment Framework
Triage and Remediation
- Remediation
Remediation
Manual Steps
Manual Steps
-
List all default service accounts and identify ones still auto-mounting tokens (run on any machine with kubectl access):
-
Disable token auto-mount for the default service account in each affected namespace (run on any machine with kubectl access; repeat for each NAMESPACE from step 1):
-
Identify pods currently using the default service account (run on any machine with kubectl access):
-
For each workload using the default service account, create a dedicated service account (run on any machine with kubectl access; repeat per namespace as needed):
-
Update workloads (Deployments/StatefulSets/etc.) to use the new service account (run on any machine with kubectl access; repeat per workload):
-
Verify that default service accounts are not auto-mounting tokens and not used by pods (run on any machine with kubectl access):
Using kubectl
Using kubectl
Automation
Automation

