3.1.2 Service account token authentication should not be used for users

Information

Kubernetes provides service account tokens which are intended for use by workloads running in the Kubernetes cluster, for authentication to the API server.

These tokens are not designed for use by end-users and do not provide for features such as revocation or expiry, making them insecure. A newer version of the feature (Bound service account token volumes) does introduce expiry but still does not allow for specific revocation.

Rationale:

With any authentication mechanism the ability to revoke credentials if they are compromised or no longer required, is a key control. Service account token authentication does not allow for this due to the use of JWT tokens as an underlying technology.

Impact:

External mechanisms for authentication generally require additional software to be deployed.

NOTE: Nessus has not performed this check. Please review the benchmark to ensure target compliance.

Solution

Alternative mechanisms provided by Kubernetes such as the use of OIDC should be implemented in place of service account tokens.

Default Value:

Service account token authentication is enabled by default.

See Also

https://workbench.cisecurity.org/benchmarks/11107