The Kubernetes security best practices cloud teams need in 2026 must hold after deployment. A permissive role, vulnerable image, or missing admission policy can spread across namespaces, clusters, and providers before it reaches a security queue.
Recent research shows how quickly that exposure compounds:
- 78% of organizations reported cloud infrastructure or service misconfigurations during the previous 12 months, according to the Red Hat 2026 report.
- Newly created AKS clusters received their first attack attempt within 18 minutes, while EKS clusters were targeted within 28 minutes, in Wiz research.
- Approximately 5.5% of vulnerable images remained in running workloads with critical- or high-severity vulnerabilities, according to Sysdig’s Report.
Each practice in this article draws on market data, practitioner feedback, and the experience of Cloudaware experts Katerina L., Cloud Security Expert, Igor K., DevOps Engineer, and Valentin K., Software Developer.
Key insights
- Kubernetes security is a shared-responsibility system. Cloud IAM, the managed control plane, Kubernetes authorization, workloads, network paths, secrets, and response controls protect different parts of the environment. One layer cannot compensate for a gap in another.
- Standardize control objectives, then adapt enforcement to each platform. EKS, AKS, GKE, and self-managed clusters differ in identity, networking, logging, and upgrade mechanisms. The expected outcome and evidence should remain consistent even when implementation varies.
- Effective state matters more than declared configuration. Review resolved permissions, active admission modes, running image digests, effective network paths, runtime behavior, and authoritative deployment sources across the fleet.
- Prevention must connect to runtime context. API and RBAC controls, admission policies, image provenance, network isolation, workload identity, and secret management reduce exposure, but runtime detection and posture assessment show whether approved state persists after deployment.
- Risk prioritization requires ownership and context. Route findings by cluster, namespace, application, environment, owner, runtime presence, exposure, criticality, and exception status.
- Closure requires fresh production evidence. A closed ticket, successful scan, or manual configuration change does not prove that the unsafe state disappeared.
Where Kubernetes security responsibility sits in the cloud
Managed Kubernetes transfers part of the control-plane operation to AWS, Microsoft, or Google. It does not transfer responsibility for every identity, workload, network path, or response decision.
The provider secures the underlying service according to its operating mode. The customer configures cloud IAM, API exposure, Kubernetes RBAC, admission, workloads, network policy, secrets, logging, and remediation. Responsibility also changes between managed nodes, serverless pods, and self-managed nodes.
Treat the environment as five connected control layers:
| Layer | Typical control owner | Security decision |
|---|---|---|
| Cloud account and identity | IAM and cloud platform teams | Who may authenticate to the service, change cluster infrastructure, or reach the API endpoint? |
| Managed control plane | Cloud provider, with customer configuration | Which provider protections, logging options, endpoint modes, and upgrade settings are enabled? |
| Kubernetes authorization and policy | Platform security | What may an authenticated identity do, and which workloads may be admitted? |
| Nodes, workloads, network, and secrets | Platform and application teams | What code runs, with which privileges, credentials, and communication paths? |
| Detection and response | SecOps and platform security | Which behaviors and posture failures require action, who owns them, and what proves closure? |
Private API access cannot compensate for a broad ClusterRoleBinding, and Kubernetes RBAC cannot remove cloud IAM permission to alter the cluster. Admission also cannot detect every runtime behavior.
Keep control objectives consistent across clouds, then adapt their implementation. EKS, AKS, and GKE differ in identity, networking, logging, and upgrades. Standardize the expected outcome and evidence, then test how each platform enforces it.
5 Kubernetes security best practices cloud teams should enforce
These practices operate as coordinated workstreams rather than a fixed sequence. Establish inventory, audit coverage, and runtime visibility early while teams tighten identity, admission, artifact, network, and credential controls against observed production behavior.
Each practice draws on current market data, practitioner feedback, and the experience of Cloudaware experts Katerina L., Cloud Security Expert, Igor K., DevOps Engineer, and Valentin K., Software Developer.
1. Restrict Kubernetes API access and RBAC
A managed control plane can still be exposed through public API reachability, excessive cloud IAM, broad Kubernetes roles, shared administrator access, or service accounts with unnecessary permissions. Authentication through the cloud provider or an identity provider and authorization through Kubernetes RBAC are separate decisions. Restricting either layer leaves the other unchanged.
Apply least privilege across the API endpoint, human access, workload identities, and audit trail:
- Restrict API reachability. Keep the Kubernetes API private or network-restricted where the platform and operating model permit it. Review public endpoints, authorized networks, and emergency access paths.
- Scope human access. Integrate access with the organization’s identity provider and require MFA there. Use namespace-scoped
RoleandRoleBindingobjects by default, reservingClusterRoleBindingfor permissions that genuinely require cluster scope. Review wildcard permissions,cluster-admin, impersonation, secret reads, role binding, pod creation, and admission configuration. Pod creation may allow a subject to mount a sensitive service account or host path without direct permission to read the credential. - Separate workload identities. Do not reuse human identities for workloads. Disable automatic token mounting for workloads that do not call the Kubernetes API. Where access is required, use a dedicated service account, short-lived projected tokens with an appropriate audience, and narrowly scoped permissions.
- Retain API audit evidence. Enable Kubernetes API audit logs and retain the identity, operation, object, source, and result. Managed services expose the Kubernetes auditing mechanism through provider-specific logging services and configuration paths.
At fleet scale, compare effective permissions rather than role names. A role named deployer may be namespace-scoped in one cluster and include privilege-enabling verbs in another. Continuously detect new privileged bindings and unowned service accounts, then use periodic entitlement reviews to recertify resolved permissions and identity mappings.
2. Enforce workload security at admission
Deployment standards remain optional when they live only in documentation, CI checks, or a platform template. CI protects the expected path. Admission evaluates requests that arrive through alternate pipelines, direct API access, operators, compromised automation, or emergency workflows.
Build admission enforcement across four areas:
- Establish a native baseline. Use Kubernetes Pod Security Standards and apply Pod Security Admission by namespace. Start existing environments in
auditandwarn, measure incompatibilities, resolve legitimate cases, then move production application namespaces towardenforce. Prefer therestrictedprofile where workload requirements allow it. - Reject unsafe workload configurations. Block privileged containers and unnecessary host namespace or host path access. Require non-root execution, dropped Linux capabilities, seccomp, and read-only root filesystems where feasible. Extend the native baseline with policy-as-code for approved registries, immutable image references, ownership labels, resource limits, signature verification, and other controls that Pod Security Standards do not cover.
- Operate admission as control-plane infrastructure. For each policy, choose fail-closed or fail-open behavior, set short timeouts, run webhook backends redundantly, and test certificate rotation and upgrades. Pin Pod Security Admission modes to a Kubernetes version, audit exemptions, and validate policies against representative EKS, AKS, and GKE environments.
- Govern exceptions across the fleet. Record each exception with an owner, scope, reason, compensating control, and expiration. Compare effective namespace modes and exemptions across clusters because the same namespace can be restricted in one environment and unlabeled in another.
One practitioner framed the decisive review question as: “Are there places where people could be bypassing stages of the pipeline?” Admission closes one of those bypasses by evaluating the request at the cluster boundary.
Immediate enforcement can break legacy workloads. Use audit to measure impact, surface results in CI or dashboards instead of relying on client warnings, and enable enforce by workload class after owners resolve or except violations.
3. Continuously secure images and the software supply chain
An image that passed its release gate can become vulnerable after deployment when new intelligence identifies a CVE or compromised upstream dependency. CI and registry scanning establish whether an artifact was acceptable at a point in time. Runtime inventory establishes where that digest is running and who owns the affected workload.
Continuous image security must therefore connect build-time evidence, admission decisions, runtime presence, and remediation in one operating loop.
Use the following steps to operate this loop:
- Build a verifiable artifact. Use minimal, maintained base images and pin production deployments by digest. Scan dependencies, image layers, operating-system packages, and registry artifacts. Retain an SBOM with the build record, sign the image, and record its provenance.
- Enforce release and admission gates. Restrict deployments to approved registries and verify the required signature, provenance, or attestation before admission. Block production deployment of images with known exploitable critical vulnerabilities unless an approved, expiring exception records the reason and compensating control.
- Maintain a running-digest inventory. Trace each deployed digest to every cluster, namespace, workload, application, owner, and pipeline. Deduplicate investigation by digest while preserving every deployment location.
- Reassess and prioritize when intelligence changes. Re-evaluate stored and running images after relevant registry events and material vulnerability updates. Prioritize findings using exploitability, runtime presence, environment, internet exposure, application criticality, and compensating controls. A critical CVE in an unused image and a lower-scored flaw in an internet-facing production workload do not create the same remediation decision. See the deeper guide to cloud security vulnerabilities for the context that should accompany severity.
- Rebuild, redeploy, and verify closure. Assign the affected digest to its application owner, build a replacement artifact, redeploy it, and confirm that the vulnerable digest no longer runs in the scoped production environments. Preserve the scan result, digest, SBOM, signature or provenance result, running-workload match, exception, and remediation record as connected evidence.
Application teams remediate affected workloads, product security defines image policy, and platform teams enforce admission. Cloudaware’s vulnerability management workflow can add CMDB context and ownership to supported scanner findings, but the source scanner and image relationship must remain visible before the resulting view is described as Kubernetes image scanning.
4. Isolate workloads, network paths, and secrets
Namespace boundaries alone do not prevent lateral movement. A compromised pod may still reach unrelated services, a cloud metadata endpoint, or the Kubernetes API while holding credentials that authorize another path.
Network policy and workload identity address different parts of the problem. Network controls reduce reachable targets, while identity and secret controls limit what a successful connection can do. Treat both as one isolation design.
Use the following steps to design and validate isolation:
- Define workload boundaries. Separate workloads by trust level, environment, tenant, application boundary, and acceptable blast radius. Decide which workloads may share node, control-plane, and policy failure modes. As one practitioner described it, this means “treating the cluster as the security boundary”.
- Apply default-deny network controls. Start production application namespaces with default-deny ingress and egress. Permit only documented dependencies and required DNS traffic. Restrict public services, ingress, NodePorts, administrative endpoints, and control-plane reachability.
- Validate enforcement and record blind spots. Verify that the CNI enforces the intended policies. Standard NetworkPolicy provides additive L3/L4 controls, but does not reliably isolate
hostNetworkpods or resident-node traffic and has no native FQDN rules or connection logging. Record which gaps require CNI-specific, node-level, gateway, or Layer 7 controls. - Use observed flows as evidence. Review actual traffic patterns, validate each dependency with the service owner, and test denied paths. Do not turn every observed destination into a permanent allow rule. Retain approved dependencies, denied-path test results, and unresolved enforcement gaps.
- Protect workload identity and secrets. Prefer workload identity and short-lived credentials over static cloud keys. Keep secrets out of images and source-controlled manifests, encrypt Kubernetes API data at rest, restrict Secret access, and protect cloud metadata endpoints.
- Choose and verify secret delivery. Decide whether secrets should be mounted through a CSI driver or synchronized into Kubernetes Secrets. CSI-mounted values can avoid persistence in the Kubernetes API datastore, while synchronization controllers copy values into it. Verify where each value exists, how rotation reaches the application, whether a restart is required, and whether the old credential is revoked.
Default-deny can disrupt poorly mapped dependencies. Observe, test, then enforce a narrow allowlist. This applies zero-trust cloud security at the workload boundary: one compromised pod should not provide both credentials and a path to the rest of the environment.
5. Detect runtime threats and manage fleet-wide posture
Admission controls and image scanning reduce known risk, but they do not prove that a running workload still matches its approved state. Runtime detection and Kubernetes Security Posture Management address different questions:
- Runtime detection identifies suspicious behavior
- KSPM evaluates Kubernetes objects, workload settings, and cluster-specific controls for drift and persistent misconfiguration
- CSPM adds context from surrounding cloud resources and provider configuration.
Use the following practices to connect runtime signals, posture findings, and remediation:
- Collect and enrich security telemetry. Collect Kubernetes API audit logs, cloud control-plane logs, workload telemetry, and node or runtime events. Detect unexpected shells, privilege escalation, sensitive mount access, new executables, suspicious API calls, unapproved images, unexpected destinations, and changes to privileged roles or admission policy.
- Compare runtime state with the approved baseline. Compare live Kubernetes objects with the known-good baseline and the authoritative deployment source. A manual fix may disappear when GitOps restores the vulnerable manifest, while an emergency
kubectl applymay persist without review. - Assess posture across the fleet. Continuously assess clusters against current Kubernetes guidance and the applicable CIS benchmark version. Wiz found that only 54% of observed clusters ran supported Kubernetes versions, showing why version currency remains a fleet-level control.
- Route findings using operational context. Group findings by cluster, namespace, application, environment, owner, runtime presence, and exception status. Track posture coverage, violation age, exception age, unowned findings, and reopened findings.
- Verify remediation in production. Close a finding only after a fresh production evaluation confirms compliance across the affected scope. Recheck both the Kubernetes state and the authoritative deployment source so that a later reconciliation does not restore the original exposure.
Example of Cloudaware SIEM view showing an event with account, application, environment, region, and other contextual fields. To learn more visit a senior practitioner's guide on AWS cloud security posture management
Tune runtime alerts around behavior, workload context, and expected state instead of forwarding every event as an incident.
Assume prevention will fail. Protect Kubernetes and application data backups, define RPO and RTO, and test restoration into a clean environment. Revoke compromised identities and confirm restored manifests do not reproduce the original weakness.
| Period | Defensible target |
|---|---|
| Days 1-30 | Inventory production clusters, establish ownership, enable audit coverage, and identify privileged access and unsupported versions |
| Days 31-60 | Pilot RBAC, Pod Security, and image policies in non-production and selected production namespaces |
| Days 61-90 | Enforce controls for critical workload classes, validate exception handling, and publish uncovered clusters and dependencies as explicit risk |
How Cloudaware supports Kubernetes security across clouds
Cloudaware can serve as the inventory, ownership, and remediation-context layer for supported Kubernetes objects and imported findings. Coverage depends on the connected provider, scanner, permissions, and licensed package. Enforcement, runtime detection, image analysis, and control-specific revalidation remain with the native platform or source security tool.
Core capabilities:
- Inventory Kubernetes fleets across environments. Discover supported EKS, AKS, GKE, and self-managed Kubernetes resources through read-only integrations. Use CMDB search, list views, reports, and coverage analysis to review discovered cluster and workload objects across the connected estate.
- Connect workloads to application context. Relate discovered Kubernetes workloads to Applications and associated cluster assets. This helps engineers move from an isolated Kubernetes object to the application and infrastructure context recorded in the CMDB.
- Turn vulnerability findings into owned work. Consolidate findings from configured Cloudaware scanning, cloud-native scanners, and supported third-party tools. Enrich supported findings with CMDB ownership, application, environment, organizational unit, business criticality, severity, exploitability, and vulnerability-age data so teams can prioritize and route remediation.
- Carry remediation context into Jira. Create or update Jira issues from supported Cloudaware records and include selected record fields in summaries, descriptions, or comments. Engineers can work from Jira while retaining the Cloudaware context used to create the issue.