Skip to content

CKA to CKS Bridge

This document maps every CKA topic to its CKS counterpart and identifies the entirely new security concepts you need to learn. If you passed CKA, you already have the foundation. This page shows you exactly where the walls go up.

Side-by-Side: CKA Topics vs CKS Topics

The table below compares what CKA tested against what CKS tests. Items in bold under the CKS column are entirely new material.

DomainCKA CoverageCKS CoverageDelta
RBACCreate Roles, RoleBindings, ClusterRolesAudit RBAC misconfigs, least-privilege analysis, service account hardening, disable auto-mount tokensSignificant deepening
Network PoliciesBasic ingress rules, pod selectorsDefault-deny all, egress policies, namespace isolation, DNS policiesModerate deepening
TLS / CertificatesCSR approval, kubeadm cert managementmTLS concepts, certificate rotation, PKI verification, ingress TLSModerate deepening
etcdBackup and restoreEncryption at rest, etcd TLS configuration, securing etcd endpointsNew security layer
Pod ConfigurationsecurityContext basics, resource limitsSeccomp profiles, AppArmor profiles, Linux capabilities, read-only rootFS, no privilege escalationMajor new material
SecretsCreate and mount secretsEncrypt secrets at rest, avoid env var secrets, external secret storesNew security layer
Admission ControlKnow admission controllers existOPA/Gatekeeper policies, Pod Security Admission, ImagePolicyWebhook, validating/mutating webhooksEntirely new
Image ManagementPull images from registriesImage scanning (Trivy), allowed registry enforcement, image digest pinning, static analysisEntirely new
Runtime SecurityNot coveredFalco rules and alerts, syscall monitoring, audit logging, behavioral detectionEntirely new
OS HardeningBasic Linux commandsReduce attack surface, disable services, kernel hardening, restrict node accessEntirely new
CIS BenchmarksNot coveredkube-bench, remediate CIS findings, benchmark interpretationEntirely new

Critical Gap

If you skipped through RBAC, Network Policies, or TLS during CKA prep (common with "just enough to pass" study), you must go back and solidify those foundations before tackling CKS. CKS assumes deep fluency with these topics.

Security Concepts CKA Does NOT Cover

Mutual TLS (mTLS)

In standard TLS, only the server presents a certificate. The client verifies the server's identity, but the server does not verify the client's identity. In mTLS, both parties present certificates and verify each other.

Why it matters for CKS: Service mesh solutions (Istio, Linkerd) use mTLS to encrypt all pod-to-pod traffic. CKS expects you to understand the concept and know that services should not communicate over plaintext within the cluster.

Admission Controllers (In Depth)

CKA barely mentions admission controllers. CKS requires you to understand the full pipeline:

Key admission controllers for CKS:

ControllerTypePurpose
PodSecurityValidatingEnforces Pod Security Standards (Privileged/Baseline/Restricted) at namespace level
OPA GatekeeperBothCustom policies written in Rego (e.g., "all images must come from registry.internal.io")
ImagePolicyWebhookValidatingCalls an external webhook to approve/deny container images
NodeRestrictionValidatingLimits what kubelets can modify (only their own Node and Pod objects)
AlwaysPullImagesMutatingForces imagePullPolicy: Always to prevent using cached unauthorized images

Image Scanning & Supply Chain

CKA does not cover container image security at all. CKS expects you to:

  1. Scan images using Trivy to identify CVEs by severity (CRITICAL, HIGH, MEDIUM, LOW)
  2. Enforce allowed registries -- only permit images from trusted sources
  3. Pin images by digest rather than tag (nginx@sha256:abc123... instead of nginx:latest)
  4. Perform static analysis on Kubernetes manifests to find security issues before deployment

Runtime Security

CKA has zero runtime security content. CKS introduces:

  1. Falco -- monitors Linux syscalls in real-time using eBPF/kernel module and alerts on suspicious activity (e.g., shell spawned in container, sensitive file read)
  2. Audit logging -- configuring the API server to log all requests with different levels (None, Metadata, Request, RequestResponse)
  3. Immutable containers -- enforcing readOnlyRootFilesystem: true and detecting containers that write to disk at runtime
  4. Behavioral analysis -- identifying anomalous processes, network connections, or file access within containers

Syscall Filtering (Seccomp)

Seccomp (Secure Computing Mode) restricts which system calls a container can make to the Linux kernel. This is a critical defense-in-depth mechanism:

Kubernetes Security Layers

Understanding how security layers stack in Kubernetes is essential for CKS. Every request and every workload passes through multiple security boundaries:

Defense in Depth

CKS tests your ability to implement security at every layer. A question might require you to fix a Network Policy (Layer 1), harden a securityContext (Layer 4), and configure Falco (Layer 5) -- all in the same scenario.

Key Linux Security Concepts

Namespaces (Kernel, not Kubernetes)

Linux kernel namespaces are the fundamental isolation mechanism for containers. Each namespace type isolates a different resource:

