Skip to main content

lacework-global-336

4.1.6 Ensure that Service Account Tokens are only mounted where necessary (Automated)

note

This rule has been changed to automated, see Automated Policies for CIS Amazon EKS 1.1.0 for details.

Profile Applicability

• Level 1

Description

The default configuration of a pod causes it to automatically mount the service account token of the associated ServiceAccount within each of its containers. This account token provides the pod the ability to interact with the Kubernetes API server.

This is open to abuse by an attacker with access to just a single container, including privilege escalation through mounting of the node root volume.

Do not mount service account tokens in pods except where the workload running in the pod explicitly needs to communicate with the API server.

Rationale

Mounting service account tokens inside pods can provide an avenue for privilege escalation attacks where an attacker is able to compromise a single pod in the cluster.

Avoiding mounting these tokens removes this attack avenue.

Impact

Pods mounted without service account tokens will not be able to communicate with the API server, except where the resource is available to unauthenticated principals.

Audit

Review pod and service account objects in the cluster and ensure that the option below is set, unless the resource explicitly requires this access.

automountServiceAccountToken: false

Remediation

Modify the definition of pods and service accounts which do not need to mount service account tokens to disable it.

To disable the automatic mounting of the service account token, set spec.automountServiceAccountToken to False.

Note that it is not possible to patch this value on an existing pod directly.

  • If deploying Pods directly then you need to destroy and recreate them with updated configuration.
  • If deploying pods via a workload resource (such as a Deployment type resource) then update the workload directly with this setting.

References

https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
https://kubernetes.io/docs/concepts/workloads/pods/#working-with-pods
https://kubernetes.io/docs/concepts/workloads/