给子账号配置文件夹级的SFS Turbo访问权限
场景描述
本文介绍如何配置文件夹级的SFS Turbo访问权限,实现在ModelArts中访问挂载的SFS Turbo时,只允许子账号访问特定的SFS Turbo文件夹内容。
给子账号配置文件夹级的SFS Turbo访问权限为白名单功能,如果有试用需求,请提工单申请权限。
前提条件
- 需要在ModelArts控制台打开严格授权模式,单击“权限管理 > 启用严格模式”。
- 如果打开严格模式前没有为子账号配置过ModelArts权限,开启严格授权模式后可能会导致子账号无法使用ModelArts功能,请根据您的业务需求配置需要的ModelArts服务的权限(参见依赖和委托中ModelArts服务对应的依赖策略项)。
操作步骤
- 使用主用户账号登录管理控制台,鼠标放在右上角用户名,在下拉框中选择“统一身份认证”,进入统一身份认证(IAM)服务。
- 在统一身份认证服务页面的左侧导航选择“权限管理 > 权限”,单击右上角的“创建自定义策略”,设置策略。
- “策略名称”:设置自定义策略名称,例如:ma_sfs_turbo。
- “策略配置方式”:JSON视图。
- “策略内容”:填入如下内容。
{ "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "<modelarts_action>" ], "Condition": { "StringEqualsIfExists": { "modelarts:sfsId": [ "<your_ssf_id>" ], "modelarts:sfsPath": [ "<sfs_path>" ], "modelarts:sfsOption": [ "<sfs_option>" ] } } } ] }
- 未创建以上权限策略前,所有子账号默认可以挂载SFS Turbo。当您创建了以上SFS权限管控策略后,没有被授予以上权限的子账号,默认在ModelArts Console上创建训练作业时无法挂载SFS Turbo(具有Tenant Administrator权限的子账号除外)。
- 当前仅支持配置允许策略的权限(即以上“策略内容”中的“Effect”只能配置为“Allow”),请勿配置拒绝策略的权限。
- Condition参数必须使用“StringEqualsIfExists”字段,对应可视化视图为勾选“如果存在”的开关。
图1 “如果存在”的开关
以上代码中的"<modelarts_action>"、"<your_ssf_id>"、"<sfs_path>"、"<sfs_option>",需要根据您的业务需求替换为实际的参数,各参数含义如下。
表1 参数解释 参数
参数解释
Action
表示在何种场景下授予SFS Turbo文件夹访问权限。
- 创建开发环境实例:modelarts:notebook:create
- 创建训练作业:modelarts:trainJob:create
支持填写多种Action,例如:
"Action": [ "modelarts:trainJob:create", "modelarts:notebook:create" ],
modelarts:sfsId
SFS Turbo的ID,在SFS Turbo详情页查看。支持填写多个ID,例如:
"modelarts:sfsId": [ "0e51c7d5-d90e-475a-b5d0-ecf896da3b0d", "2a70da1e-ea87-4ee4-ae1e-55df846e7f41" ],
modelarts:sfsPath
需要进行权限配置的SFS Turbo文件夹路径。支持填写多个路径,例如:
"modelarts:sfsPath": [ "/path1", "/path2/path2-1" ],
如果sfsId中填写了多个ID,则sfsPath会应用于所有sfsId。例如以下代码含义为:为"0e51c7d5-d90e-475a-b5d0-ecf896da3b0d"的"/path1"和"/path2/path2-1"配置访问权限,同时也为"2a70da1e-ea87-4ee4-ae1e-55df846e7f41"的"/path1"和"/path2/path2-1"配置访问权限。
"modelarts:sfsId": [ "0e51c7d5-d90e-475a-b5d0-ecf896da3b0d", "2a70da1e-ea87-4ee4-ae1e-55df846e7f41" ], "modelarts:sfsPath": [ "/path1", "/path2/path2-1" ],
modelarts:sfsOption
设置用户对于SFS Turbo文件夹的权限类型,支持填写以下参数:
- 仅读权限:readonly
- 读写权限:readwrite(创建开发环境实例modelarts:notebook:create仅支持配置readwrite)
如果需要在一个自定义策略中添加多个不同的sfsOption,需要“Statement”中新增JSON结构体,例如:
{ "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "modelarts:trainJob:create" ], "Condition": { "StringEqualsIfExists": { "modelarts:sfsId": [ "0e51c7d5-d90e-475a-b5d0-ecf896da3b0d" ], "modelarts:sfsPath": [ "/path1" ], "modelarts:sfsOption": [ "readonly" ] } } }, { "Effect": "Allow", "Action": [ "modelarts:trainJob:create" ], "Condition": { "StringEqualsIfExists": { "modelarts:sfsId": [ "0e51c7d5-d90e-475a-b5d0-ecf896da3b0d" ], "modelarts:sfsPath": [ "/path2" ], "modelarts:sfsOption": [ "readwrite" ] } } } ] }
- 创建用户组并加入用户,步骤请参考Step1 创建用户组并加入用户。
- 给用户组授权策略。在IAM服务的用户组列表页面,单击“授权”,进入到授权页面,为子账号配置权限。勾选步骤2中创建的“ma_sfs_turbo”策略。单击“下一步”和“确定”。
- 在已有的ModelArts委托权限中,追加IAM ReadOnlyAccess权限。
- 在ModelArts管理控制台,单击“权限管理 ”,在对应委托的操作列,单击“查看权限 > 去IAM修改委托权限”。
- 在新页面中,单击“授权记录 > 授权”,搜索“IAM ReadOnlyAccess”,勾选后单击“下一步”并单击“确认”。
- 验证权限是否配置成功。
登录子用户账号,在创建训练作业/创建Notebook时,仅能看到配置的SFS Turbo文件夹,则表示权限配置成功。