文档首页/ AI开发平台ModelArts/ 最佳实践/ Standard权限管理/ 典型场景配置实践/ 给子账号配置文件夹级的SFS Turbo访问权限
更新时间:2024-09-26 GMT+08:00

给子账号配置文件夹级的SFS Turbo访问权限

场景描述

本文介绍如何配置文件夹级的SFS Turbo访问权限,实现在ModelArts中访问挂载的SFS Turbo时,只允许子账号访问特定的SFS Turbo文件夹内容。

给子账号配置文件夹级的SFS Turbo访问权限为白名单功能,如果有试用需求,请提工单申请权限。

前提条件

  • 需要在ModelArts控制台打开严格授权模式,单击“权限管理 > 启用严格模式”。
  • 如果打开严格模式前没有为子账号配置过ModelArts权限,开启严格授权模式后可能会导致子账号无法使用ModelArts功能,请根据您的业务需求配置需要的ModelArts服务的权限(参见依赖和委托中ModelArts服务对应的依赖策略项)。

操作步骤

  1. 使用主用户账号登录管理控制台,鼠标放在右上角用户名,在下拉框中选择“统一身份认证”,进入统一身份认证(IAM)服务。
  2. 在统一身份认证服务页面的左侧导航选择“权限管理 > 权限”,单击右上角的“创建自定义策略”,设置策略。

    • “策略名称”:设置自定义策略名称,例如: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"
                        ]
                    }
                }
            }
        ]
    }

  3. 创建用户组并加入用户,步骤请参考Step1 创建用户组并加入用户
  4. 给用户组授权策略。在IAM服务的用户组列表页面,单击“授权”,进入到授权页面,为子账号配置权限。勾选步骤2中创建的“ma_sfs_turbo”策略。单击“下一步”和“确定”。
  5. 在已有的ModelArts委托权限中,追加IAM ReadOnlyAccess权限。

    1. 在ModelArts管理控制台,单击“权限管理 ”,在对应委托的操作列,单击“查看权限 > 去IAM修改委托权限”。
    2. 在新页面中,单击“授权记录 > 授权”,搜索“IAM ReadOnlyAccess”,勾选后单击“下一步”并单击“确认”。

  6. 验证权限是否配置成功。

    登录子用户账号,在创建训练作业/创建Notebook时,仅能看到配置的SFS Turbo文件夹,则表示权限配置成功。