更新时间:2024-09-14 gmt 08:00

管理员和开发者权限分离-九游平台

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

场景描述

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

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

图1 账号关系示意图

配置管理员权限

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

  1. 使用主账号创建一个管理员用户组modelarts_admin_group,将管理员账号加入用户组modelarts_admin_group中。具体操作请参见step1 创建用户组并加入用户
  2. 创建自定义策略。
    1. 使用管理员账号登录控制台,单击右上角用户名,在下拉框中选择“统一身份认证”,进入iam服务。
      图2 登录控制台
    2. 创建自定义策略1,赋予用户iam和obs服务权限。在统一身份认证服务控制台的左侧菜单栏中,选择权限管理> 权限。单击右上角“创建自定义策略”,在“策略名称”中填入“policy1_iam_obs”,策略配置方式选择json视图,输入策略内容,单击“确定”
      自定义策略“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"
                      ] 
              }
          ] 
      }
    3. 重复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:*:*"
                  ] 
              }
          ] 
      }
  3. 2创建的自定义策略授权给管理员用户组modelarts_admin_group。
    1. 在统一身份认证服务控制台的左侧菜单栏中,选择用户组。在用户组页面单击对应用户组名称modelarts_admin_group操作列的“授权”,勾选策略“policy1_iam_obs”“policy2_allowoperation”。单击“下一步”
    2. 选择授权范围方案为所有资源,单击“确定”
  4. 给管理员用户配置modelarts委托授权,允许modelarts服务在运行时访问obs等依赖服务。
    1. 使用主账号登录modelarts的管理控制台,在左侧导航栏单击“权限管理”,进入“权限管理”页面。
    2. 单击“添加授权”。在“访问授权”页面,在“授权对象类型”下面选择“iam子用户”“授权对象”选择管理员的账号,选择“新增委托”“权限配置”选择“普通用户”。管理员不做权限控制,此处默认使用普通用户委托即可。
    3. 勾选“我已经详细阅读并同意《 modelarts服务声明 》”,单击“创建”
  5. 测试管理员用户权限。
    1. 使用管理员用户登录modelarts管理控制台。在登录页面,请使用“iam用户登录”方式进行登录。

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

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

配置开发者权限

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

  1. 使用主账号创建一个开发者用户组user_group,将开发者账号加入用户组user_group中。具体操作请参见step1 创建用户组并加入用户
  2. 创建自定义策略。
    1. 使用主账号登录控制台,单击右上角用户名,在下拉框中选择“统一身份认证”,进入iam服务。
      图3 登录控制台
    2. 创建自定义策略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"
                  ]			
      			
      		}
          ] 
      }
  3. 将自定义策略授权给开发者用户组user_group。
    1. 在统一身份认证服务控制台的左侧菜单栏中,选择用户组。在用户组页面单击对应用户组名称user_group操作列的“授权”,勾选策略“policy1_iam_obs”“policy2_allowoperation”“policy3_denyoperation”。单击“下一步”
    2. 选择授权范围方案为所有资源,单击“确定”
  4. 给开发者用户配置modelarts委托授权,允许modelarts服务在运行时访问obs等依赖服务。
    1. 使用主账号登录modelarts的管理控制台,在左侧导航栏单击“权限管理”,进入“权限管理”页面。
    2. 单击“添加授权”。在“访问授权”页面,在“授权对象类型”下面选择“iam子用户”“授权对象”选择开发者的账号,“委托选择”选择“新增委托”“委托名称”设置为“ma_agency_develop_user”“权限配置”选择“自定义”“权限名称”勾选“obs administrator”。开发者用户只需要配置obs的委托授权即可,允许开发者用户在使用notebook时,与obs服务交互。
    3. 勾选“我已经详细阅读并同意《 modelarts服务声明 》”,单击“创建”
    4. “权限管理”页面,再次单击“添加授权”,进入“访问授权”页面,为其他开发者用户配置委托。

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

  5. 测试开发者用户权限。
    1. 使用user_group用户组中任意一个子账号登录modelarts管理控制台。在登录页面,请使用“iam用户登录”方式进行登录。

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

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

相关文档

网站地图