View a markdown version of this page

连接远程 A2A 代理 - AWS DevOps 代理人

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

连接远程 A2A 代理

远程代理通过将任务委派给实现 Agent-to-Agent (A2A) 协议的外部代理来扩展 AWS DevOps 代理的调查能力。连接远程代理时, AWS DevOps 代理可以为其分配调查子任务,并将其调查结果纳入整体调查。本指南介绍如何将远程 AWS DevOps 代理连接到代理。

要求

在连接远程代理之前,请确保您的代理满足以下要求:

  • A2A 协议支持 — 您的代理必须实现 Agent-to-Agent (A2A) 协议(JSONRPC 或 HTTP+JSON 绑定),并在可访问的网址上提供有效的代理卡。代理卡告诉 AWS DevOps 代理如何与您的代理通信。使用与调用代理相同的身份验证凭据来获取代理卡。以下代理卡字段是必填字段:

    • 名称 — 标识您的代理人的唯一名称

    • 描述 — 对代理能力的描述。 AWS DevOps 代理使用它来确定哪个远程代理最适合给定的子任务

    • SupportedInterfaces — 声明调用端点 URL、协议绑定(JSONRPC或HTTP+JSON)和协议版本

    • cap abilities — 一个表示您的代理是否支持流式响应的对象

    • 技能 — 描述代理特定能力的数组。 AWS DevOps 代理使用技能将任务路由到最合适的远程代理

  • 身份验证支持 — 您的远程代理必须支持以下身份验证方法之一:持有者令牌、OAuth 客户端凭证、API 密钥或 AWS 签名版本 4 (SigV4)。

  • 空闲超时 - AWS DevOps 如果远程 A2A 代理在 1 分钟内未发送任何数据,代理将关闭连接。这适用于单一响应和流式响应,因此流媒体代理必须至少每分钟发送一次数据才能保持连接畅通。

安全注意事项

将远程代理连接到 AWS DevOps 代理时,请考虑以下安全方面:

  • Read-only 代理 — 远程代理应仅设计用于调查和数据收集。确保远程代理不对生产系统执行写入操作或修改。

  • 即时注入风险 -远程代理可能会带来额外的即时注入攻击风险。有关更多信息,请参见即时注入保护: AWS DevOps 客户端安全。

有关即时注入和责任分担模型的更多信息,请参阅AWS DevOps 代理安全。

注意

如果您的远程代理位于专用网络上,请参阅连接到私有托管的工具。

注册远程代理(账户级)

远程代理在 AWS 账户级别注册,并在该账户中的所有代理空间之间共享。

步骤 1:配置远程代理

  1. 登录 AWS 管理控制台

  2. 导航到 AWS DevOps 代理控制台

  3. 转到能力提供者页面(可从侧面导航中访问)

  4. 在 “可用提供商” 部分中找到 “远程代理”,然后单击 “注册”

  5. 在 “配置远程代理” 页面上,输入代理详细信息:

    • 名称 — 此远程代理的唯一名称

    • 代理卡端点 — 远程代理代理卡的 HTTPS URL。 AWS DevOps 代理获取此 URL 以发现代理的功能并调用端点。

    • 描述(可选)-添加描述以帮助确定代理的用途

  6. 选择身份验证方法并输入其详细信息:

    • API 密钥 — 使用自定义标头中发送的静态 API 密钥进行身份验证:

      • API 密钥名称 — API 密钥的用户友好名称

      • API 密钥标头 — 服务期望的标头名称(例如,x-api-key)

      • API 密钥值 — 用于使用服务进行身份验证的 API 密钥值

    • 持有者令牌 — 使用持有者令牌进行身份验证 (RFC 6750):

      • 代币 — 持有者代币价值

    • OAuth 客户端凭证 — 使用 OAuth 2.0 客户端凭证授予流程进行身份验证:

      • 客户端 ID — 输入 OAuth 客户端的客户端 ID

      • 客户端密钥 — 输入 OAuth 客户端的客户端密钥

      • 交换 URL — 输入 OAuth 令牌交换端点 URL

      • 添加范围 -为身份验证添加 OAuth 范围

    • AWS SigV4 — 使用 AWS 签名版本 4 进行身份验证:

      • 配置 IAM 角色 -选择使用现有角色(选择具有允许 AWS DevOps 代理服务委托人代入的信任策略的现有 IAM 角色,如创建用于 SigV4 身份验证的 IAM 角色中所述)或手动创建新角色(按照控制台中显示的说明进行操作)。

      • AWS 区域 — 输入用于 SigV4 签名的 AWS 区域(例如,)us-east-1

      • 服务名称 — 输入用于 SigV4 签名的 AWS 服务名称(例如,对于 API Gateway,execute-apibedrock-agentcore对于亚马逊 Bedrock) AgentCore

  7. (可选)如果您使用 API 密钥、持有者令牌或 OAuth 客户端凭证身份验证,请选择使用私有连接连接到端点,以私有方式向远程代理发出请求。如果您不选择它,则通过公共互联网建立连接。此选项不适用于 AWS SigV4 身份验证,后者需要可公开访问的端点。私有连接适用于代理卡端点和代理卡中声明的调用端点。如果您使用 OAuth 客户端凭据身份验证,它也适用于令牌交换端点。确保使用可以将流量路由到这些端点的主机地址配置私有连接。有关更多信息,请参阅 连接到私有托管的工具。选中后,选择以下选项之一:

    • 使用现有的私有连接 -选择一个现有的私有连接。

    • 创建新的私有连接 — 使用 Amazon VPC Lattice 创建新的 VPC 连接。

  8. 选择下一步。

第 2 步:查看并注册

  1. 查看所有远程代理配置的详细信息

  2. 单击 “注册” 完成注册

  3. AWS DevOps 代理将通过获取您的代理卡来验证连接

  4. 成功验证后,您的远程代理将在账户级别注册

将远程代理与代理空间相关联

在账户级别注册远程代理后,您可以将其与特定的代理空间关联:

  1. 在 AWS DevOps 代理控制台中,选择您的代理空间

  2. 转到 “能力” 选项卡

  3. 在 “远程代理” 部分,单击 “添加”

  4. 选择要连接到该代理空间的已注册远程代理

  5. 单击 “添加” 将远程代理与您的代理空间关联

AWS DevOps 代理现在可以在此代理空间中将调查子任务委派给您的远程代理。

管理远程代理连接

查看连接的代理 -要查看连接到代理空间的所有远程代理,请选择您的代理空间,转到 “功能” 选项卡,然后查看 “远程代理” 部分。

删除远程代理连接 -要断开远程代理与代理空间的连接,请在 “远程代理” 部分选择该代理,然后选择删除。要完全删除远程代理注册,请先将其从所有代理空间中删除,然后导航到 Capability Providers,选择远程代理,然后从 “操作” 菜单中选择 “取消注册”。

更新身份验证凭据 -如果需要更新身份验证凭据,则需要重新注册远程代理。导航到 AWS DevOps 代理控制台中的能力提供者页面,找到您的远程代理,移除所有活动关联,然后从 “操作” 菜单中选择 “取消注册”。接下来,使用新的身份验证凭据注册远程代理,并重新创建与代理空间的所有必要关联。