Courseiva
System Hardening →easyMultiple Choice

CKS System Hardening Practice Question

Which tool is used to load AppArmor profiles on a node?

⚠ Common exam trap

Candidates may confuse `aa-enforce` (which changes the mode of an already-loaded profile) with the actual profile loading tool, or mistakenly think `kubectl apply` can load kernel-level security profiles. In the CKS exam, understanding the correct tool for loading AppArmor profiles is important for node hardening.

Answer choices

Why each option matters

Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.

Correct answer & explanation

✓

apparmor_parser

The `apparmor_parser` tool is the standard utility for loading AppArmor profiles into the kernel's security module. It reads profile definitions from text files, compiles them into binary form, and loads them into the kernel's LSM (Linux Security Module) subsystem. Without this tool, AppArmor profiles cannot be activated on a node.

Answer analysis

Option-by-option breakdown

For each option: why learners choose it and why it is or isn't the right answer here.

  • ✓

    apparmor_parser

    Why this is correct

    apparmor_parser is the standard userspace tool that reads AppArmor policy text files, compiles them into the kernel's binary policy format, and sends them to the AppArmor LSM via the securityfs interface (typically mounted at /sys/kernel/security/apparmor). Flags such as -r (replace) and -a (add) control whether an existing profile is overwritten or a new one is inserted, making this the definitive tool for loading or updating profiles on a node. Without a successful apparmor_parser invocation, no AppArmor profile is active in the kernel, regardless of any other tools.

  • ✗

    aa-enforce

    Why it's wrong here

    aa-enforce is not a profile-loading tool; it is a convenience utility in the apparmor-utils suite that flips already-loaded profiles between enforcement and complain mode by toggling symbolically linked profile files (e.g., adding a 'force' suffix). It does not parse profile source files or communicate with the kernel to add new policy, so it cannot be used to load a profile into AppArmor from scratch. The actual kernel loading is always performed by apparmor_parser, even when aa-enforce wraps a profile change.

  • ✗

    aa-status

    Why it's wrong here

    aa-status is a read-only diagnostic utility that queries the AppArmor module (via /sys/module/apparmor/parameters and securityfs) to list currently loaded profiles and report which processes are confined. It performs no writes to the kernel's policy store and has no ability to parse profile text or insert new rules; its output can confirm whether a profile was loaded, but it is not the mechanism that loads it. Checking aa-status after using apparmor_parser is a common verification step, which itself shows these tools have distinct roles.

  • ✗

    kubectl apply

    Why it's wrong here

    kubectl apply submits Kubernetes manifests to the API server to create or update cluster resources like Pods, Deployments, or custom resources; it operates entirely within the Kubernetes control plane and has no direct access to a node's host filesystem or the kernel LSM. AppArmor profiles must physically exist on each node—usually under /etc/apparmor.d—and be loaded by apparmor_parser before kubelet schedules pods that reference them via the container.apparmor.security.beta.kubernetes.io annotation or the apparmor.security.beta.kubernetes.io field. Merely applying a manifest that declares a profile does not install or load that profile onto any node; it only tells kubelet that a pre-loaded profile name should be enforced.

About these practice questions

Courseiva writes every CKS question from scratch — 845 in total, each with an explanation and a wrong-answer breakdown. None are copied from real exams or dumps. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

JA

Written by Johnson Ajibi, MSc IT Security

Senior Network & Security Engineer · founder of Courseiva

This CKS practice question is part of Courseiva's free CNCF certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the CKS exam.