华为云AI开发平台ModelArts管理员和开发者权限分离_云淘科技

对于中小规模团队,管理员往往希望对ModelArts资源进行主导分配,全局控制,而对于普通开发者只需关注自己实例的生命周期控制。对于开发者帐号,一般不会具有te_admin的权限,相应的权限也需要主帐号进行统一配置。本章节以使用Notebook进行项目开发为例,通过自定义策略配置实现管理员和开发者分离。

场景描述

以使用Notebook进行项目开发为例,管理员帐号需要拥有ModelArts专属资源池的完全控制权限,以及Notebook所有实例的访问和操作权限。

普通开发者使用开发环境,只需关注对自己Notebook实例的操作权限,包括对自己实例的创建、启动、停止、删除等权限以及周边依赖服务的权限。普通开发者不需要ModelArts专属资源池的操作权限,也不需要查看其他用户的Notebook实例。

图1 帐号关系示意图

配置管理员权限

管理员帐号需要拥有ModelArts专属资源池的完全控制权限,以及Notebook所有实例的访问和操作权限。可以通过以下配置流程实现管理员权限配置。

使用主帐号创建一个管理员用户组ModelArts_admin_group,将管理员帐号加入用户组ModelArts_admin_group中。具体操作请参见Step1 创建用户组并加入用户。
创建自定义策略。

使用管理员帐号登录控制台,单击右上角用户名,在下拉框中选择“统一身份认证”,进入IAM服务。

图2 登录控制台

创建自定义策略1,赋予用户IAM和OBS服务权限。在统一身份认证服务控制台的左侧菜单栏中,选择“权限管理> 权限”。单击右上角“创建自定义策略”,在“策略名称”中填入“Policy1_IAM_OBS”,策略配置方式选择JSON视图,输入策略内容,单击“确定”。

图3 配置自定义策略1

自定义策略“Policy1_IAM_OBS”的具体内容如下,赋予用户IAM和OBS操作权限。可以直接复制粘贴。

{ 
    "Version": "1.1", 
    "Statement": [ 
        { 
            "Effect": "Allow", 
            "Action": [ 
                "iam:users:listUsers",
                "iam:projects:listProjects",
                "obs:object:PutObject",
                "obs:object:GetObject",
                "obs:object:GetObjectVersion",
                "obs:bucket:HeadBucket",
                "obs:object:DeleteObject",
                "obs:bucket:CreateBucket",
                "obs:bucket:ListBucket"
                ] 
        }
    ] 
}

重复2.b创建自定义策略2,赋予用户依赖服务ECS、SWR、MRS和SMN的操作权限,ModelArts的操作权限。“策略名称”为“Policy2_AllowOperation”,策略配置方式选择JSON视图,输入策略内容,单击“确定”。

自定义策略“Policy2_AllowOperation”的具体内容如下,赋予用户依赖服务ECS、SWR、MRS和SMN的操作权限,ModelArts的操作权限。可以直接复制粘贴。

{ 
    "Version": "1.1", 
    "Statement": [ 
        { 
            "Effect": "Allow", 
            "Action": [ 
                "ecs:serverKeypairs:list",
                "ecs:serverKeypairs:get",
                "ecs:serverKeypairs:delete",
                "ecs:serverKeypairs:create",
                "swr:repository:getNamespace",
                "swr:repository:listNamespaces",
                "swr:repository:deleteTag",
                "swr:repository:getRepository",
                "swr:repository:listTags",
                "swr:instance:createTempCredential",
                "mrs:cluster:get",
                "modelarts:*:*"
            ] 
        }
    ] 
}

将2创建的自定义策略授权给管理员用户组ModelArts_admin_group。

在统一身份认证服务控制台的左侧菜单栏中,选择“用户组”。在用户组页面单击对应用户组名称ModelArts_admin_group操作列的“授权”,勾选策略“Policy1_IAM_OBS”和“Policy2_AllowOperation”。单击“下一步”。

图4 给管理员用户组授权

选择授权范围方案为所有资源,单击“确定”。

图5 选择用户组授权范围

给管理员用户配置ModelArts委托授权,允许ModelArts服务在运行时访问OBS等依赖服务。

