VA-003 Explain encryption as a service Practice Question
A DevOps team needs to encrypt large files (several GB) using Vault's transit engine. What is the recommended approach?
⚠ Common exam trap
HashiCorp often tests the misconception that Vault's transit engine can handle large payloads directly, leading candidates to choose Option D, but the actual limitation is that transit encrypt/decrypt operations are designed for small data (e.g., database fields, tokens) and envelope encryption is required for large files.
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
✓
Use Vault's datakey endpoint to get a data encryption key, encrypt locally, then wrap with Vault
The transit engine is designed for encrypting small data payloads (typically a few KB), not multi-GB files. The recommended approach is to use the `/transit/datakey/plaintext` endpoint to generate a data encryption key (DEK), encrypt the large file locally with that DEK using a symmetric algorithm like AES-256-GCM, and then wrap (encrypt) the DEK with Vault using the transit engine. This keeps the large file out of Vault while still leveraging Vault for key management and audit logging.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
Use Vault's batch encryption
Why it's wrong here
Batch encryption lets many small plaintexts be submitted in one transit request, but the 32 MB request limit still applies, so multi-gigabyte files cannot be processed. It tempts because batching improves throughput for numerous small secrets, yet the scenario needs envelope encryption: a transit data key encrypting the file locally.
- ✗
Use Vault's seal-wrapping feature
Why it's wrong here
Seal wrapping protects Vault's own master key during initialisation and unsealing; it does not encrypt arbitrary file payloads. It tempts because it is a genuine Vault cryptographic feature involving keys, but it addresses root-of-trust protection, not bulk data confidentiality. Envelope encryption with a transit-generated data key is the intended approach for large files.
- ✓
Use Vault's datakey endpoint to get a data encryption key, encrypt locally, then wrap with Vault
Why this is correct
The datakey endpoint returns a plaintext data key plus its wrapped form; encrypting locally avoids sending gigabytes through Vault, then storing the wrapped key. This satisfies the constraint of handling large files without exhausting Vault's transit bandwidth.
- ✗
Encrypt the file directly with Vault's transit encrypt API
Why it's wrong here
The transit encrypt API accepts at most 32 MB of plaintext per request, so several-gigabyte files cannot be sent directly. It tempts because it is the obvious first API to reach for, but the documented pattern is envelope encryption: generate a data key via transit, encrypt the file locally, and store the wrapped key.
- ✗
Split the file into chunks and encrypt each chunk via transit
Why it's wrong here
The transit engine caps plaintext at 32 MB per request, so chunking still requires the application to manage splitting, ordering and re-assembly, and each chunk is separately encrypted. It tempts because chunking is the standard workaround for size-limited cryptographic APIs, but the recommended pattern is envelope encryption: a transit data key encrypts the file locally.
Quick reference
Symmetric Encryption Algorithm Comparison
| Algorithm | Key Size | Block Size | Status | Notes |
|---|---|---|---|---|
| AES-128 | 128-bit | 128-bit | Current standard | NIST approved; WPA3, TLS |
| AES-256 | 256-bit | 128-bit | Current standard | Preferred for sensitive / govt data |
| 3DES | 112-bit effective | 64-bit | Deprecated (2023) | Replaced by AES |
| DES | 56-bit | 64-bit | Broken | Cracked in < 24 h; never deploy |
| ChaCha20 | 256-bit | Stream cipher | Current | TLS 1.3, WireGuard |
Go deeper
Related to this question
About these practice questions
Courseiva writes every VA-003 question from scratch — 366 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 →
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This VA-003 practice question is part of Courseiva's free HashiCorp 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 VA-003 exam.