The API server waits like a locked vault. Your workloads knock, but they are not humans. They are controllers, jobs, and services—non-human identities. Without the right access model, they stall, fail, or open attack vectors. Kubernetes runs on trust, but trust must be controlled.
Kubernetes access for non-human identities is not the same as user logins. These identities are service accounts, often bound to pods, jobs, and automation pipelines. They need permissions to pull secrets, read ConfigMaps, or trigger deployments. Each permission is a point of power. Each point of power is a potential exploit.
Service accounts link workloads to the Kubernetes API. Role-Based Access Control (RBAC) decides what they can do. Too often, RBAC rules are bloated. ClusterRole bindings grant wide access when narrow scopes would suffice. A pod that can list all secrets in all namespaces is a breach waiting to happen.
For secure access, define least privilege policies. Start with the namespace scope. Bind service accounts only to roles they need. Avoid using default service accounts for critical workloads. Rotate secrets and tokens. Audit RBAC bindings regularly. Delete unused service accounts.