A company is deploying a containerized microservices application on a cloud platform. The operations team needs to manage secrets, such as database credentials and API keys, securely without embedding them in container images. Which solution should they use?
A cloud-native secrets management service stores credentials outside the image and injects them into containers at runtime, satisfying the requirement to avoid embedding secrets in images. This keeps secrets centralised, auditable and rotatable without rebuilding or redeploying container artefacts.
Why this answer
A cloud-native secrets management service (e.g., AWS Secrets Manager, GCP Secret Manager, Azure Key Vault) injects secrets at runtime via API calls or sidecar/mounted volumes, so credentials never live in the image or the orchestrator's static config. This enables rotation, fine-grained IAM access, and audit trails without rebuilding images when a credential changes.
Exam trap
CV0-004 often tests the misconception that encrypting an image or using environment variables is 'secure enough' — candidates pick environment variables because they are easy, ignoring that they are readable from the container runtime and logs.
How to eliminate wrong answers
Option A is wrong because baking secrets into the image at build time means anyone who pulls the image can extract them — encryption at rest does not protect secrets from a running container or a registry reader. Option C is wrong because storing encrypted secrets in a cloud storage bucket still requires the application to fetch and decrypt them, and it lacks rotation, versioning, and per-secret access control; it is essentially a DIY secrets store. Option D is wrong because environment variables in the orchestrator are visible via the container runtime (e.g., docker inspect, /proc/1/environ) and are often logged or exposed in crash dumps — they are not a secure secrets store.