Check ID:
Provider: AWS
Service:
Severity: HIGH
Categories:
Resource type:
eks_cluster_private_nodes_enabledProvider: AWS
Service:
eksSeverity: HIGH
Categories:
internet-exposed, trust-boundariesResource type:
AwsEksClusterWhat this check verifies
Amazon EKS cluster has private endpoint access enabled for the Kubernetes API server, allowing control plane traffic to use a VPC-resolved private endpoint. The check evaluates the cluster’sendpointPrivateAccess setting.
Risk
Without private endpoint access, the API server is exposed on the public internet. This expands attack surface and weakens confidentiality and integrity: stolen creds or mis-scoped CIDRs can enable unauthorized API calls, secret reads, pod deployments, and config changes. Availability also depends on internet egress, increasing failure modes.Recommendation
Enable private endpoint access and disable or tightly restrict the public endpoint. Require administration from private networks, enforce least privilege with IAM/RBAC, and apply defense in depth via segmentation and logging. If external access is needed, allow only specific CIDRs and monitor API activity.Remediation
- CLI
- Terraform
- Native IaC
- Dashboard steps
References
- https://docs.aws.amazon.com/eks/latest/userguide/private-clusters.html
- https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html
Where this check fires
This check runs on every scheduled scan against your AWS account. Findings appear at Cloud Security → Findings filterable byCheck ID = eks_cluster_private_nodes_enabled. To re-evaluate after a fix, hit Run now on the account’s schedule under Cloud Security → Schedules — the next scan re-checks this control and marks the finding fixed or keeps it persistent.
← Back to AWS checks