NamespaceWhat It IsolatesSecurity Implication
PIDProcess IDsContainer cannot see host processes (unless hostPID: true)
NETNetwork stackContainer gets its own IP, ports, routing table
MNTMount pointsContainer has its own filesystem view
UTSHostnameContainer can have its own hostname
IPCInter-process communicationShared memory segments are isolated
USERUser and group IDsUID 0 in container can map to non-root on host
CGROUPcgroup root directoryContainer cannot see host cgroup hierarchy

Exam Alert

If a pod has hostPID: true, hostNetwork: true, or hostIPC: true, it breaks namespace isolation. CKS frequently tests your ability to identify and remediate these dangerous settings.

cgroups (Control Groups)

cgroups limit, account for, and isolate resource usage (CPU, memory, I/O, etc.) of a collection of processes. In Kubernetes:

  • Resource requests map to cgroup minimum guarantees
  • Resource limits map to cgroup hard caps
  • If a container exceeds its memory limit, the kernel OOM-kills it
  • If a container exceeds its CPU limit, it gets throttled

Linux Capabilities

Traditional Unix has two categories: root (UID 0) with all privileges, and everyone else. Linux capabilities break root's privileges into ~40 distinct capabilities:

CapabilityWhat It AllowsCKS Action
CAP_NET_ADMINModify network configurationDrop unless needed
CAP_SYS_ADMINBroad sysadmin operations (mount, etc.)Always drop -- almost equivalent to root
CAP_SYS_PTRACETrace/debug other processesDrop unless debugging
CAP_NET_RAWUse raw sockets (ping, packet crafting)Drop unless needed
CAP_CHOWNChange file ownershipDrop in most cases
CAP_SETUIDSet UID of a processDrop to prevent privilege escalation
CAP_DAC_OVERRIDEBypass file permission checksDrop in most cases

CKS best practice: Drop ALL capabilities, then add back only what the application needs:

yaml
securityContext:
  capabilities:
    drop:
      - ALL
    add:
      - NET_BIND_SERVICE  # Only if binding to ports < 1024

Seccomp Profiles

Seccomp uses Berkeley Packet Filter (BPF) programs to filter system calls. The default container runtime profile blocks ~60 dangerous syscalls while allowing ~300 safe ones.

SyscallWhy It's BlockedAttack Vector
mountMount filesystemsEscape container by mounting host FS
ptraceTrace processesDebug/inspect other containers
rebootReboot the systemDenial of service
clock_settimeChange system clockTamper with logs and certificates
unshareCreate new namespacesPrivilege escalation

AppArmor

AppArmor is a Linux Security Module (LSM) that confines programs by defining what files, network resources, and capabilities they can access. It operates in two modes:

  • Enforce -- violations are blocked and logged
  • Complain -- violations are only logged (useful for building profiles)
# Example AppArmor profile for a web server container
#include <tunables/global>

profile k8s-web-server flags=(attach_disconnected) {
  #include <abstractions/base>

  # Allow reading web content
  /var/www/html/** r,

  # Allow network access
  network tcp,

  # Deny everything else by default
  deny /etc/shadow r,
  deny /proc/*/mem r,
  deny /sys/** w,
}

Cryptography Basics Needed for CKS

TLS / PKI

You used TLS in CKA for certificate signing requests. CKS expects deeper understanding:

Key concepts for CKS:

ConceptWhat to Know
Certificate chainCA -> intermediate (optional) -> leaf cert. Verify with openssl verify
SANsSubject Alternative Names allow one cert for multiple DNS names / IPs
Certificate rotationkubeadm certs renew and automatic kubelet cert rotation
Certificate expirykubeadm certs check-expiration or openssl x509 -enddate -noout -in <cert>
Private key securityKeys must have 0600 permissions, owned by root

RBAC Token Types

CKS requires understanding the different authentication token types:

Token TypeDescriptionCKS Relevance
Service Account TokenJWT signed by sa.key, mounted into podsDisable auto-mount with automountServiceAccountToken: false
Bootstrap TokenShort-lived tokens for node joiningEnsure they expire and are cleaned up
OIDC TokenTokens from external identity providersUnderstand API server OIDC flags
Static Token (deprecated)Tokens stored in a file on the API serverMust be disabled -- CKS tests this
X.509 Client CertCertificates embedded in kubeconfigUnderstand CN = username, O = group

Security Anti-Pattern

Static token files (--token-auth-file) and basic auth files (--basic-auth-file) should never be used. CKS may test whether you can identify and remove these insecure authentication methods from the API server configuration.

What to Study First

Based on the gaps identified above, here is the recommended priority for CKA holders:

TIP

Spend the most time on Priority 1 and Priority 2. These topics are entirely new from CKA and carry the most weight on the exam. If you are comfortable with Linux security primitives, you can move through Priority 1 quickly and focus on the tooling.

Released under the MIT License.