Why combine several safety controls?
Why C is the answer
One layer can fail, so others catch what gets through
Defense in depth means that when one safety layer fails, the others can still catch the problem.
In detail
- Layers overlap, so one failure does not expose you.
- Plan for each layer to fail.
Use case
An illustrative scenario, not a real incident.
An injected prompt slips past the input filter, but output filtering and narrow permissions contain it.
See it in different ways
flowchart LR A["User input"] --> B["AWS WAF"] B --> C["Input guardrail"] C --> D["Foundation model"] D --> E["Output guardrail"] E --> F["Grounding check"] F --> G["Response"]
sequenceDiagram participant U as User participant I as IAM participant G as Guardrails participant M as Model participant L as CloudTrail U->>I: Is this caller allowed? I->>G: Filter the input G->>M: Safe prompt M-->>G: Output G-->>U: Filtered output I->>L: Records the call
flowchart LR S0["Input checks"] --> S1["Limited permissions"] --> S2["Output checks"] --> S3["Monitoring"]
Key point: Layers catch what others miss.
Why the other options are wrong
- A. AWS requires exactly three layers for every Bedrock application
- AWS has no such requirement.
- B. A single control is always enough, so extra layers are only for show
- One control is not always enough.
- D. Each layer makes the model respond more quickly than the last
- Layers add some time.

