亚马逊云科技端到端流程详解!保障AI Agent交互安全
Amazon Bedrock AgentCore是亚马逊云科技推出的一款全面Agent服务,让开发者能够依托一套功能完备的企业级服务来构建Agent工作负载,并且可以利用托管在Amazon Bedrock或其他服务上的任意框架和模型,快速、安全地大规模部署和运行AI Agent。
Amazon Bedrock AgentCore是亚马逊云科技推出的一款全面Agent服务,让开发者能够依托一套功能完备的企业级服务来构建Agent工作负载,并且可以利用托管在Amazon Bedrock或其他服务上的任意框架和模型,快速、安全地大规模部署和运行AI Agent。
Amazon Bedrock AgentCore提供一系列可组合的模块化服务,用户既可以组合使用,也可以单独使用。您可参阅文章《重磅推出Bedrock AgentCore!高效部署与运行AI Agent》,全面了解Amazon Bedrock AgentCore及其所有模块服务。
本文将深入探讨由Amazon Cognito提供支持的AgentCore Identity,这是一项专为AI Agent和自动化工作负载设计的身份与凭证管理功能,具备安全、可扩展的Agent身份与访问管理能力,且能兼容现有身份提供商,无需用户迁移或重新构建身份验证流程。
此外,AgentCore Identity还提供token库,可保护用户访问token的安全性。它还与Amazon Secrets Manager原生集成,能为外部资源和工具的API密钥及OAuth客户端凭证提供安全保障,同时协助编排标准的OAuth流程,并将AI Agent身份集中至安全的中央目录。
具体而言,AgentCore Identity提供的部分关键功能如下:
集中式Agent身份管理
这是一项统一目录功能,可作为跨组织管理Agent身份的唯一事实来源,为每个Agent分配唯一身份及相关元数据。
该功能通过Amazon ARNs为每个Agent身份赋予独特标识符,并且无论这些Agent是托管在亚马逊云科技服务上,或者是自行托管,亦或是采用混合部署模式,该功能均可以提供Agent的集中视图。
Token库
该功能用于安全存储OAuth 2.0访问token与刷新token、API密钥及OAuth 2.0客户端密钥。凭证通过Amazon KMS密钥进行加密,且支持客户管理的密钥。系统对凭证检索实施严格的访问控制,仅限单个Agent访问。
对于OAuth 2.0 token等用户特定凭证,Agent仅能代表关联用户进行访问,以此遵循最小权限原则,并保障授权机制合规。
当从token库检索到已过期的访问token,且该token在资源服务器端验证失败时,AI Agent可通过安全刷新token,获取并存储新的访问token。这一设计既能满足高安全标准,又能减少获取新访问token所需的身份验证请求次数,从而优化用户体验。
OAuth 2.0流程支持
该功能原生支持OAuth 2.0客户端凭证模式(又称two-legged OAuth,2LO)与授权码模式(又称three-legged OAuth,3LO),其中包含为主流服务内置凭证提供程序,且支持自定义集成。
该服务会处理OAuth 2.0的具体实现流程,同时提供简洁的API,方便Agent访问亚马逊云科技资源与第三方服务。
Agent身份与访问控制
该功能支持委托身份验证流程,允许Agent使用系统提供的凭证访问资源,同时保留审计跟踪与访问控制记录。授权决策则基于委托过程中提供的凭证。
AgentCore SDK集成
该功能通过声明式注解实现集成,可自动处理凭证的检索与注入,减少冗余代码,提供流畅的开发体验。Amazon Bedrock AgentCore SDK还能针对token过期、用户授权要求等常见场景,自动处理错误。
身份感知型授权
它将用户上下文传递至Agent代码,并将完整访问token转发给Agent代码。AgentCore Identity会先验证token,验证通过后再将其传递给Agent,Agent可对其进行解码以获取用户上下文。如果传递的访问token未包含完整的用户上下文,Agent代码可使用该token调用OpenID Connect(OIDC)用户信息端点,进而获取用户信息。
这一机制能确保Agent通过基于用户身份上下文的动态决策获得合理权限,实现更完善的安全控制。
有关AgentCore Identity功能的详细信息,请参阅《AgentCore开发者指南》。
《AgentCore开发者指南》
https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/key-features-and-benefits.html
开始使用AgentCore Identity
总之,使用Amazon Bedrock AgentCore有多种方式,尤其是应用AgentCore Identity的方式更多。
您可参阅文章《重磅推出Bedrock AgentCore!高效部署与运行AI Agent》,按照文中介绍的步骤开始使用AgentCore服务;或者参阅开发者指南,按照“开始使用AgentCore Identity”部分介绍的步骤进行操作。此外,您可查看Amazon Bedrock AgentCore入门工具包GitHub代码库和AgentCore Identity示例代码库。
上述指南和示例,能帮助您借助Python Bedrock AgentCore SDK快速上手并运行相关服务。
开始使用AgentCore Identity:
https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/identity-getting-started.html
Amazon Bedrock AgentCore入门工具包GitHub代码库:
https://github.com/aws/bedrock-agentcore-starter-toolkit
AgentCore Identity示例代码库:
https://github.com/awslabs/amazon-bedrock-agentcore-samples/tree/main/01-tutorials/03-AgentCore-identity
为了便于您更深入地了解AgentCore Identity,以及理解如何将其作为模块化服务来使用,下文将通过一个涉及使用AI Agent的Web应用程序示例展开说明。
借助该示例应用程序的某项功能,用户可与AI Agent交互,让AI Agent协助在Google日历中安排会议。最终,该AI Agent能够代表已完成身份验证的用户执行操作。
为帮助您更好理解,下面将深入分析这一用例端到端流程。
端到端流程示例
以下顺序图(图1)详细展示了一个端到端交互示例:用户登录Web应用程序后,与AI Agent交互,然后由AI Agent代表用户执行操作。该示例体现了AgentCore Identity如何为AI Agent构建者提供身份基础组件,以创建和保护AI Agent身份、编排3LO流程(遵循授权码模式流程),以及在token库中安全存储第三方OAuth资源的临时访问token。
为便于理解整个端到端流程,本例将其拆分为以下三个子流程:
1.用户身份验证:在本示例中,用户需先登录Web应用程序。本例使用了Amazon Cognito,您也可以选择其他身份提供商。
2.AI Agent交互:即用户通过Web应用程序与AI Agent进行交互。该子流程还负责协调用户与AI Agent之间的操作,包括获取用户同意、代表用户获取访问token,以及将token安全存储在token库中。
3.AI Agent代表用户执行操作:顾名思义,该流程涉及Agent代表用户所执行的具体操作,这既可以是完全在应用程序内部执行的操作,也可以是通过访问外部资源服务器(如图1中的Google日历)执行的操作。
该流程有两项前置条件:
1.使用CreateOauth2CredentialProvider API设置OAuth 2.0凭证提供商(本示例流程使用Google)。
2.使用CreateWorkloadIdentity API创建AI Agent身份。
图1:用户与AI Agent安全交互的端到端流程示例
流程 1
用户身份验证
1.用户访问Web应用程序。
2.不存在有效会话或token时,客户端会将用户重定向至Amazon Cognito管理的登录页面,用户使用用户名和密码登录,也可使用无密码一次性验证码(OTP)或安全密钥登录。
-
本例使用的是本地Amazon Cognito用户账户,它也支持通过第三方身份提供商进行联合登录,包括社交账号、SAML或OIDC提供商。
3.身份验证成功后,授权码会返回给应用程序,应用程序使用该授权码调用/oauth2/token端点,以获取Amazon Cognito token。
4.Amazon Cognito的身份token、访问token和刷新token会返回给客户端,后文将此访问token称为“人工访问token”。
流程 2
AI Agent交互
1.用户完成登录后,通过Web应用程序开始与AI Agent交互,并要求AI Agent协助在Google日历中安排会议。
2.将提示词连同人工访问token一同发送至AI Agent所在的后端。
-
这一步骤可借助AgentCore Runtime实现,也可通过Amazon Bedrock访问各类大语言模型(LLM)来实现。您还可以扩展该架构,使用Amazon Bedrock知识库构建检索增强生成(RAG)解决方案。
3.AI Agent首先会从AgentCore Identity获取自身的访问token,同时将人工访问token作为请求参数传入。
这一过程使用的是AgentCore Identity的GetWorkloadAccessTokenForJWT API。
-
调用GetWorkloadAccessTokenForJWT API时,AgentCore Identity会验证用户访问token的签名,并确认token未过期。
4.AgentCore Identity会向AI Agent返回一个访问token,后文将其称为“AI Agent访问token”。由于最初请求获取AI Agent访问token时,系统提供了人工访问token,因此返回的特定AI Agent访问token会与用户身份绑定。
-
AgentCore Identity会通过组合人工访问token中的ISS声明和SUB声明,推导出用户身份。有关凭证获取的更多信息,可参阅《AgentCore Identity开发者指南》。
5.AI Agent将使用自身的访问token,开始从第三方OAuth资源(本流程中为Google)获取第三个新的访问token。
AI Agent会调用AgentCore Identity的GetResourceOauth2Token API。
由于这是初始登录流程且涉及用户,因此系统将为该OAuth资源启动OAuth 2.0授权码模式流程,此流程也可称为3LO流程。
-
该流程旨在获取一个可用于访问Google日历的临时访问token,并将其安全存储在token库中。需重点注意的是,只要用户已授予权限,且该Google访问token仍处于有效状态,AI Agent就可以持续从token库中安全检索并使用该token。
6.根据预先配置的Google OAuth客户端,由AgentCore Identity生成Google授权URL。
7.AI Agent将Google授权URL发送至客户端。
8.客户端会立即重定向至Google的授权端点,并启动身份验证流程,供用户登录Google账号。
9.用户在Google端完成身份验证后,授权码会返回给AgentCore Identity,随后将遵循OAuth 2.0授权码模式流程获取访问token。
10.Google返回给用户的访问token将安全存储在token库中,后文将此第三个访问token称为“Google访问token”。
-
在token库中,token会与Agent身份ID和用户ID关联存储,这种方式能让token与Agent身份、用户身份与Google访问token绑定。
11.当授权码模式流程在后端完成获取Google访问token后,用户会被重定向回应用程序前端页面,其已配置为回调URL。
流程 3
AI Agent代表用户执行操作
1.AI Agent将再次调用GetResourceOauth2Token API(与前述步骤9相同),并将AI Agent访问token作为workloadIdentityToken请求参数传入。
2.但此次Google访问token会从token库中直接返回,这能减少用户重复授权的操作,同时减少授权提示次数,从而提升用户体验。
3.基于让AI Agent协助在Google日历中安排会议的原始上下文与意图,AI Agent将使用Google访问token调用Google日历API。
-
AI Agent所使用的Google访问token将包含https://www.googleapis.com/auth/calendar.events权限范围,允许Agent执行特定的日历操作。
4.AI Agent与Google日历完成交互操作后,成功响应或失败响应都会返回给AI Agent。
-
此时,AI Agent可借此机会执行其他自动化操作,例如更新Web应用程序后端的用户记录。
5.AI Agent完成所有操作后,将向前端应用程序返回成功响应。
上述流程描述了从用户登录Web应用程序,到AI Agent代表用户执行自动化操作的完整端到端过程。
此过程涉及三种不同的访问token:
-
人工访问token:由Amazon Cognito用户池或其他身份提供商颁发,该访问token用于访问Web应用程序,并通过调用GetWorkloadAccessTokenForJWT API获取AI Agent访问token。
-
AI Agent访问token:由AgentCore Identity颁发,该访问token供AI Agent安全访问token库。
-
Google访问token:由Google代表用户颁发,该访问token被安全存储在token库中,AI Agent可通过自身访问token安全检索此token。
总结
企业正积极寻求利用AI Agent实现工作流程自动化并优化用户体验的机会,但这可能会带来不容忽视的安全与合规挑战。为此,企业必须确保AI Agent能够代表用户安全访问资源,同时保护敏感凭证,并在大规模应用中维持合规性。
AgentCore Identity凭借可提供企业级安全能力,成功解决了这些关键挑战,既能保护用户凭证,又能实施严格的访问控制,有助于确保AI Agent仅在必要时访问所需资源。
该服务可与现有身份系统集成,无需进行复杂迁移或重新构建身份验证流程。其对AI Agent身份的集中式管理,既能降低运营成本,又能强化安全态势。
对于正在扩大AI应用规模的企业而言,这些能力意味着更快的产品上市速度、更低的未经授权访问风险。通过部署AgentCore Identity,企业可放心地推出具备内置OAuth支持和安全token管理功能的AI Agent,同时借助可随业务需求灵活扩展的简化安全控制机制,降低开发与维护成本。
如需了解更多关于应用AgentCore Identity的信息,可参阅应用示例,并访问开发者指南中的“开始使用AgentCore Identity”章节,了解准备条件、SDK使用方法、最佳实践,从而开始构建您的首个经过身份验证的Agent。
应用示例:
https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/identity-use-cases.html
开始使用AgentCore Identity:
https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/identity-getting-started.html
本篇作者
Abrom Douglas III
亚马逊云科技身份认证团队的高级解决方案架构师。Abrom在软件工程与安全领域拥有近20年经验,专注于身份与访问管理领域。他热衷于探究身份与访问管理如何通过安全方案,为客户业务及技术项目提供支持。
我们正处在Agentic AI爆发前夜。企业要从"成本优化"转向"创新驱动",通过完善的数据战略和AI云服务,把握全球化机遇。亚马逊将投入1000亿美元在AI算力、云基础设施等领域,通过领先的技术实力和帮助“中国企业出海“和”服务中国客户创新“的丰富经验,助力企业在AI时代突破。
更多推荐


所有评论(0)