Amazon Bedrock now provides a Managed Knowledge Base that takes over document ingestion, parsing, embedding, indexing, and agentic multi‑hop retrieval while applying tenant isolation based on a verified identity. Engineers can drop the custom retrieval stack, reduce the surface area for security and operations, and deliver a document‑chat experience faster.
Solution overview
The pattern consists of a serverless front end that accepts uploads and chat requests, a managed knowledge base that stores and retrieves content, and supporting services that handle orchestration and state. Users authenticate through Amazon Cognito; the identity token is used by the application to tag each document with a tenant identifier that the knowledge base enforces on every retrieval hop. Uploads are placed on Amazon S3 (or sent inline) and a message is queued in Amazon SQS. A Lambda consumer reads the queue, invokes the Bedrock custom connector to ingest the file, and updates a DynamoDB record that tracks indexing progress. When a user asks a question, another Lambda calls the Bedrock agentic retrieval API, which plans the query, performs vector or full‑text look‑ups, and returns a response with citations.
Key architectural shifts
- Managed ingestion and retrieval: Bedrock Knowledge Base handles parsing of text, CSV, Excel, and other multimodal formats, generates embeddings, and builds the vector and metadata indexes. No separate Elasticsearch, OpenSearch, or self‑hosted vector store is required.
- Built‑in agentic workflow: The service decomposes complex questions into sub‑queries and performs multi‑hop retrieval automatically, returning grounded answers with citations.
- Tenant isolation enforced by the service: Isolation is tied to the Cognito‑verified identity rather than a client‑supplied value, ensuring that a user can only retrieve documents they own.
- Decoupled ingestion pipeline: SQS buffers upload bursts and routes permanently failing jobs to a dead‑letter queue, keeping the upload endpoint responsive even under back‑pressure.
- State tracking: DynamoDB stores per‑document indexing status, enabling the UI to show when a file is searchable.
Operational and security considerations
Because Bedrock provisions and scales the retrieval infrastructure, teams no longer monitor capacity or patch underlying search engines. However, they must still manage the surrounding serverless components: Lambda concurrency limits, SQS visibility timeouts, and DynamoDB read/write capacity (or on‑demand mode). Monitoring the dead‑letter queue is essential to detect ingestion failures that could leave documents unavailable.
Security hinges on the Cognito identity flow. The application must ensure that the identity token is passed to Bedrock calls so the service can apply the correct tenant filter. IAM policies should grant the Lambda functions permission to invoke Bedrock Knowledge Base APIs, read/write S3 objects, and access DynamoDB, while restricting these actions to the specific resources used by the solution. Since the knowledge base enforces isolation, additional application‑level filtering is not required, but developers should still validate that no downstream logic inadvertently mixes tenant data.
Data at rest resides in S3 and the Bedrock managed store; encryption is handled by the services themselves. Operational teams should verify that backup and retention settings align with compliance requirements, even though the article does not detail those controls.
Related CloudNinjas coverage: AWS.
What This Means For Practitioners
- Adopt the Bedrock Managed Knowledge Base when you need a multi‑tenant document chat without building a custom vector store or retrieval engine.
- Leverage Cognito for identity‑driven isolation and keep IAM policies scoped to the minimal set of Bedrock, S3, SQS, and DynamoDB actions.
- Instrument Lambda, SQS, and DynamoDB metrics to detect ingestion latency or dead‑letter events early.
- Plan for asynchronous indexing: inform users that newly uploaded documents become searchable only after the Bedrock pipeline completes.
- Review the provided reference repository to align your deployment with the recommended serverless pattern.



