AWS Builder Center

A Kubernetes security checklist, read against EKS

A Kubernetes security checklist, read against EKS

A Kubernetes security checklist, read against EKS

krol3/kubernetes-security-checklist  is a single README by Carol Valencia, Apache-2.0, 49 stars, last changed 18 January 2023 (6557c71). It is organised around the 4C model — cloud, cluster, container, code — and covers:
  • Infrastructure: API server and node network access, cloud IAM, etcd, host benchmarks, patching, certificates.
  • Security features: RBAC, SSO, secrets, pod security, network policy, audit.
  • Supply chain: image signing, admission verification, SBOM.
  • Common attacks, with the control for each, and a short tools and guides list.
This page reads it for one question: on Amazon EKS, which checklist items does AWS do for you, which have an AWS service you switch on, and which stay yours? The RBAC section gets the most space, because it is where EKS differs most from a self-managed cluster.
The services themselves are described in EKS security with AWS services only ; this page links to it instead of repeating it.

Item by item

"AWS" means EKS does it and you cannot change it. "AWS service" means there is a managed service or setting, but you have to turn it on. "Yours" means nothing in AWS does it.

Kubernetes infrastructure

checklist itemon EKSwho
Limit access to the API server to trusted networksthe cluster endpoint: public, private, or both, with a CIDR allowlist on the public side. Public access is on by default at createAWS service — set endpointPrivateAccess, and either turn public access off or restrict publicAccessCidrs. Security Hub control EKS.1 flags a public endpoint
Limit network access to nodesnode security groups; the nodes sit in your VPC subnetsyours
Least privilege for the cloud provider's IAMIAM roles for the cluster, the nodes and each workloadyours, with IAM Access Analyzer to find unused permissions
Limit access to etcdetcd is inside the EKS control plane; you have no network path to itAWS
Encrypt etcdenvelope encryption of Kubernetes API data with KMS is on by default from 1.28; you can supply your own KMS keyAWS, with an optional customer key. Control EKS.3
TLS to etcd; is etcd limited to the control plane?not visible or configurableAWS
Host benchmark (OpenSCAP, OVAL, CIS)EKS-optimised AMIs and Bottlerocket are the base. Auto Mode nodes are AWS-managedyours on managed and self-managed node groups — run kube-bench with its EKS profile; AWS ships the image on Auto Mode
Updates and patchesthe control plane is patched by EKS; the Kubernetes minor version is upgraded by yousplit: control plane AWS, version upgrade and nodes yours (AWS on Auto Mode). Controls EKS.2 and EKS.9 flag unsupported versions
Certificates for ingress and pod-to-pod mTLSACM certificates on the ALB or NLB for ingress; ACM Private CA for internal PKI, which cert-manager can issue from through its AWS PCA issuerAWS service for ingress; yours to wire mTLS inside the cluster (a mesh or cert-manager)

Kubernetes security features

checklist itemon EKSwho
Authorization: RBACKubernetes RBAC, unchanged; EKS adds access entries in front of itsee the RBAC section below
Authentication: SSOIAM is the built-in authenticator, so IAM Identity Center or any IAM federation is SSO. An external OIDC provider can also be associated with the clusterAWS service
Secrets managementsee Secrets below—
Pod Security Policyremoved in Kubernetes 1.25. Its replacement, Pod Security Admission, is built into every supported EKS versionyours — a namespace label
Network policyKubernetes NetworkPolicy, enforced by the VPC CNI when network policy is enabled on the add-on, or by Auto ModeAWS service; the policies themselves are yours
Audit the API servercontrol-plane audit logs to CloudWatch Logs, off by default; GuardDuty EKS Protection reads the audit stream independentlyAWS service. Control EKS.8 flags audit logging off

Kubernetes pod security

checklist itemon EKSwho
Pod Security Standards: restricted, baseline, privilegedPod Security Admission, per namespace. Finer rules (allowed registries, required limits) need Kyverno or Gatekeeperyours — no AWS service decides admission
Security context per pod or containerplain Kubernetesyours, enforced by the admission policy above
A runtime with stronger isolationFargate runs each pod in its own microVM; there is no managed gVisor or Kata on EC2 nodesAWS service if Fargate fits the workload (no DaemonSets, no privileged pods, no GPUs); otherwise yours

Kubernetes secrets

checklist itemon EKSwho
Encrypt all secretsat rest in etcd: envelope encryption, on by default. In use: Secrets Manager, mounted through the Secrets Store CSI Driver and its AWS providerAWS at rest; AWS service for an external store
Mozilla SOPSfor secrets kept in Git; SOPS supports AWS KMS as a key sourceyours, with KMS as the key
Cloud key managementAWS KMSAWS service

Kubernetes networking

checklist itemon EKSwho
Network policy for ingress and egressVPC CNI network policy (above), plus security groups for pods for traffic that leaves the cluster to RDS or other VPC resourcesAWS service for enforcement; the policies are yours
"Nano segmentation"per-pod NetworkPolicy selectors; L7 segmentation needs a meshyours
The checklist's own line — when's the last time anyone discovered a sophisticated attack from a packet capture in Kubernetes? — holds on AWS too. VPC Flow Logs see ENI-level flows, not pods by name; GuardDuty Runtime Monitoring sees process and network events on the node, which is the useful layer.

Kubernetes supply chain

checklist itemon EKSwho
Image signing (Cosign, Notary)AWS Signer signs container images in ECR using the Notation (Notary Project) format; Cosign signatures can also be stored in ECR as OCI artifactsAWS service to sign; both cosign and notation are active projects
Admission controller that verifies signaturesno managed admission. Kyverno, Gatekeeper with Ratify, or the AWS Signer plugin for Notation's verifier, run by youyours
SCA and SBOMAmazon Inspector scans ECR images and can export SBOMsAWS service

Any opinions in this article are those of the individual author and may not reflect the opinions of AWS.
Enjoyed reading this content? Let the author know!

Your likes, comments, shares, and saves help creators reach more builders.

Loading recommendations

Loading article