是否可在Dev和Prod环境间完全共享AWS SageMaker Model Registry?
SageMaker Model Registry 跨Dev/Prod环境共享实践指南
可行性结论
你的规划完全可行,SageMaker Model Registry原生支持跨开发(Dev)、生产(Prod)环境共享,不需要在Prod环境重复执行训练、测试流程,可直接复用Dev环境产出的合格模型。
两种主流共享实现方案
你可以根据团队的合规要求二选一:
- 单注册表跨账号授权(优先推荐)
把模型注册表统一部署在Dev账号,仅通过IAM权限策略给Prod账号开放指定模型的访问权限,不需要复制模型实体。操作核心配置:- 在Dev账号侧给对应模型包组(Model Package Group)配置资源策略,允许Prod账号的运维/部署角色执行
sagemaker:DescribeModelPackage、sagemaker:CreateModel等必要操作 - 给存储模型 artifact的S3桶配置桶策略,开放Prod账号的只读权限
这个方案不需要迁移10000个模型的存储资源,仅需要给筛选出的2000个合格模型开放权限即可,成本最低、操作最简便。
- 在Dev账号侧给对应模型包组(Model Package Group)配置资源策略,允许Prod账号的运维/部署角色执行
- 模型包跨账号复制
如果合规要求Prod环境必须持有所有运行资源的实体,可以调用SageMaker的CopyModelPackageAPI,将Dev环境筛选通过的2000个模型批量复制到Prod账号独立的模型注册表中,复制过程会自动同步模型文件、元数据、测试记录、审批状态等所有信息,不会丢失Dev侧的历史数据。
适配你的场景的优化建议
- 先给Dev环境产出的10000个模型统一配置自定义元数据标签,比如精准率、召回率、训练数据集版本、测试通过率等筛选维度,可直接通过SageMaker API批量筛选出符合要求的2000个模型,不用手动核对
- 启用模型审批工作流,将Dev侧测试通过设置为自动审批的前置条件,筛选出的2000个模型自动标记为
Approved状态,仅开放Approved状态的模型给Prod环境访问,避免生产误用到不合格模型 - 遵循权限最小化原则:Prod环境的角色仅分配合格模型的读取、部署权限,不要开放模型修改、删除权限,也不要开放未通过审核的剩余8000个模型的访问权限
- 给所有同步到Prod侧使用的模型添加
source_env: dev的统一标签,方便后续部署故障时快速溯源Dev侧的训练、测试记录
注意事项
如果你的模型依赖自定义容器镜像,需要同步给Prod账号开放镜像所在的Amazon ECR仓库的读取权限,否则部署时会报镜像拉取失败的错误
如果Dev和Prod环境部署在不同AWS区域,需要先完成模型包的跨区域复制,再做跨账号授权,SageMaker不支持直接跨区域访问模型注册表资源
内容的提问来源于stack exchange,提问作者NDS
相关产品推荐
相关产品推荐

