You want to drop all Linux capabilities from a container. Which securityContext field should you set?
Setting `capabilities.drop: ["ALL"]` instructs the container runtime to remove every Linux capability from the container's bounding and effective sets, including the default privileges such as CHOWN, DAC_OVERRIDE, and NET_BIND_SERVICE. This is the most hardened posture because the container processes retain only the bare minimum needed to run, and any syscall requiring a capability will fail with EPERM. It is the correct answer because it fully satisfies the requirement to drop all capabilities.
Why this answer
Setting `capabilities.drop: ["ALL"]` in the container's `securityContext` removes all Linux capabilities from the container's process, effectively running it with zero capabilities. This is the standard Kubernetes approach to drop all capabilities, as defined in the Pod Security Standards and the container runtime interface (CRI).
Exam trap
The trap in this question is that candidates may confuse `capabilities.drop` with `capabilities.add`, or expect a boolean field like `dropCapabilities`. However, Kubernetes requires an explicit list of capabilities to drop, and using `["ALL"]` is the correct way to drop all capabilities.
How to eliminate wrong answers
Option A is wrong because `capabilities.allow` is not a valid field in the Kubernetes `securityContext`; the correct field is `capabilities.add` to add capabilities. Option B is wrong because `capabilities.add: ["ALL"]` adds all Linux capabilities to the container, which is the opposite of dropping them and increases the attack surface. Option D is wrong because `dropCapabilities: true` is not a valid Kubernetes field; the correct syntax uses `capabilities.drop` with a list of capability names.