更新时间:2024-08-16 GMT+08:00
分享

创建IAM用户并授权使用ModelArts

快速配置ModelArts委托授权章节中介绍的一键式自动授权方式创建的委托的权限比较大,基本覆盖了依赖服务的全部权限。如果华为云账号已经能满足您的要求,不需要创建独立的IAM用户,您可以跳过本章节,不影响您使用ModelArts服务的其他功能。

ModelArts作为一个完备的AI开发平台,支持用户对其进行细粒度的权限配置,以达到精细化资源、权限管理之目的。这类特性在大型企业用户的使用场景下很常见。如果需要对委托授权的权限范围进行精确控制,参考本章节进行定制化委托授权。

本章节主要介绍如何给IAM用户下的子用户配置更细粒度的权限。

由于ModelArts的使用权限依赖OBS服务的授权,您需要为用户授予OBS的系统权限。

前提条件

给用户组授权之前,请您了解用户组可以添加的使用ModelArts及依赖服务的权限,并结合实际需求进行选择,ModelArts支持的系统权限,请参见表1

表1 服务授权列表

待授权的服务

授权说明

IAM权限设置

是否必选

ModelArts

授予子用户使用ModelArts服务的权限。

ModelArts CommonOperations没有任何专属资源池的创建、更新、删除权限,只有使用权限。推荐给子用户配置此权限。

ModelArts CommonOperations

必选

如果需要给子用户开通专属资源池的创建、更新、删除权限,此处要勾选ModelArts FullAccess,请谨慎配置。

ModelArts FullAccess

可选

ModelArts FullAccess权限和ModelArts CommonOperations权限只能二选一,不能同时选。

OBS对象存储服务

授予子用户使用OBS服务的权限。ModelArts的数据管理、开发环境、训练作业、模型推理部署均需要通过OBS进行数据中转

OBS OperateAccess

必选

SWR容器镜像仓库

授予子用户使用SWR服务权限。ModelArts的自定义镜像功能依赖镜像服务SWR FullAccess权限。

SWR OperateAccess

必选

密钥管理服务

当子用户使用ModelArts Notebook的SSH远程功能时,需要配置子用户密钥管理服务的使用权限。

KMS CMKFullAccess

可选

IEF智能边缘平台

授予子用户智能边缘平台使用权限,ModelArts的边缘服务依赖智能边缘平台,要求配置Tenant Administrator权限。

Tenant Administrator

可选

CES云监控

授予子用户使用CES云监控服务的权限。通过CES云监控可以查看ModelArts的在线服务和对应模型负载运行状态的整体情况,并设置监控告警。

CES FullAccess

可选

SMN消息服务

授予子用户使用SMN消息服务的权限。SMN消息通知服务配合CES监控告警功能一起使用。

SMN FullAccess

可选

VPC虚拟私有云

子用户在创建ModelArts的专属资源池过程中,如果需要开启自定义网络配置,需要配置VPC权限。

VPC FullAccess

可选

SFS弹性文件服务

授予子用户使用SFS服务的权限,ModelArts的专属资源池中可以挂载SFS系统作为开发环境或训练的存储。

SFS Turbo FullAccess

SFS FullAccess

可选

配置ModelArts Standard基础操作权限

  1. 创建用户组。

    登录IAM管理控制台,单击用户组>创建用户组。在“创建用户组”界面,输入“用户组名称”单击“确定”

  2. 配置用户组权限。

    在用户组列表中,单击步骤1新建的用户组右侧的“授权”,在用户组“授权”页面,您需要配置的权限如下:

    1. 配置ModelArts使用权限。在搜索框搜索ModelArts。ModelArts FullAccess权限和ModelArts CommonOperations权限只能二选一,不能同时选。
      选择说明如下:
      • ModelArts CommonOperations没有任何专属资源池的创建、更新、删除权限,只有使用权限。推荐给子用户配置此权限。
      • 如果需要给子用户开通专属资源池的创建、更新、删除权限,此处要勾选ModelArts FullAccess,请谨慎配置。
      图1 配置ModelArts使用权限
    2. 配置其他依赖云服务的使用权限,此处以OBS为例,搜索OBS,勾选“OBS OperateAccess”。ModelArts训练作业中需要依赖OBS作为数据中转站,需要配置OBS的使用权限。

      更多需要配置的云服务权限请参见表1,比如SWR等,重复操作此步骤。

    3. 再单击“下一步”,设置最小授权范围。单击“指定区域项目资源”,勾选待授权使用的区域,单击“确定”
    4. 提示授权成功,查看授权信息,单击“完成”。此处的授权生效需要15-30分钟。

  3. 创建子用户账号。在IAM左侧菜单栏中,选择“用户”,单击右上角“创建用户”,在“创建用户”页面中,添加多个用户。请根据界面提示,填写必选参数,然后单击“下一步”
  4. 将子用户子账号加入用户组。在“加入用户组”步骤中,选择“用户组”,然后单击“创建用户”。系统将前面设置的多个用户加入用户组中。
  5. 用户登录并验证权限。

    新创建的用户登录控制台,切换至授权区域,验证权限:

    • 在“服务列表”中选择ModelArts,进入ModelArts主界面,选择不同类型的专属资源池,在页面单击“创建”,如果无法进行创建(当前权限仅包含ModelArts CommonOperations),表“ModelArts CommonOperations”已生效。
    • 在“服务列表”中选择除ModelArts外(假设当前策略仅包含ModelArts CommonOperations)的任一服务,如果提示权限不足,表示“ModelArts CommonOperations”已生效。
    • 在“服务列表”中选择ModelArts,进入ModelArts主界面,单击数据管理>数据集>创建数据 > ,如果可以成功访问对应的OBS路径,表示OBS权限已生效。
    • 参考表1依次验证其他可选权限。

