是否可以禁用SageMaker Studio的默认容器镜像?
问题结论
SageMaker Studio环境下禁用平台默认预置镜像的需求完全可实现,目前有两类成熟的配置方案可以满足合规、权限管控类诉求,不需要做二次开发。
具体配置方案
方案1:Domain层全局隐藏/禁用预置镜像
这是最直接的全局管控方式,配置后Domain下所有用户都无法访问被禁用的默认镜像:
- 控制台操作:打开SageMaker控制台,定位到目标Domain详情页,找到「Studio设置」下的「镜像管理」板块,把datascience-2.0这类不需要的默认预置镜像加入隐藏列表,打开「仅允许列表内镜像可用」开关,保存后等5-10分钟配置就会同步到所有用户侧。
- 自动化配置(CLI/基础设施即代码):调用SageMaker的
UpdateDomain接口,通过HiddenSageMakerImages参数传入所有需要禁用的预置镜像ARN即可,示例命令如下:
aws sagemaker update-domain \ --domain-id <替换为你的SageMaker Domain ID> \ --default-user-settings '{ "HiddenSageMakerImages": [ "arn:aws:sagemaker:<替换为当前区域>:<替换为账号ID>:image/datascience-2.0", "其余需要禁用的预置镜像ARN" ] }'
方案2:IAM策略细粒度权限管控
如果不需要全局一刀切,要针对不同用户/用户组做差异化管控,可以用IAM权限实现:
- 给需要限制的用户对应的SageMaker执行角色添加自定义权限策略,添加显式
Deny规则,禁止角色在调用sagemaker:CreateApp接口时传入预置镜像的资源ARN,同时可以按需拒绝角色对预置镜像对应ECR仓库的拉取权限。 - 这种方式灵活度更高,可以给不同合规等级的用户组配置不同的可用镜像范围,不会影响其他不需要管控的用户正常使用默认镜像。
配置注意事项
- 配置生效后,新启动的Studio实例会直接过滤掉被禁用的镜像,用户在界面上看不到对应选项,通过API直接发起的创建请求也会被权限拦截。
- 配置前已经基于默认镜像启动的存量App不会被自动终止,需要管理员手动通知用户停止存量实例,或者通过运维脚本批量清理,避免出现管控遗漏。
- 后续SageMaker新发布的预置镜像如果也需要纳入管控,需要定期更新隐藏列表或者IAM策略的拒绝规则,避免新镜像漏过管控。
内容的提问来源于stack exchange,提问作者terrygryffindor
相关产品推荐
相关产品推荐

