- 入门指南
- Studio Web 中的 UiPath 智能体
- UiPath 编码智能体

智能体用户指南
MCP 服务器合规性
概述
UiPath MCP 服务器允许智能体通过模型上下文协议 (MCP) 利用外部工具和代码。
其中包括:
- UiPath : 客户可以直接将其他 UiPath 组件(例如流程、API 工作流等)用作工具。
- 远程: 连接到第三方服务,执行自定义代码 (编码服务器) 或运行脚本命令 (命令服务器)。
虽然 UiPath Platform 为这些集成提供安全的通信和监管,但任何外部端点或自定义代码在核心平台安全边界之外运行。这意味着一旦数据或操作离开 UiPath 的受控环境,客户需对其安全性和合规性承担责任。在实际使用中,UiPath 在其服务内确保传输中和静态存储时的加密,并强制执行基于角色的访问控制,但对于 UiPath 之外的任何内容(外部服务器或代码),数据隐私、端点安全和法规合规仍由客户负责。
UiPath 不会管理您的外部服务器或代码,这些组件的安全性和可靠性都在您的控制之下。因此,在使用 MCP 的集成时需要特别注意密码的处理方式、哪些端点可信以及执行哪些代码,以满足组织的合规性要求。
RemoteServers、CodedServers 和 CommandServers 的安全影响
RemoteServers
RemoteServer 配置定义了与外部 HTTP(S) 端点的连接(用于 MCP StreamableHttp 传输)。安全影响在于,发送至该外部服务或从该外部服务接收的任何数据均不在 UiPath 的直接控制范围内。如果 RemoteServer 需要身份验证(API 机密信息、令牌等),用户可能会倾向于将这些机密信息直接嵌入到 HTTP 标头或 URL 中。将机密信息直接存储在配置中存在风险——尽管 UiPath MCP 服务会在 UI 中对这类敏感标头值进行掩码显示,并在静态时在数据库中对其进行加密,但这些数据仍会在系统中传输,如果处理不当,仍可能被暴露。此外,诸如端点 URL、正文有效负载或查询参数等字段在数据库中不会被加密,因此绝不应在这些字段中存放任何敏感数据。如果端点遭到入侵或通信不安全,发送至外部端点的数据可能会被拦截或误用。简而言之,由于 RemoteServers 将您的自动化扩展到外部网络,因此您必须确保这些端点是可信的,并且在传输过程中不会泄露任何机密信息或敏感信息。
CodedServers 和 CommandServers
CodedServer 是指您作为代理的一部分打包和运行的自定义代码(例如,Python 脚本或程序),而 CommandServers 在 Serverless 运行时中运行 Shell 命令或脚本。两者都在 UiPath 编排的 Serverless 临时容器中执行用户提供的逻辑。从安全角度来看,这意味着您的代码在 UiPath 云环境中以某些权限运行 – 特别是,它在您组织的上下文中运行,并包含作用域为您的组织/用户的身份验证令牌(持有者令牌),用于回调 UiPath 服务。主要含义是,您运行的任何代码本质上都受该令牌(可能还有其他环境变量)信任。如果您运行恶意或未经验证的代码,它可能会窃取令牌或其他敏感信息并执行未经授权的操作。不得在编码服务器/命令服务器中使用不受信任的代码,因为它可能会泄漏数据或滥用授予的权限。即使用意良好的代码也可能存在可被攻击者利用来获取访问权限的漏洞。此外,这些容器可能有权访问某些环境变量(例如配置、凭据等),这些变量应该被视为敏感表面——恶意代码可以在内存中读取它们。
总而言之,运行自定义代码或命令意味着您需要自行承担该代码行为所带来的风险。仅应部署高度可信且经过审查的代码,并且应遵循安全编码实践。
除上述特定组件外,MCP 的使用还引入了共享责任模型:UiPath 提供平台安全保障(隔离的执行容器、静态数据加密、网络防护以及云平台的合规认证),但您需负责所连接的任何外部系统及所运行内容的安全。以下各节概述了帮助您履行自身责任的最佳实践。
建议的安全实践
为安全地使用 MCP 集成并满足合规要求,请实施以下最佳实践。
1. 安全地处理机密信息(RemoteServer 标头和资产)
强烈建议不要将敏感机密信息(API 机密信息、令牌、凭据)直接存储在 RemoteServer 配置中。尽管平台会在静态时对机密信息标头值进行加密,并在 UI 中对其进行掩码显示,但我们仍不推荐这种做法。配置中的机密信息仍可能出现在日志中或被意外暴露,而且除指定的机密信息标头外,其他字段均不会被加密。不要在 URL、查询参数或请求正文等字段中以明文形式存放敏感数据。
推荐方法
使用类型为“机密信息”的 Orchestrator 资产来管理敏感密钥,并在您的 RemoteServer 标头或参数中引用它们。
例如,将 API 密钥存储在名为 MY_API_KEY 的资产中(Orchestrator 中的资产默认在静态时会被加密)。在 RemoteServer 标头配置中,不要直接输入密钥值,而应使用占位符引用:Authorization: Bearer %Assets/MY_API_KEY%。当智能体运行时,平台会在运行时替换为实际的机密信息。
这样,机密信息就不会以明文形式存储在 RemoteServer 设置中——而是安全地保存在资产保险库中。UI 只会显示掩码占位符。这种做法有助于避免机密信息的意外暴露,并符合不将凭据硬编码的原则。
总结来说:不要在您的智能体代码和配置中存放机密信息。将其集中存放在安全存储中。定期轮换 API 密钥,切勿将机密信息直接嵌入代码或 HTTP 请求中。
2. 受信任的端点和网络控件(RemoteServer 设置)
配置远程服务器时,请仅连接到受信任的外部端点。每个远程服务器都应指向您的组织已通过安全性、隐私性和合规性审核的域或服务。以供应商的身份对待新的第三方 API 或服务,确保其符合您的安全标准(例如,拥有适当的认证、使用加密技术,并且会适当处理您的数据)。
对所有外部调用均使用 HTTPS。始终指定 https:// URL,以确保传输过程中的流量得到加密。对连接强制使用 TLS 1.2 或更高版本。平台默认通过 TLS 进行通信;作为客户,您应验证端点是否具有有效证书和强加密。切勿在智能体通信中使用明文 HTTP,否则可能会被拦截。
要点:将外部调用视为您 IT 环境的延伸。验证外部服务的安全性(SSL/TLS 已启用、不得使用自签名或过期证书等),并且仅在信任的情况下向其发送数据。被入侵或恶意的端点可能会窃取数据或注入有害响应,因此对外部服务器进行尽职调查至关重要。
3. Coded/Command 服务器的安全执行(仅限受信任代码)
对于 CodedServers 和 CommandServers,安全性在很大程度上取决于您运行的代码。切勿在未经充分审查的情况下运行不受信任或第三方代码。智能体容器会使用可调用 UiPath API(以及可能的其他集成)的访问令牌来执行您的代码。恶意代码可能会获取该持有者令牌或环境中的其他机密信息并将其外泄,或通过平台 API 执行破坏性操作。它还可能尝试利用容器运行时漏洞,尽管 UiPath 的无服务器容器是隔离运行的,且默认不以提升的权限执行。
为减轻这些风险:
- 实施内部代码审查和来源验证。如果您在编码智能体中使用开源库或示例代码,请对该代码进行安全审查(例如是否存在后门、数据外泄逻辑等)。仅从官方、受信任的软件包仓库获取库文件。
- 扫描代码和依赖项中的漏洞。对您的代理代码采用静态应用程序安全测试 (SAST),并对使用的任何包使用依赖项漏洞扫描程序(如 OWASP 依赖项检查、Snyk 等)。这有助于在部署之前捕获已知缺陷(例如,可能允许远程执行代码的包)。建议持续扫描,因为随着时间的推移,库中可能会出现新的漏洞。
- 限制代码可以执行的操作。尽管容器是临时性的,您仍应采用防御性编码实践。例如,避免将未经验证的输入传递给您的代码(以防止注入攻击)。从根本上,应尽量缩小容器内的攻击面。理想情况下,代码应仅执行其预期功能,不应执行其他操作。
- 注意环境变量和文件系统访问权限。应假定容器可访问的任何机密信息(例如智能体的身份验证令牌或通过环境变量传入的其他凭据)都可能被您的代码读取。不要记录这些值,也不要将其发送到外部位置。此外,尽管容器可能提供一定的临时存储空间,但您也应避免将敏感信息写入磁盘,除非确有必要;如确有需要,应在结束前将其删除。
总而言之,应将智能体的代码执行环境视为拥有敏感访问权限的生产服务器:仅运行受信任的代码,遵循安全编码实践,并进行安全测试。UiPath 的平台提供了安全的沙箱,并确保代码在您的账户上下文下运行,但不会在细粒度层面对代码逻辑进行检查或沙箱隔离——这一责任由您承担。
4. 数据处理和隐私
除非绝对必要,否则请避免将敏感数据发送给外部工具。离开 UiPath 平台到外部 API 或服务的任何数据均应视为存在暴露风险。在可能的情况下,在将个人数据或监管信息发送到远程服务器之前,对其进行掩码或脱敏处理*。*例如,如果代理通过外部 AI API 汇总客户数据,请考虑删除提示中的标识符或对标识符进行匿名化处理。这种数据最小化实践不会将受保护的数据公开给可能不受这些协议监管的系统,从而确保符合隐私法规(GDPR、HIPAA 等)。
如果您必须发送敏感信息,请确保外部提供商通过合同确保数据保护(例如,不存储数据或将其用于其他目的)。验证外部服务的数据驻留 – 如果不加说明,将数据发送到其他区域的端点可能违反公司的策略。请始终符合组织的合规性要求对外部端点的使用(例如,确保第三方服务拥有 SOC 2、ISO 27001 或其他与您行业相关的认证)。
在 UiPath 平台内,平台会在可能的范围内记录所有智能体活动,包括工具的使用情况以及传递给工具的数据。利用这些日志,确保不会发送任何非预期的数据。定期审查您的智能体正在处理和向外部发送的信息。例如,如果您发现某个智能体在向 RemoteServer 发出请求时包含社会保障号码,应考虑修改智能体的逻辑,对此类数据进行哈希处理或将其移除。
如果您使用 Coded/Command MCP 服务器,日志记录由您负责。切勿记录诸如 PII 或安全信息等敏感数据。
同时,也要注意来自外部服务的输出数据。外部 AI 或脚本可能会返回敏感信息(甚至恶意内容)。在可行的情况下,对输出结果进行验证。例如,如果 RemoteServer 返回的响应将用于决策,应确保该响应符合预期的格式和范围。这有助于防止外部系统的操纵行为或意外行为。
简而言之,应将外部集成视为您合规数据流图的一部分——记录哪些数据正在通过哪项服务离开平台。这将有助于开展风险评估和审核。始终优先仅共享完成任务所需的最少信息(数据的知情必需原则)
5. 访问控制
配置和使用 MCP 集成的访问权限本身应受到严格控制。只有管理员或高度信任的用户才能创建或修改远程服务器、编码服务器或命令服务器配置*。*利用 Orchestrator 的基于角色的访问控制 (RBAC) 来限制这些功能。例如,您可能具有特定的“智能体集成经理”角色,并且仅将其分配给卓越中心或 IT 安全团队的成员。这可以防止普通自动化开发者或业务用户无意中添加不安全连接或执行任意代码。添加的每个新的 MCP 服务器或代理工具都应经过审核流程。
在分配角色和权限时,应贯彻最小权限原则。定义范围严格受限的角色,以确保用户只能执行其工作所必需的操作。例如,如果某个智能体只需要读取特定数据或执行特定流程,应确保运行该智能体的账户不具备对其他数据或管理功能的更广泛访问权限。避免在具有 Orchestrator 完全管理员权限的账户下运行智能体。应改用具备最小权限的专用服务账户。这样,即使智能体的令牌被泄露,潜在损害也仅会限于该账户的权限范围。
监控智能体的执行日志。以一致方式跟踪和记录智能体对所有工具的使用情况。通过审查这些日志,您可以发现异常情况(例如智能体调用其通常不会调用的端点,或在异常时间运行)。
明智的做法是定期对 MCP 服务配置进行合规检查:导出所有已配置 RemoteServers 的列表并验证其是否在批准名单内;检查任何描述或字段是否暴露了凭据;验证所有 Coded/Command 服务器是否均对应已通过安全审查的代码。建立这些“智能体工具”的清单,类似于 IT 资产清单。
最后,确保您的事件响应计划涵盖 MCP 服务相关场景。例如,如果外部端点遭到入侵或 API 密钥泄露,应制定流程以便迅速停用该 RemoteServer 或轮换凭据。由于 UiPath 将成为您企业集成环境的一部分,您的安全团队应了解这些集成与执行能力,并在威胁建模和应急演练中将相关风险场景纳入考虑。
通过控制访问、监控活动并及时调查任何异常情况,您履行了共享责任模型中属于您一方的责任——确保在符合安全和合规要求的前提下利用平台强大的能力。
职责隔离(UiPath™ 与客户)
使用 MCP 涉及 UiPath 和客户之间的共享责任模型。 下表总结了哪些安全方面由 UiPath 平台负责,哪些由客户负责:
表格 1. UiPath 与客户责任
| 区域 | UiPath 职责 | 客户责任 |
|---|---|---|
| 平台安全 | 为智能体执行提供安全的云基础设施和容器隔离。在 UiPath Cloud 内强制实施传输中 (TLS) 和静态加密。平台内的基于角色的访问控制 (RBAC) 和身份验证。 | 安全使用平台。仅限获授权人员拥有平台访问权限。按照最小权限原则配置角色和权限。保护平台所连接的外部端点(确保其具备适当的安全控制、身份验证机制和合规认证)。管理网络控制措施,确保仅限获批准的流量进出 UiPath。 |
| 凭据管理 | 对存储在 Orchestrator 资产或 Integration Service 中的凭据进行加密。资产中的机密信息由平台隐藏并加以保护。在运行时安全注入凭据(例如,替换 %Assets/KEY%)。平台不会在日志或明文中存储任何机密信息。 | 以负责任的方式存储和管理机密信息。使用提供的安全存储(资产等)——不要在代码或配置中硬编码机密信息。定期轮换您的外部凭据,并移除任何未使用的密钥。如果使用第三方服务,请在第三方服务端管理 API 密钥或令牌(例如在泄露时予以吊销)。确保暴露给智能体的任何机密信息(即便是临时暴露)都在您这一方得到妥善处理(例如不要在其他地方重复使用)。 |
| 执行环境 | 为 Coded/Command 服务器提供隔离的临时容器。确保每次执行都使用具有作用域限制的持有者令牌,且无法直接影响其他租户或主机 OS。记录智能体工具操作以供审核。强制实施超时和资源限制,以降低失控代码带来的影响。 | 代码安全和完整性。仅部署安全且必要的代码。不要运行不受信任或未经审查的代码。验证所有自定义逻辑并执行安全测试(代码审查、漏洞扫描)。您需对您代码的行为负责——如果代码删除数据或泄露信息,其责任由您承担。将环境变量和容器内的任何数据视为敏感信息(因为其中可能包含令牌或私密数据)。及时修复您代码或库中的任何漏洞(平台不会知道您的代码是否存在缺陷——这一点需要由您自行管理)。 |
| 数据处理 | 对智能体容器与 UiPath 服务之间传输的所有数据进行加密。为流经平台的数据提供审核日志,并支持监控(包括谁在何时运行了什么,以及任何已记录的输入/输出)。支持针对 UiPath 平台内数据的合规措施,例如数据掩码、安全存储以及客户管理的加密密钥。 | 保护离开平台的数据。确定哪些数据可以发送至外部端点或由外部代码处理。对 PII/PHI 进行掩码处理或避免发送此类数据,除非该外部系统已获得相应批准。确保外部端点遵循数据驻留和保留要求(数据一旦离开 UiPath,其隐私责任由您承担)。在将特别敏感的数据发送至外部服务之前,实施额外的加密或假名化处理。 |
| 监控和响应 | 为平台上的操作(配置更改、代理运行、错误)提供集中式日志记录、警示和审核跟踪。让您能够通过 OpenTelemetry 及其他接口与 CIEM 工具集成。UiPath 支持团队可以协助处理平台级别的事件(例如,基础架构中断、平台滥用),并提供审核日志以便于调查。 | 监控您的使用情况并响应事件。定期审查智能体运行日志和审核追踪记录,以查找异常情况。检测和响应任何可疑活动(例如智能体进行异常外部调用)。如果外部集成遭到入侵或被误用,您需要自行禁用该集成,并在外部侧处理相关事件。针对涉及外部系统的灾难恢复和事件响应制定计划(例如,如有需要,应制定轮换密钥或切换端点的操作手册)。涉及智能体集成的数据或流程的任何合规报告均需由您负责管理(UiPath 可提供平台操作相关数据,但端到端流程的报告需由您负责)。 |
这种职责分离与通用的 Cloud 职责共享模型保持一致:UiPath 负责保护平台,您必须保护平台的使用方式及其任何扩展程序的安全。确保您的内部策略涵盖 MCP 的使用 – 例如,所有第三方集成必须获得安全部门的批准、所有自定义智能体代码必须经过安全审核的策略等。您通过履行这些职责,可确保 MCP 服务的实施始终符合组织的安全标准。
建议的免责声明:当使用 MCP 服务和 MCP 通过外部代码或服务扩展 UiPath 时,客户将独自负责保护、管理和维护这些外部组件以及由它们处理的任何数据。 UiPath 可确保平台内的安全性(加密、身份验证、记录),但一旦数据离开 UiPath 平台边界,则不会控制或承担责任。在实践中,这意味着您应该以与系统的其他关键部分相同的严格程度来处理外部端点和自定义代码。 合规检查不是一次性工作,而是您在不断改进智能体和集成时需要一直承担的职责。