Views:
Profile applicability: Level 1 - Cluster / Control Plane
Ensure that Network Policy is enabled and set appropriately when creating an Amazon EKS cluster, as the network policy option selected at creation cannot be changed later. Amazon EKS supports Calico Network Policies, an open-source solution that uses Linux IPTables to enforce network security policies. These policies are translated into rules that allow or disallow traffic between IP pairs, effectively acting as a pod-level firewall that restricts traffic between sources within a cluster. By default, pod-to-pod traffic is unrestricted within a cluster unless a Network Policy that uses labels to select specific pods is implemented.
Once a policy is applied to a pod, it will block any connections not explicitly allowed by the policy, while pods not selected by any Network Policy will continue to accept all traffic. Network Policies are managed via the Kubernetes Network Policy API and must be enforced by a compatible network plugin; without this, creating the resource alone will have no effect. Enabling Network Policy requires the Network Policy add-on, which is automatically included when a new cluster is set up with Network Policy but must be added manually to existing clusters. The process of enabling or disabling Network Policy triggers a rolling update of all cluster nodes, a long operation that blocks other cluster operations until complete. Additionally, enforcing Network Policy consumes extra node resources, increasing the memory footprint of the kube-system process by approximately 128MB and requiring about 300 millicores of CPU.

Impact

Network Policy requires the Network Policy add-on. This add-on is included automatically when a cluster with Network Policy is created, but for an existing cluster, it needs to be added before enabling Network Policy.
Enabling or disabling Network Policy causes a rolling update of all cluster nodes, similar to performing a cluster upgrade. This operation is long-running and will block other operations on the cluster (including delete) until it has completed.
Enabling Network Policy enforcement consumes additional resources in nodes, increasing the memory footprint of the kube-system process by approximately 128MB, and requiring around 300 millicores of CPU.

Audit

Check for the following is not null and set with the appropriate group id:
    export CLUSTER_NAME=<your cluster name>
    aws eks describe-cluster --name ${CLUSTER_NAME} --query "cluster.resourcesVpcConfig.clusterSecurityGroupId"
   

Remediation

Utilize Calico or another network policy engine to segment and isolate your traffic.