共享基础设施,隔离租户:使用 Amazon Bedrock AgentCore 实现池模型多租户架构 | Amazon Web Services

AWS ML Blog 2026-06-24T03:08:56.541979

共享基础设施,隔离租户:使用 Amazon Bedrock AgentCore 实现池模型多租户架构 | Amazon Web Services

构建多租户 AI 应用带来了新的架构挑战。你需要在各客户之间实现完全的租户隔离、提供不同能力的不同服务层级、精细的成本跟踪,以及对每个租户的可观测性。缺少这些能力,你可能会面临客户数据泄露、无法向客户提供适当服务质量,或产生不可预见的成本的风险。

在本文中,你将学习使用 Amazon Bedrock AgentCore 实现生产级多租户系统的模式。我们将通过为多家诊所和医院提供服务的医疗 AI Agent 来演示这些模式。虽然本文以医疗领域为例,但所涉及的架构模式和实现技术广泛适用于各种多租户 AI 应用。无论你是在构建 SaaS 平台、服务于多个业务部门的企业解决方案,还是面向不同客户组织的托管服务,你都可以使用这些架构模式来构建自己的解决方案。

你将学到什么

本文是该系列文章的第二部分:使用 Amazon Bedrock AgentCore 构建多租户 Agent。

第一部分 探讨了构建多租户 Agent 应用的设计考量,以及使用 Amazon Bedrock AgentCore 解决 SaaS 架构挑战所需的框架。

示例代码的 GitHub 仓库:
https://github.com/aws-samples/sample-agentcore-and-multitenancy-blog

解决方案概述

该解决方案演示了如何使用 Amazon Bedrock AgentCore 的原生能力,通过 AWS 托管服务实现完全的租户隔离。该架构实现了一个三级层级:层级(Tier)→ 租户(Tenant)→ 用户(User),并通过知识库中的文档、内存、模型访问和成本跟踪在每个层面强制实施隔离。层级策略是 SaaS 应用中的常见模式,其中租户根据其需求(如 Basic 和 Premium)、使用模式或定价计划被划分到不同的服务层级。每个层级定义了一组功能和服务质量,提供给该组内的租户。这种方法允许 SaaS 提供商在保持运营效率的同时,为多样化的客户群提供差异化的体验。

医疗 AI 助手示例

为了说明实际应用,示例解决方案实现了两个服务层级以实现基于层级的区分:

在每个层级内,该解决方案使用池隔离模型(pool isolation model),其中租户共享相同的基础设施和计算资源,而不是每个租户拥有专用的、孤立资源。池模型最大限度地提高了资源利用率,简化了运营,而租户隔离则通过逻辑分离机制(如作用域标识符、访问策略和数据分区)来强制实施。将层级策略与池模型相结合,可以让你在成本效率与提供差异化服务水平的灵活性之间取得平衡。

架构

让我们看看 AgentCore 的原语如何组合在一起解决这些多租户挑战。下图说明了该解决方案的多租户架构,展示了认证后的用户请求如何通过特定层级的 Agent 流向隔离的文档存储:

图1:具有层级隔离(层级 → 租户 → 用户)的多租户架构。

该解决方案由以下关键组件组成:

解决方案演练

本节描述了解决方案的关键方面。你运行部署脚本来设置解决方案的基础设施和应用程序。本节中的代码片段仅用于描述解决方案组件如何解决架构的关键方面。无需运行任何命令或执行此处显示的任何代码片段。

Amazon Bedrock AgentCore 组件

该架构利用了 Bedrock AgentCore 的六项核心能力来实现多租户:

AgentCore Runtime:AgentCore Runtime 为此解决方案中的 Agent 提供计算资源,每个 Agent 会话在隔离的微虚拟机中执行,实现租户级别的计算隔离。它按层级托管独立的 Agent 实例,每个实例配置了适合该层级的模型和能力。

AgentCore Identity:AgentCore Identity 通过统一的基于 JWT 的认证模型来保护多租户架构。Cognito ID 令牌在 Runtime 和 Gateway 边界验证用户,而工具 Lambda 为其下游数据访问生成自己的作用域凭证。

每个 AgentCore Runtime 配置了一个入站 JWT 授权器,在 Agent 代码执行之前验证 Cognito ID 令牌。ID 令牌将租户元数据作为自定义声明携带:

声明 示例值 用途
sub a4589458-8011-… 唯一用户标识符(Cognito UUID)
iss dr.foster@hospital-a.com 认证域

授权器在 Agent 部署期间配置:

ApplicationConfiguration": {
  "authorization": {
    "scheme": "JWT",
    "jwtConfiguration": {
      "issuer": "https://cognito-idp.<region>.amazonaws.com/<user-pool-id>",
      "audience": ["<client-id>"]
    }
  }
}

AgentCore Gateway 也配置了 JWT 授权,使用相同的 Cognito 发现 URL 和受众。当

查看原文