使用主帐号登录ModelArts的管理控制台,在左侧导航栏单击“全局配置”,进入“全局配置”页面。
单击“添加授权”。在“访问授权”页面,在“授权对象类型”下面选择“IAM子用户”,“授权对象”选择管理员的帐号,选择“新增委托”,“权限配置”选择“普通用户”。管理员不做权限控制,此处默认使用普通用户委托即可。

图6 配置管理员用户委托授权

勾选“我已经详细阅读并同意《 ModelArts服务声明 》”,单击“创建”。

测试管理员用户权限。

使用管理员用户登录ModelArts管理控制台。在登录页面,请使用“IAM用户登录”方式进行登录。

首次登录会提示修改密码,请根据界面提示进行修改。

在ModelArts控制台的左侧导航栏中,选择“专属资源池”,单击创建,未提示权限不足,表明管理员用户的权限配置成功。

配置开发者权限

开发者权限需要通过IAM的细粒度授权控制实现,可以通过以下配置流程实现开发者权限配置。

使用主帐号创建一个开发者用户组user_group,将开发者帐号加入用户组user_group中。具体操作请参见Step1 创建用户组并加入用户。
创建自定义策略。

使用主帐号登录控制台,单击右上角用户名,在下拉框中选择“统一身份认证”,进入IAM服务。

图7 登录控制台

创建自定义策略3,拒绝用户操作操作ModelArts专属资源池并拒用户查看其它用户的Notebook。

在统一身份认证服务控制台的左侧菜单栏中,选择“权限管理> 权限”。单击右上角“创建自定义策略”,“策略名称”为“Policy3_DenyOperation”,策略配置方式选择JSON视图,输入策略内容,单击“确定”。

自定义策略“Policy3_DenyOperation”的具体内容如下,可以直接复制粘贴。

{ 
    "Version": "1.1", 
    "Statement": [ 
       	{
            "Effect": "deny", 
            "Action": [
                "modelarts:pool:create",
                "modelarts:pool:update",
                "modelarts:pool:delete",
		"modelarts:notebook:listAllNotebooks"
            ]			
			
		}
    ] 
}

将自定义策略授权给开发者用户组user_group。

在统一身份认证服务控制台的左侧菜单栏中,选择“用户组”。在用户组页面单击对应用户组名称user_group操作列的“授权”,勾选策略“Policy1_IAM_OBS”、“Policy2_AllowOperation”和“Policy3_DenyOperation”。单击“下一步”。

图8 给用户组授权

选择授权范围方案为所有资源,单击“确定”。

图9 选择用户组授权范围

给开发者用户配置ModelArts委托授权,允许ModelArts服务在运行时访问OBS等依赖服务。

使用主帐号登录ModelArts的管理控制台,在左侧导航栏单击“全局配置”,进入“全局配置”页面。
单击“添加授权”。在“访问授权”页面,在“授权对象类型”下面选择“IAM子用户”,“授权对象”选择开发者的帐号,“委托选择”选择“新增委托”,“委托名称”设置为“ma_agency_develop_user”,“权限配置”选择“自定义”,“权限名称”勾选“OBS Administrator”。开发者用户只需要配置OBS的委托授权即可,允许开发者用户在使用Notebook时,与OBS服务交互。

图10 配置开发者用户的委托授权

勾选“我已经详细阅读并同意《 ModelArts服务声明 》”,单击“创建”。
在“全局配置”页面,再次单击“添加授权”,进入“访问授权”页面,为其他开发者用户配置委托。

“授权对象类型”选择“IAM子用户”,“授权对象”选择开发者的帐号,“委托选择”选择“已有委托”,“委托名称”勾选上一步创建的“ma_agency_develop_user”,

测试开发者用户权限。

使用user_group用户组中任意一个子用户登录ModelArts管理控制台。在登录页面,请使用“IAM用户登录”方式进行登录。

首次登录会提示修改密码,请根据界面提示进行修改。

在ModelArts左侧菜单栏中,选择“专属资源池”,单击创建,界面未提示权限不足,表明开发者用户的权限配置成功。

图11 提示权限不足

父主题: 典型场景配置实践

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家