ClearML Vaults:将AI基础设施策略从文档强制落地至执行层
ClearML 推出 Vault 机制,通过将安全策略直接嵌入运行时环境,解决传统文档式政策难以执行的问题。该功能允许管理员在存储、计算镜像、凭证及环境变量等四个维度统一管控任务执行配置,并具备“管理员策略优先”的强制覆盖能力。这一机制确保无论用户本地如何配置,所有 AI 任务均按企业合规标准运行,实现了从身份认证到执行环境的闭环安全控制。
事件概述
针对 AI 团队中常见的因追求效率而绕过安全策略(如使用个人云存储、未审核的基础模型、含漏洞的容器镜像)的问题,ClearML 推出了 ClearML Vaults 功能。该功能旨在将基础设施策略从“文档规定”转变为“平台强制执行”,确保所有任务在运行时自动符合组织的安全规范。
核心机制与工作原理
Vault 是 ClearML 服务器在任务执行前应用的一个配置块,它会在用户代码运行之前被拉取并合并到本地配置中。其核心逻辑包括:
- 强制生效:无论是通过 SDK 本地运行还是通过 Agent 远程运行,Vault 配置都会自动应用,无需用户手动触发。
- 四层管控内容:Vault 可管理
clearml.conf文件中的关键配置,涵盖以下四个领域:- 存储 (Storage):定义默认输出 URI(支持 S3、Azure Blob、GCS 等)及对应的存储凭证,控制数据去向与认证方式。
- 计算 (Compute):指定 Docker 镜像及其版本。支持设置默认镜像、锁定特定版本,并通过匹配规则(Match Rules)根据任务需求(如 Python 版本、框架版本)自动选择容器。管理员可开启覆盖标志,禁止用户替换镜像。
- 凭证 (Credentials):集中管理 Git Token、外部服务 API Token 等。支持分层叠加(平台级 -> 组级 -> 用户级),凭证轮换只需在 Vault 中操作一次,即可自动同步至组内所有任务。
- SDK 与环境设置:注入环境变量(如 HuggingFace Token)、自动生成配置文件、配置内部 PyPI 镜像源等,特别适用于气隙(air-gapped)环境。
权限层级与冲突处理
ClearML 定义了两种 Vault 类型,并确立了严格的优先级规则:
- 个人 Vault (Personal Vault):属于单个用户,用于存储个人工作流偏好(如个人存储路径、私有仓库 Token)。仅对该用户的任务生效。
- 管理员 Vault (Administrator Vault):由平台管理员创建并分配给特定用户组。组内所有成员(包括服务账号和自动化流水线)的任务均会应用此配置。
冲突解决原则:
- 管理员策略优先:当个人 Vault 与管理者 Vault 配置冲突时,管理员配置强制覆盖个人配置。
- 透明反馈:用户界面会显示通知,明确列出哪些字段被管理员策略覆盖。
- 三层架构:支持“平台管理员 -> 用户组 -> 个人用户”的三层配置叠加,下层只能添加配置,无法覆盖上层设定。
实际应用场景示例
以用户 Bob 为例:
- Bob 的个人配置:代码中调用
set_base_docker("python:latest"),意图使用最新基础镜像,并使用个人 Azure Blob 凭证。 - 管理员策略:为 Bob 所在组配置了管理员 Vault,指定了经过验证的加密存储位置、锁定的安全镜像版本以及统一的 Git 凭证。
- 执行结果:Bob 提交任务后,系统自动忽略其代码中的
python:latest指令,转而使用管理员指定的安全镜像;同时,任务自动写入批准的存储桶并使用平台管理的凭证克隆代码库。Bob 无需修改任何代码,任务即实现合规运行。
在安全架构中的定位
Vaults 构成了 ClearML 企业级安全架构的第三层防线:
- 第一层(身份认证):通过 SSO、SAML、LDAP 等控制“谁能进入”。
- 第二层(访问控制):通过 RBAC 控制“能看什么资源”。
- 第三层(执行环境 - Vaults):控制“任务如何在环境中运行”。
这种分层设计确保了即使攻击者获取了用户凭证或绕过了访问控制,也无法在不受控的环境中执行恶意代码或泄露敏感数据,从而实现了可扩展且可审计的 AI 基础设施安全合规。
