云服务器内容精选

  • ModelArts权限管理 默认情况下,管理员创建的 IAM 用户没有任何权限,需要将其加入用户组,并给用户组授予策略,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于授予的权限对云服务进行操作。 ModelArts部署时通过物理区域划分,为项目级服务,授权时“选择授权范围方案”可以选择“指定区域项目资源”,如果授权时指定了区域(如华北-北京4)对应的项目(cn-north-4),则该权限仅对此项目生效;简单的做法是直接选择“所有资源”。 ModelArts也支持企业项目,所以选择授权范围方案时,也可以指定企业项目。具体操作参见《创建用户组并授权》。 IAM在对用户组授权的时候,并不是直接将具体的某个权限进行赋权,而是需要先将权限加入到“策略”当中,再把策略赋给用户组。为了方便用户的权限管理,各个云服务都提供了一些预置的“系统策略”供用户直接使用。如果预置的策略不能满足您的细粒度权限控制要求,则可以通过“自定义策略”来进行精细控制。 表1列出了ModelArts的所有预置系统策略。 表1 ModelArts系统策略 策略名称 描述 类型 ModelArts FullAccess ModelArts管理员用户,拥有所有ModelArts服务的权限 系统策略 ModelArts CommonOperations ModelArts操作用户,拥有所有ModelArts服务操作权限除了管理专属资源池的权限 系统策略 ModelArts Dependency Access ModelArts服务的常用依赖服务的权限 系统策略 通常来讲,只给管理员开通“ModelArts FullAccess”,如果不需要太精细的控制,直接给所有用户开通“ModelArts CommonOperations”即可满足大多数小团队的开发场景诉求。如果您希望通过自定义策略做深入细致的权限控制,请阅读ModelArts的IAM权限控制详解。 ModelArts的权限不会凌驾于其他服务的权限之上,当您给用户进行ModelArts赋权时,系统不会自动对其他相关服务的相关权限进行赋权。这样做的好处是更加安全,不会出现预期外的“越权”,但缺点是,您必须同时给用户赋予不同服务的权限,才能确保用户可以顺利完成某些ModelArts操作。 举例,如果用户需要用OBS中的数据进行训练,当已经为IAM用户配置ModelArts训练权限时,仍需同时为其配置对应的OBS权限(读、写、列表),才可以正常使用。其中OBS的列表权限用于支持用户从ModelArts界面上选择要进行训练的数据路径;读权限主要用于数据的预览以及训练任务执行时的数据读取;写权限则是为了保存训练结果和日志。 对于个人用户或小型组织,一个简单做法是为IAM用户配置“作用范围”为“全局级服务”的“Tenant Administrator”策略,这会使用户获得除了IAM以外的所有用户权限。在获得便利的同时,由于用户的权限较大,会存在相对较大的安全风险,需谨慎使用。(对于个人用户,其默认IAM账号就已经属于admin用户组,且具备Tenant Administrator权限,无需额外操作) 当您需要限制用户操作,仅为ModelArts用户配置OBS相关的最小化权限项,具体操作请参见OBS权限管理。对于其他云服务,也可以进行精细化权限控制,具体请参考对应的云服务文档。
  • 严格授权模式 严格授权模式是指在IAM中创建的子账号必须由账号管理员显式在IAM中授权,才能访问ModelArts服务,管理员用户可以通过授权策略为普通用户精确添加所需使用的ModelArts功能的权限。 相对的,在非严格授权模式下,子账号不需要显式授权就可以使用ModelArts,管理员需要在IAM上为子账号配置Deny策略来禁止子账号使用ModelArts的某些功能。 账号的管理员用户可以在“权限管理”页面修改授权模式。 如无特殊情况,建议优先使用严格授权模式。在严格授权模式下,子账号要使用ModelArts的功能都需经过授权,可以更精确的控制子账号的权限范围,达成权限最小化的安全策略。
  • 用工作空间限制资源访问 工作空间是ModelArts面向企业用户提供的一个高阶功能,用于进一步将用户的资源划分在多个逻辑隔离的空间中,并支持以空间维度进行访问的权限限定。目前工作空间功能是“受邀开通”状态,作为企业用户您可以通过您对口的技术支持经理申请开通。 在开通工作空间后,系统会默认为您创建一个“default”空间,您之前所创建的所有资源,均在该空间下。当您创建新的工作空间之后,相当于您拥有了一个新的“ModelArts分身”,您可以通过菜单栏的左上角进行工作空间的切换,不同工作空间中的工作互不影响。 创建工作空间时,必须绑定一个企业项目。多个工作空间可以绑定到同一个企业项目,但一个工作空间不可以绑定多个企业项目。借助工作空间,您可以对不同用户的资源访问和权限做更加细致的约束,具体为如下两种约束: 只有被授权的用户才能访问特定的工作空间(在创建、管理工作空间的页面进行配置),这意味着,像数据集、算法等AI资产,均可以借助工作空间做访问的限制。 在前文提到的权限授权操作中,如果“选择授权范围方案”时设定为“指定企业项目资源”,那么该授权仅对绑定至该企业项目的工作空间生效。 工作空间的约束与权限授权的约束是叠加生效的,意味着对于一个用户,必须同时拥有工作空间的访问权和训练任务的创建权限(且该权限覆盖至当前的工作空间),他才可以在这个空间里提交训练任务。 对于已经开通企业项目但没有开通工作空间的用户,其所有操作均相当于在“default”企业项目里进行,请确保对应权限已覆盖了名为default的企业项目。 对于未开通企业项目的用户,不受上述约束限制。
  • 理解ModelArts的权限与委托 图1 权限管理抽象 ModelArts与其他服务类似,功能都通过IAM的权限来进行控制。比如,用户(此处指IAM子账号,而非租户)希望在ModelArts创建训练作业,则该用户必须拥有 "modelarts:trainJob:create" 的权限才可以完成操作(无论界面操作还是API调用)。关于如何给一个用户赋权(准确讲是需要先将用户加入用户组,再面向用户组赋权),可以参考IAM的文档《权限管理》。 而ModelArts还有一个特殊的地方在于,为了完成AI计算的各种操作,AI平台在任务执行过程中需要访问用户的其他服务,典型的就是训练过程中,需要访问OBS读取用户的训练数据。在这个过程中,就出现了ModelArts“代表”用户去访问其他云服务的情形。从安全角度出发,ModelArts代表用户访问任何云服务之前,均需要先获得用户的授权,而这个动作就是一个“委托”的过程。用户授权ModelArts再代表自己访问特定的云服务,以完成其在ModelArts平台上执行的AI计算任务。 综上,对于图1 权限管理抽象可以做如下解读: 用户访问任何云服务,均是通过标准的IAM权限体系进行访问控制。用户首先需要具备相关云服务的权限(根据您具体使用的功能不同,所需的相关服务权限多寡亦有差异)。 权限:用户使用ModelArts的任何功能,亦需要通过IAM权限体系进行正确权限授权。 委托:ModelArts上的AI计算任务执行过程中需要访问其他云服务,此动作需要获得用户的委托授权。
  • 示例流程 图1 给用户授权SCM权限流程 创建用户组并授权 在IAM控制台创建用户组,并授予SSL证书管理服务的管理员权限“SCM Administrator”。 创建用户并加入用户组 在IAM控制台创建用户,并将其加入1中创建的用户组。 用户登录并验证权限 新创建的用户登录控制台,切换至授权区域,验证权限: 在“服务列表”中选择 云证书管理服务 ,如果未提示权限不足,表示“SCM Administrator”已生效。
  • 示例流程 图1 给用户授权服务权限流程 创建用户组并授权 在IAM控制台创建用户组,并授予漏洞管理服务权限“VSS Administrator”。 创建用户并加入用户组 在IAM控制台创建用户,并将其加入1中创建的用户组。 用户登录并验证权限 新创建的用户登录控制台,切换至授权区域,验证权限: 在“服务列表”中选择除漏洞管理服务外(假设当前策略仅包含“VSS Administrator”)的任一服务,若提示权限不足,表示“VSS Administrator”已生效。
  • 示例流程 图1 给用户授权流程 创建用户组并授权 在IAM控制台创建用户组,并授予只读权限“RDS ReadOnlyAccess”。 如果需要使用到对接其他服务的一些功能时,除了需要配置“RDS ReadOnlyAccess”权限外,还需要配置对应服务的权限。 创建用户并加入用户组 用户登录并验证权限 新创建的用户登录控制台,切换至授权区域,验证权限: 在“服务列表”中选择“云数据库 RDS”,进入主界面,单击右上角“购买数据库实例”,尝试购买数据库,如果无法购买数据库(假设当前权限仅包含RDS ReadOnlyAccess),表示“RDS ReadOnlyAccess”已生效。 在“服务列表”中选择除“云数据库 RDS”外(假设当前策略仅包含RDS ReadOnlyAccess)的任一服务,若提示权限不足,表示“RDS ReadOnlyAccess”已生效。
  • U CS 权限类型 UCS权限管理是在IAM与Kubernetes的角色访问控制(RBAC)的能力基础上,打造的细粒度权限管理功能。支持UCS服务资源权限、集群中Kubernetes资源权限两种维度的权限控制,这两种权限针对的是不同类型的资源,在授权机制上也存在一些差异,具体如下: UCS服务资源权限:是基于IAM系统策略的授权。UCS服务资源包括容器舰队、集群、联邦实例等等,管理员可以针对用户的角色(如开发、运维)进行差异化授权,精细控制他们对UCS资源的使用范围。 集群中Kubernetes资源权限:是基于Kubernetes RBAC能力的授权,可授予针对集群内Kubernetes资源对象的细化权限,通过权限设置可以让不同的用户有操作不同Kubernetes资源对象(如工作负载、任务、服务等Kubernetes原生资源)的权限。 UCS的权限可以从使用的阶段来看,第一个阶段是创建和管理基础设施资源的权限,也就是拥有创建容器舰队、注册集群、开通集群联邦等操作的权限;第二个阶段是使用集群Kubernetes资源对象(如工作负载、服务等)的权限;第三个阶段是监控运维基础设施资源以及Kubernetes资源的权限。其中,第一个和第三个阶段属于UCS服务资源权限,在IAM控制台按照IAM系统策略的方式授予;第二个阶段属于集群中Kubernetes资源权限,由管理员在UCS控制台“权限管理”页面创建,并在“容器舰队”页面完成权限与特定舰队或集群的关联。
  • 基本概念说明 UCS权限管理包含如下基本概念,其关系如图3所示。 用户:由管理员账号在 统一身份认证 服务(IAM)中创建的用户,是云服务的使用人员,具有独立的身份凭证(密码和访问密钥),根据账号授予的权限使用资源。 用户组:用户组是用户的集合,IAM可以通过用户组功能实现用户的授权。您创建的IAM用户,加入特定用户组后,将具备对应用户组的权限。例如,管理员为用户组授予UCS FullAccess权限后,其中的用户将具备UCS服务的管理员权限。当某个用户加入多个用户组时,此用户同时拥有多个用户组的权限,即多个用户组权限的全集。 权限:由UCS管理员定义的某个或某些用户对集群中Kubernetes资源的操作范围,UCS预置了几个常用权限,包括管理员权限、只读权限、开发权限,同时也支持用户自定义权限。更多介绍请参见创建权限。 舰队:舰队是多个集群的集合,管理员可以使用舰队来实现关联集群的分类。舰队还可以实现多集群的统一管理,包括权限管理、安全策略、配置管理以及多集群编排等统一管理的能力。舰队与权限是多对多的关系,即一个权限可以关联多个舰队,一个舰队也可以关联多个权限。 图3 权限关系示意图
  • MPC系统权限 默认情况下,新建的IAM用户没有任何权限,您需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 新建的IAM用户如果需要使用MPC服务控制台,必须至少具备如下服务的权限: MPC Administrator:MPC服务权限 OBS Administrator:OBS服务权限 SMN FullAccessPolicy:SMN服务策略。非必选,仅配置 消息通知 时,才需要添加此策略。 MPC部署时通过物理区域划分,为项目级服务。授权时,“作用范围”需要选择“区域级项目”,然后在指定区域(如华北-北京四)对应的项目(cn-north-4)中设置相关权限,并且该权限仅对此项目生效;如果在“所有项目”中设置权限,则该权限在所有区域项目中都生效。访问MPC时,需要先切换至授权区域。 目前MPC系统角色只有“MPC Administrator”,具有 媒体处理 服务里的所有操作权限。 若您需要对除MPC之外的其它服务授权,IAM支持服务的所有权限请参见系统权限。
  • 示例流程 图1 给用户授予MPC权限流程 创建用户组并授权 在IAM控制台创建用户组,并授予MPC管理员权限“MPC Administrator”。 创建用户并加入用户组 在IAM控制台创建用户,并将其加入1中创建的用户组。 用户登录并验证权限 新创建的用户登录控制台,切换至授权区域,验证权限: 在“服务列表”中选择媒体处理服务,能够操作所有功能,表示“MPC Administrator”已生效。 在“服务列表”中选择除媒体处理服务外的任一服务,若提示权限不足,表示“MPC Administrator”已生效。
  • 响应示例 状态码: 200 OK 请求响应成功 { "region" : "region", "name" : null, "role_id" : "0", "devuc_role_id_list" : null, "group_id" : "2a8c2da888c04a5eaff10d0787c90ea4", "can_view" : true, "can_edit" : true, "can_delete" : true, "can_add_host" : true, "can_manage" : true, "can_copy" : true, "create_time" : null, "update_time" : null, "role_type" : "cluster-creator" }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 region String 局点信息 role_id String 角色id devuc_role_id_list Array of strings 角色id列表 name String 角色名称 group_id String 主机集群id can_view Boolean 是否有查看权限 can_edit Boolean 是否有编辑权限 can_delete Boolean 是否有删除权限 can_add_host Boolean 是否有添加主机权限 can_manage Boolean 是否有权限管理权限 can_copy Boolean 是否有拷贝权限 create_time String 创建时间 update_time String 修改时间 role_type String 角色类型,project-customized:自定义角色;template-project-customized:系统自定义角色;template-customized-inst:系统角色;cluster-creator:集群创建者;project_admin 项目创建者
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 消息体的类型(格式) X-Auth-Token 是 String 用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值) 表3 请求Body参数 参数 是否必选 参数类型 描述 project_id 是 String 项目id role_id 是 String 角色id permission_name 是 String 权限名称,can_view:查看权限;can_edit:编辑权限;can_delete:删除权限;can_add_host:添加主机权限;can_manage:权限管理权限;can_copy:复制主机权限 permission_value 是 Boolean true 有权限,false 无权限
  • 请求示例 https://{endpoint}/v2/host-groups/2a8c2da888c04a5eaff10d0787c90ea4/permissions { "permission_name" : "can_delete", "permission_value" : true, "project_id" : "7e6caf3cd9a64d5b8ea451e38221892e", "role_id" : "c869ebc4000c4bb9a2605c4020450ab4" }