连接跨账户知识库:Amazon Bedrock AgentCore 实践指南
在企业级 AI 应用中,多账户架构常被用来划分工作负载边界,但跨账户数据访问往往成为集成痛点。近期,AWS 发布了一篇技术博客,详细介绍了如何让 Amazon Bedrock AgentCore 智能体在无需复制源数据的情况下,从另一个账户的 Amazon Redshift Serverless 知识库中获取答案。该方案基于 Amazon Bedrock Knowledge Bases 的跨账户资源策略,并提供了两种编排模型:基于代码的 Strands 代理和声明式 AgentCore 工具。
核心挑战
许多组织使用 Amazon Bedrock 构建 AI 代理,同时将结构化数据存储在 Amazon Redshift Serverless 中。出于安全与合规考虑,这些数据账户往往与 AI 代理账户分离。虽然 Bedrock Knowledge Bases 支持跨账户的 Retrieve 和 GetDocumentContent 操作,但不支持 RetrieveAndGenerate,而后者恰恰是生成自然语言答案的关键。
为此,方案设计了一个窄权限的 IAM 角色,由代理在调用 API 前通过 AWS STS 临时承担该角色,从而在不复制数据的前提下,实现跨账户的检索增强生成。
两种实现方式
方案提供了两种部署方式,均采用相同的数据访问边界:
- Strands 代理(基于代码):将 Strands 代理部署到 AgentCore 运行时,适合需要精细控制代理逻辑的开发团队。
- 声明式 AgentCore 工具:通过声明式配置实现,降低了开发门槛,适合快速部署与维护。
两种方式都遵循最小权限原则,确保代理仅能访问必要的知识库数据。
架构与安全边界
架构上,代理账户与数据账户通过 IAM 角色信任关系建立安全通道。代理先通过 STS 假设数据账户中的专用角色,再调用 RetrieveAndGenerate API。这一设计既保持了账户隔离,又避免了源数据的复制,符合企业级安全合规要求。
实践价值
该方案为多账户架构下的 AI 代理提供了可复用的集成范式。对于需要严格数据隔离的行业(如金融、医疗),这一模式尤为重要。开发者可以参考 GitHub 上的示例代码,快速在自身环境中复现。
提示:文中提到的两种编排模型均已正式可用(GA),企业可根据自身技术栈选择合适的方式。


