Skip to content

feat(studio): TOS output mounts with IAM Role and platform bucket selection - #24

Open
PolarisCzh wants to merge 2 commits into
superops-team:mainfrom
PolarisCzh:czh/studio-mpa-tos-iam-role
Open

PolarisCzh wants to merge 2 commits into
superops-team:mainfrom
PolarisCzh:czh/studio-mpa-tos-iam-role

Conversation

@PolarisCzh

Copy link
Copy Markdown

改动

  • Studio MPA 创建改为仅选择 TOS bucket,通过实际 Worker Tool IAM Role 挂载,不再收集或传递 TOS AK/SK;安全拒绝旧凭据请求并清除旧草稿凭据。
  • 可选桶限定为 agentkit-platform- 前缀:资源接口在搜索、计数和分页前过滤,创建接口再次校验,防止旧草稿或直接请求绕过。
  • 创建时验证桶归属、地域及 Role 信任关系,并增量确保桶级 HeadBucket/ListBucket 与该桶 sandbox-session/* 的 GetObject/PutObject/DeleteObject/AbortMultipartUpload 权限。已有绑定保留,冲突策略不覆盖。
  • Worker 使用 TOS_CREDENTIAL_TYPE_IAM_ROLE,不携带 Credentials;本地读写目录保留 /data/output,会话独立挂载路径保持原有逻辑。
  • 更新双语规格、PRD、使用说明及生成的 WebUI 产物。独立 CLI/YAML 的旧 AK/SK 模式和不传前缀的通用资源查询保持兼容。

验证

  • Python 定向测试:754 passed。
  • 前端完整测试:1,377 Node tests + 73 Vitest cases passed;创建窗口 46 cases passed。
  • 前端构建、i18n、WebUI 产物检查(113 files / 350 references)、Ruff、pre-commit 通过。
  • 桶前缀调整四个目标文件的可执行增量行覆盖率 100%(Python 22/22,TS 10/10);前序 IAM 实现的受测增量亦通过记录中的覆盖率检查。
  • 全量 Python:6,495 passed、6 failed、2 collection errors、19 skipped、2 xfailed。失败为已在同解释器的原始基线复现的可选 llama_index / anthropic 依赖问题;不表述为全量通过。
  • Pyright:前缀调整文件无错误;完整改动范围有 mpa_tool.py 历史 SDK 调用的 15 个签名错误,已在原始基线复现。

云端验收

  • 现有 Studio 代码包已更新至 V42,环境变量和品牌配置保持不变;远程入口 JS/CSS/logo 哈希与本地产物匹配。
  • 从远程 Studio 创建 role-tos-e2e-20261012-a 成功;Runtime Ready,应用 /readiness 返回 200。
  • 实际 Worker 回读确认 IAM Role 模式、无 Credentials、读写 /data/output;桶级及会话对象前缀策略已绑定。
  • 两段远程会话实际执行文件写入,GetSession 确认不同 TOS 目录;独立 TOS 读取确认同名文件内容隔离、第一段未被第二段覆盖。
  • 第一段沙箱结果、TOS 对象及浏览器实际下载文件 SHA-256 一致。测试 MPA 和输出对象保留供查看。

边界与风险

  • 增量授权不会收窄共享 Role 的已有权限;使用该 Role 的其他消费者也具备相同权限。会话目录隔离不等于租户授权隔离。
  • 未改变 Studio 登录、Runtime JWT/KeyAuth 或 Worker 协议;没有为本次 Studio 发布重新构建 Runtime/Worker 镜像。
  • 未测试 KMS 加密桶、显式 Deny、独立身份或真实业务渠道消息交付。该 Runtime 镜像不提供 /ready?scope=execution(404),执行证据来自实际命令和对象读取。

详细设计及本地/云端证据:
中文 PRD ·
English PRD

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants