Un ServiceAccount è l'identità di workload di Kubernetes usata da un Pod, un controller o un operator quando comunica con l'API di Kubernetes. Non è un account utente; è un'identità macchina che ottiene permessi tramite regole RBAC come Roles, ClusterRoles e i loro binding.
Questo è importante perché qualsiasi processo in esecuzione con quel ServiceAccount eredita i suoi privilegi API. Se a un controller vengono concessi privilegi eccessivi, la compromissione di quel workload può consentire a un attaccante di leggere Secret, modificare risorse o creare nuovi Pod con un raggio d'azione più ampio. Negli attacchi, i ServiceAccount sono spesso il punto di partenza per il movimento laterale e l'escalation dei privilegi; in difesa, sono un punto chiave per applicare il privilegio minimo. Una buona pratica è assegnare un ServiceAccount per ogni workload, evitare di usare l'account predefinito, limitare i permessi al minimo necessario e rivedere regolarmente i binding per individuare accessi a livello di cluster non necessari.