创建ModelArts Standard自定义策略

如果系统预置的ModelArts权限不满足您的授权要求,或者您需要管理用户更细一步的操作权限,比如操作OBS的操作权限,可以创建自定义策略。

目前IAM支持可视化视图创建自定义策略和JSON视图创建自定义策略,本章节将使用JSON视图方式的策略,以为ModelArts用户授予开发环境的使用权限并且配置ModelArts用户OBS相关的最小化权限项为例,指导您进行自定义策略配置。

涉及到其他更多功能和依赖服务的自定义策略内容参见ModelArts Standard策略权限管理章节。

更多关于创建自定义策略操作和参数说明请参见创建自定义策略

如果一个自定义策略中包含多个服务的授权语句,这些服务必须是同一属性,即都是全局级服务或者项目级服务。

由于OBS为全局服务,ModelArts为项目级服务,所以需要创建两条“作用范围”别为“全局级服务”以及“项目级服务”的自定义策略,然后将两条策略同时授予用户。

  1. 创建ModelArts相关OBS的最小化权限的自定义策略。
    登录IAM控制台,在权限管理>权限页面,单击“创建自定义策略”。参数配置说明如下:
  2. 创建ModelArts开发环境的使用权限的自定义策略,如图3所示。参数配置说明如下:
  3. 在IAM控制台创建用户组之后,将步骤1中创建的自定义策略授权给该用户组。
  4. 在IAM控制台创建用户,并将其加入3中创建的用户组。
  5. 新创建的用户登录控制台,切换至授权区域,验证权限:
    • 在“服务列表”中选择ModelArts,进入ModelArts主界面,单击“数据管理> 数据集”,如果无法进行创建(当前仅包含开发环境的使用权限),表示仅为ModelArts用户授予开发环境的使用权限已生效。
    • 在“服务列表”中选择除ModelArts,进入ModelArts主界面,单击“开发环境>Notebook>创建”,如果可以成功访问“存储配置”项对应的OBS路径,表示为用户配置的OBS相关权限已生效。

ModelArts依赖的OBS权限自定义策略样例

如下示例为ModelArts依赖OBS服务的最小化权限项,包含OBS桶和OBS对象的权限。授予示例中的权限您可以通过ModelArts正常访问OBS不受限制。

{
    "Version": "1.1",
    "Statement": [
        {
            "Action": [
                "obs:bucket:ListAllMybuckets",
                "obs:bucket:HeadBucket",
                "obs:bucket:ListBucket",
                "obs:bucket:GetBucketLocation",
                "obs:object:GetObject",
                "obs:object:GetObjectVersion",
                "obs:object:PutObject",
                "obs:object:DeleteObject",
                "obs:object:DeleteObjectVersion",
                "obs:object:ListMultipartUploadParts",
                "obs:object:AbortMultipartUpload",
                "obs:object:GetObjectAcl",
                "obs:object:GetObjectVersionAcl",
                "obs:bucket:PutBucketAcl",
                "obs:object:PutObjectAcl"
            ],
            "Effect": "Allow"
        }
    ]
}

ModelArts开发环境使用权限的自定义策略样例

{ 
    "Version": "1.1", 
    "Statement": [ 

        { 
            "Effect": "Allow", 
            "Action": [ 
                "modelarts:notebook:list", 
                "modelarts:notebook:create" ,
                "modelarts:notebook:get" ,
                "modelarts:notebook:update" ,
                "modelarts:notebook:delete" ,
                "modelarts:notebook:action" ,
                "modelarts:notebook:access" 
            ] 
        } 
    ] 
}

相关文档