News

Amazon Bedrock AgentCore Identity:强化ECS上AI代理的安全访问

Amazon Bedrock AgentCore Identity:强化ECS上AI代理的安全访问

在生产环境中运行的AI代理,其安全访问外部服务至关重要。Amazon Bedrock AgentCore Identity作为一项独立服务,旨在确保您的AI代理(无论部署在Amazon ECS、Amazon EKS、AWS Lambda等计算平台还是本地环境)能够安全地访问这些外部服务。

此前的文章已介绍AgentCore Identity的凭证管理。但在ECS等计算环境中运行代理时,会面临两个核心问题:如何构建由应用自身拥有的会话绑定端点,以及如何管理工作负载访问令牌的生命周期?

本文将重点介绍如何在Amazon ECS上实现授权码授予(3-legged OAuth)流程,并结合安全的会话绑定和范围限定的令牌。此方案提供了一个可工作的实现,具备以下特性:

  • 安全的会话绑定,有效防范CSRF(跨站请求伪造)和浏览器劫持攻击。
  • 遵循最小权限原则,为每个用户会话提供范围限定的授权令牌。
  • 将代理工作负载与会话绑定服务进行关注点分离。

OAuth 2.0和OIDC的认证与授权

该解决方案采用了OAuth 2.0 (RFC 6749) 和OpenID Connect (OIDC)。其中,OIDC负责用户认证(确定“谁”),而OAuth 2.0则负责授权用户的操作(确定“能做什么”)。

我们专注于用户委托访问的授权码授予流程。在此流程中,用户首先通过身份提供商进行认证并授予同意。随后,应用程序将获得的授权码交换为访问令牌。Amazon Bedrock AgentCore Identity会将此范围限定的访问令牌安全地存储在其令牌保险库中。由于每个令牌都绑定到特定的用户身份并经过明确同意,因此该解决方案能够从用户认证到代理操作,全程保持可审计的链条。

授权码授予流程特别适用于代表用户执行操作的AI代理工作负载。它确保了代理在执行操作前获得用户同意,通过会话绑定验证发起授权请求与授予同意的是同一用户,并通过范围限定的委托将代理的权限限制在用户批准的范围内。

回调URL与会话绑定URL的区别

在授权码授予流程中,经常会混淆两个URL:

  • 回调URL (Callback URL):在AgentCore Identity中创建OAuth客户端时自动生成。它指向AgentCore Identity服务本身,必须在授权服务器注册为重定向目标,用于在用户认证后发送授权码。
  • 会话绑定URL (Session Binding URL):指向客户管理服务的URL,该服务负责完成已认证用户与OAuth流程之间的会话绑定。此端点由客户实现和托管。
↗ 阅读原文