用户创建模型时构建镜像或导入文件失败
问题现象
- 用户创建模型时,构建镜像失败,失败日志中提示下载obs文件失败(Get object size from OBS failed!)。
图1 下载obs文件失败
- 用户创建模型时,事件提示:复制模型文件失败,请检查OBS权限是否正常(Failed to copy model file due to obs exception. Please Check your obs access right.)或用户%s没有OBS的obs:object:PutObjectAcl权限(User %s does not have obs:object:PutObjectAcl permission.)。
图2 复制模型文件失败
原因分析
由于ModelArts的使用权限依赖OBS服务的授权,需要为用户授予OBS的系统权限。子用户的IAM权限是由其主用户设置的,如果主用户没有赋予OBS的putObjectAcl权限即会导致创建模型构建失败。
处理方法
了解ModelArts依赖的OBS权限自定义策略,请参见ModelArts依赖的OBS权限自定义策略样例。
在统一身份认证服务为用户增加自定义策略权限。详细操作请参见创建自定义策略。
- 登录“统一身份认证服务”控制台,左侧菜单选择“权限管理 > 权限”,单击右上角“创建自定义策略”,创建自定义策略权限。
图3 统一身份认证服务添加权限
图4 创建自定义策略
权限内容如下:
{ "Version": "1.1", "Statement": [ { "Action": [ "obs:bucket:ListAllMybuckets", "obs:bucket:ListBucket", "obs:object:GetObject", "obs:object:GetObjectVersion", "obs:object:PutObject", "obs:object:GetObjectAcl", "obs:object:PutObjectAcl", "obs:object:GetObjectVersionAcl" ], "Effect": "Allow" } ] }
- 在子用户所属用户组中添加该自定义策略权限。
在用户组页面,单击子用户所属用户组的名称,进入用户组详情页。
图5 进入用户组详情
在授权记录页签下,单击“授权”,选择您刚才创建的自定义策略及授权方案。
由于OBS服务是全局级服务,无法指定区域项目进行授权,若需要根据项目进行权限管理,请在选择授权方案选择“指定企业项目资源”。
成功授权后,您可在“企业项目视图”中,看到权限及对应的授权范围。图6 子用户添加权限