你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure SRE 智能体在四个方面使用深度防御安全性:执行隔离、无机密凭据、数据驻留和按客户分离。 每个层独立运行,以便一个区域中的妥协不会级联到其他区域。
执行隔离
代理的推理引擎和工具执行在单独的计算边界中运行。
沙盒体系结构
每个代理获取自己的 sandbox 组,这是由 Azure 专用计算(ADC)支持的隔离微型 VM,独立于逻辑循环。
| Component | 运行位置 | 角色 |
|---|---|---|
| 代理推理 | 主运行时 | 处理消息,选择工具,生成响应 |
| 工具执行 | ADC 沙盒(微型虚拟机) | 运行文件操作、bash 命令、代码分析、MCP 工具 |
| 标识挎斗 | 单独的服务 | 管理凭据和令牌,与逻辑推理和执行过程隔离 |
| 网络代理 | 单独的服务 | 验证并路由所有出站请求 |
代理通过结构化 API 调用专门与其沙盒通信,永远不会通过直接文件系统或进程访问进行通信。
工具流程生命周期
每个工具调用都会在沙盒中启动一个新的进程:
- 新进程从其自己的环境开始。
- 网络代理通过 WebSocket 代理输入和输出流。
- 完成后,整个进程树将终止。
系统不使用持久性进程池。 环境变量和凭据按连接范围限定,因此一个工具调用看不到另一个工具调用的环境。
代码执行
Python和 shell 命令通过 code 解释器在 ADC 沙盒中运行:
- 执行与资源和智能体的推理引擎隔离。
- 该环境包括 700 多个预安装的Python包,但它不支持任意包安装。
- 出口代理控制网络访问,并将其限制为已知服务域。
无机密凭据管理
执行环境永远不会直接保存凭据。 相反,隔离的标识挎斗管理所有令牌,并按需向各个工具进程提供令牌。
凭据如何流动
- 代理确定需要工具调用。
- 请求将路由到沙盒。
- 标识挎斗向工具进程颁发生存期较短的令牌。
- 该工具通过网络代理进行经过身份验证的调用。
- 结果返回给智能体。 凭据永远不在推理上下文中。
三个属性使凭据被盗在结构上是不可能的:
- 标识挎斗隔离:单独的服务管理智能体执行环境之外的所有凭据。
- 每次调用范围:令牌的范围限制在单个工具调用,不在沙箱中共享。
- 无环境变量继承:仅将显式声明的变量转发到工具进程。
凭据生存期
| 类型 | 使用寿命 | 刷新 |
|---|---|---|
| 托管标识令牌 | 约 1 小时(Azure平台标准) | 自动通过Azure SDK |
| OAuth 令牌 (GitHub,ADO) | 因服务提供商而异 | 在到期前 20 分钟刷新 |
| 操作令牌 (每次工具调用) | 单一使用 | 每次调用时都全新颁发 |
| Blob 存储 SAS 令牌 | 1 小时 | 在到期前 15 分钟刷新 |
数据驻留地
当代理调查问题时,它会查询 Kusto、Azure Monitor、ARM 和其他数据源。 代理仅在会话期间保留原始查询结果 , 并在会话结束时或上下文窗口压缩时丢弃它们。 代理永远不会将原始查询结果写入永久性存储。
以下数据将被保存:
| 数据 | 存储 | Retention | 目的 |
|---|---|---|---|
| 对话线程 | Cosmos DB(按客户) | 在手动删除之前 | 聊天历史记录、调查记录 |
| 会话见解 | Cosmos DB + 代理 Blob 存储 | 永久 | 综合学习,如症状、解决步骤和根本原因 |
| 内存文件 | 代理 Blob 存储 (memories/) |
在会话之间持久 | 合成的知识、团队上下文、存储库说明 |
| 线程文件 | 智能体 Blob 存储 (threadfiles/) |
绑定到线程生存期 | 用户上传、生成的报表 |
会话见解是合成摘要,而不是原始数据副本。 该代理提取模式(出现什么症状、解决方法如何以及避免什么)并将其存储为知识。 代理从不保留 Kusto 或Azure Monitor的原始查询结果。
以客户为单位的隔离
| 层 | 隔离模型 |
|---|---|
| 计算 | 每个代理的专用 ADC 沙盒组 |
| 数据库 | 为每个客户单独提供 Cosmos DB |
| Blob 存储 | 每个代理存储帐户 |
| Network | 所有出站请求的每个智能体代理实例 |
| 凭据 | 将 RBAC 范围限定为客户选择的资源组的每个智能体托管标识 |
代理或客户之间不会共享任何数据、计算或凭据。
日志记录和可观测性
代理将操作遥测数据发送到在安装过程中配置的 Application Insights 实例,从而充分了解代理操作。
| Telemetry | 详细信息 |
|---|---|
| 对话跟踪 | 通过用于端到端请求跟踪的跟踪 ID 和跨度 ID 关联 |
| 工具调用依赖项 | 每个出站调用的方法、URL、持续时间和状态代码 |
| 错误和异常 | 完整异常详细信息 |
| 自定义事件 | 挂钩激活、事件的事件和其他智能体特定操作 |
沙盒工具执行流程的遥测数据流经同一管道。
加密
| 层 | 保护 |
|---|---|
| 静止 | Cosmos DB 和 blob 存储使用 Azure 管理的加密 |
| 传输中 | 所有外部通信使用 HTTPS;沙盒信任边界内使用 HTTP/2 |
网络代理和策略
来自执行环境的所有出站网络访问都流经强制实施以下策略的代理层:
- 请求验证:在访问外部服务之前,会验证每个出站连接。
- 凭据注入:代理从标识挎斗附加限定范围的令牌;工具代码永远不会直接处理令牌。
- 环境范围:仅将显式声明的环境变量转发到工具进程。
- 进程生命周期:工具进程在完成或超时时终止。
代表回退
当代理的托管身份缺少操作权限时,系统将转而代表您执行操作。
- 代理使用其托管身份尝试执行该操作。
- 权限不足,你会看到包含操作详细信息的 “批准”操作 提示。
- 你批准该操作,然后使用您的凭据执行。
- 完成任务后,凭据不会被缓存。
运行模式控制此行为: 评审 模式需要批准写入操作,而 自治 模式则直接使用托管标识。 有关详细信息,请参阅 代理权限。
专用网络访问
Azure专用计算支持专用网络要求的部署配置:
- 区域隔离 - 沙盒放置遵循区域边界(例如,美国东部 2 个沙盒保留在美国中部、美国中北部或加拿大中部)。
- VNET 集成执行 - ARM 预配的沙盒组可在虚拟网络中执行。
- 基于卷的凭据访问 - MSI 卷装载在没有网络遍历的情况下提供凭据访问。