Skip to main content

More Info:

Running the latest CNI plugin version ensures the cluster benefits from the most recent security fixes and NetworkPolicy support. Review the CNI plugin documentation and upgrade as needed.

Risk Level

Medium

Address

Security

Compliance Standards

  • CIS AKS

Triage and Remediation

Remediation

Manual Steps

  1. Identify the CNI plugin in use and its version
    • Run on: any machine with kubectl access
    • Look for the AWS VPC CNI DaemonSet (commonly aws-node). Then get its image:
  2. Map the running image to an AWS CNI release version
  3. Review compatibility and upgrade guidance
    • From the AWS docs page, confirm:
      • The latest supported CNI version for your EKS/Kubernetes version.
      • Any upgrade prerequisites or migration steps (e.g., environment variables, config changes in aws-node DaemonSet, IAM permissions).
    • If your current version is not the latest compatible version, plan an upgrade window (DaemonSet update causes rolling restart of CNI pods on all nodes, which can affect networking).
  4. Upgrade the AWS CNI plugin (if not latest compatible)
    • Run on: any machine with kubectl access
    • If you manage CNI via eksctl/Terraform, follow that tool’s documented method instead of direct kubectl edits. If you manage it directly with manifests, update the DaemonSet image:
    • This triggers a rolling update of aws-node on every node; expect brief disruptions if misconfigured.
  5. Verify the upgrade completed successfully
    • Run on: any machine with kubectl access
    • Confirm all aws-node pods are running and the image tag matches the intended latest version.
  6. Document the version and set a review cadence
    • Record:
      • The CNI version now in use.
      • The date of the check/upgrade and the source (AWS docs / GitHub) you used.
    • Establish a recurring review (e.g., quarterly) to repeat steps 1–5 and align with new AWS CNI releases and your EKS/Kubernetes upgrade schedule.
What to look for:
  • If there is no aws-node DaemonSet in kube-system, this cluster is not using AWS VPC CNI; this particular CISAKS 4.4.1 control does not apply directly and you must review the actual CNI in use against its own documentation.
  • If aws-node exists, note:
    • The image repository and tag under spec.template.spec.containers[].image
    • Any init container images (for example, aws-vpc-cni-init)
Example snippet from the DaemonSet (trimmed):
Why this might indicate a problem:
  • A problem exists if:
    • The image tag is a clearly older, pinned version (for example, v1.9.3, v1.10.0, etc.) compared to the latest version listed in the AWS VPC CNI release notes/documentation.
    • The image tag is omitted or uses :latest, which makes it difficult to confirm whether the running version matches the current recommended release.
  • The actual determination requires manual comparison:
    • Take the image tag(s) you see (for example, v1.12.0) and compare them to the latest stable version documented in the AWS VPC CNI plugin GitHub repository or AWS EKS documentation.
    • If the running version is behind, assess the upgrade notes (breaking changes, required config flags, minimum Kubernetes version) before planning an upgrade.
What indicates a problem here:
  • Different aws-node pods using different image tags suggests a partial or failed rollout; this needs to be resolved before or during a version upgrade.
  • Any image/tag you identify still needs manual comparison with the official AWS VPC CNI documentation to determine whether it is current.