
# 创建IAM用户并授予DataArts Studio权限-身份策略
如果您需要对使用DataArts Studio服务的用户进行身份策略的权限管理，您可以使用统一身份认证服务（Identity and Access Management，简称IAM）。通过IAM，您可以：
- 根据企业的业务组织，在您的华为账号中，给企业中不同职能部门的员工创建IAM用户，让员工拥有唯一安全凭证，并使用DataArts Studio资源。
- 根据企业用户的职能，设置不同的访问权限，以达到用户之间的权限隔离。
- 将DataArts Studio资源委托给更专业、高效的其他华为账号或者云服务，这些账号或者云服务可以根据权限进行代运维。
 
如果华为账号已经能满足您的要求，不需要创建独立的IAM用户，您可以跳过本章节，不影响您使用DataArts Studio服务的其他功能。
本章节为您介绍使用身份策略的授权方法，操作流程如[授权示例流程]所示。
#### 背景信息
给用户组授权之前，请您了解DataArts Studio的权限体系，本文以对IAM用户进行身份策略授权为例进行说明。
DataArts Studio权限的详细描述，请参见[DataArts Studio权限管理](https://support.huaweicloud.com/zh-cn/productdesc-dataartsstudio/dataartsstudio_07_012.html)。
图1权限体系   
![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002457951938.png "点击放大")
#### 约束与限制
- 系统身份策略为用户提供了实例及工作空间的相关权限，在另配依赖服务权限后，还需注意具体工作空间内的业务操作权限由工作空间角色提供。
- 当为某IAM用户同时配置**角色与策略权限** （DAYU Administrator、DAYU User或DataArts Studio User系统角色）和**身份策略权限** （DataArtsStudioFullAccessPolicy、DataArtsStudioOperatorPolicy、DataArtsStudioReadOnlyPolicy系统策略或自定义身份策略）时，出于兼容性考虑，此IAM用户最终所拥有的权限如下：
  - 如果二者配置的权限中存在拒绝（deny）授权项，则拒绝策略优先生效。
  
  - 对于二者配置的权限中的允许（allow）授权项，则允许策略取二者并集。
    
 
 #### 授权示例流程
图2身份策略授权流程   
![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002060094573.png "点击放大")
1. 创建用户或用户组。 
   使用华为账号登录统一身份认证服务IAM控制台，创建用户或用户组。具体操作请参见[创建用户](https://support.huaweicloud.com/usermanual-iam5/iam_01_1144.html)或[创建用户组](https://support.huaweicloud.com/usermanual-iam5/iam_01_1153.html)章节。
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/public_sys-resources/note_3.0-zh-cn.png)
   仅当创建IAM用户时的访问方式勾选"编程访问"后，此IAM用户才能通过认证鉴权，从而使用API、SDK等方式访问DataArts Studio。
   
   
2. 将系统身份策略附加至用户或用户组。 
   为用户或用户组授予DataArts Studio系统策略，例如DataArtsStudioFullAccessPolicy、DataArtsStudioOperatorPolicy或DataArtsStudioReadOnlyPolicy，或将系统策略附加至用户或用户组。具体操作请参见[将系统身份策略附加至用户或用户组](https://support.huaweicloud.com/usermanual-iam5/iam_01_0912.html)章节。
   
   
3. 为用户或用户组授权依赖服务权限。 
   当前DataArts Studio服务涉及的依赖服务权限如[表1]所示。具体授权操作步骤如下：
   1. 登录[华为云IAM控制台](https://console.huaweicloud.com/iam)。
   
   2. 在IAM控制台，进入"权限管理 \> 角色与策略 \>创建自定义策略"，切换至JSON视图，按照文档提供的策略内容，分别创建**DataArtsStudio_PermissionsOfDependentServices_global** 和**DataArtsStudio_PermissionsOfDependentServices_region**策略。
   
   3. 进入"用户"或"用户组"，单击待授权对象后的"授权"，进入授权操作。首先选择"角色与策略授权"，勾选如下系统角色和自定义策略为对象授权。
      - 系统角色DIS Operator
      
      - 自定义策略DataArtsStudio_PermissionsOfDependentServices_global
      
      - 自定义策略DataArtsStudio_PermissionsOfDependentServices_region
       
   
   4. （可选）仅当在数据开发组件作业中通过**DLI Spark**节点选择自定义镜像时，需要容器镜像服务中的镜像读取权限。使用SWR管理员权限账号登录容器镜像服务SWR控制台，在左侧导航栏选择"我的镜像"，进入所需自定义镜像的镜像详情页面，为用户授予该镜像的读取权限。
   
   5. 依赖服务权限授权结束。
   
   
    表1开发者用户的依赖服务最小权限合集 
   |   权限类型   |                                                                                                                                                                                                                                                                                                                                                                                                                角色与策略权限-系统角色                                                                                                                                                                                                                                                                                                                                                                                                                |                                                                                                                                                                                                                                                     角色与策略权限-自定义策略                                                                                                                                                                                                                                                      |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           角色与策略权限-自定义策略                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   |---|---|---|---|
   | **是否必配** | **必配**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | **必配**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | **必配**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   | **权限**   | - DIS Operator  - DIS User  - （可选，不推荐）SWR Admin 说明： 仅当在数据开发组件作业中使用**DLI Spark**节点选择自定义镜像时，需要容器镜像服务中的镜像读取权限。 推荐通过[镜像授权管理](https://support.huaweicloud.com/usermanual-swr/swr_01_0015.html)，添加所需镜像的读取权限。不推荐直接为用户授予SWR Admin系统角色， 可能存在权限过大的风险。    | 依赖的全局级（global级）云服务的自定义策略**DataArtsStudio** **_PermissionsOfDependentServices_global** ： ``` { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "obs:object:GetObject", "obs:object:PutObject", "obs:object:DeleteObject", "obs:bucket:GetBucketStorage", "obs:bucket:GetBucketLocation", "obs:bucket:ListAllMyBuckets", "obs:bucket:ListBucket", "obs:bucket:ListBucketVersions", "obs:bucket:CreateBucket", "obs:bucket:DeleteBucket", "rms:resources:list", "iam:agencies:listAgencies" ] } ] } ``` | 依赖的项目级（region级）云服务的自定义策略**DataArtsStudio_PermissionsOfDependentServices_region** ： ``` { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "cdm:cluster:get", "cdm:cluster:list", "cdm:cluster:create", "cdm:link:operate", "cdm:job:operate", "ces:*:get", "ces:*:list", "cloudtable:*:get", "cloudtable:*:list", "css:*:get", "css:*:list", "dli:queue:submitJob", "dli:queue:cancelJob", "dli:table:insertOverwriteTable", "dli:table:insertIntoTable", "dli:table:alterView", "dli:table:alterTableRename", "dli:table:compaction", "dli:table:truncateTable", "dli:table:alterTableDropColumns", "dli:table:alterTableSetProperties", "dli:table:alterTableChangeColumn", "dli:table:showSegments", "dli:table:alterTableRecoverPartition", "dli:table:dropTable", "dli:table:update", "dli:table:alterTableDropPartition", "dli:table:alterTableAddPartition", "dli:table:alterTableAddColumns", "dli:table:alterTableRenamePartition", "dli:table:delete", "dli:table:alterTableSetLocation", "dli:table:describeTable", "dli:table:showPartitions", "dli:table:showCreateTable", "dli:table:showTableProperties", "dli:table:select", "dli:resource:updateResource", "dli:resource:useResource", "dli:resource:getResource", "dli:resource:listAllResource", "dli:resource:deleteResource", "dli:database:explain", "dli:database:createDatabase", "dli:database:dropFunction", "dli:database:createFunction", "dli:database:displayAllDatabases", "dli:database:displayAllTables", "dli:database:displayDatabase", "dli:database:describeFunction", "dli:database:createView", "dli:database:createTable", "dli:database:showFunctions", "dli:database:dropDatabase", "dli:group:useGroup", "dli:group:updateGroup", "dli:group:listAllGroup", "dli:group:getGroup", "dli:group:deleteGroup", "dli:column:select", "dli:jobs:start", "dli:jobs:export", "dli:jobs:update", "dli:jobs:listAll", "dli:jobs:get", "dli:jobs:delete", "dli:jobs:create", "dli:jobs:stop", "dli:variable:update", "dli:variable:delete", "dws:cluster:list", "dws:cluster:getDetail", "dws:openAPICluster:getDetail", "ecs:servers:get", "ecs:servers:list", "ecs:servers:stop", "ecs:servers:start", "ecs:flavors:get", "ecs:cloudServerFlavors:get", "ecs:cloudServers:list", "ecs:availabilityZones:list", "ges:graph:access", "ges:metadata:create", "ges:jobs:list", "ges:graph:operate", "ges:jobs:getDetail", "ges:graph:getDetail", "ges:graph:list", "ges:metadata:list", "ges:metadata:getDetail", "ges:metadata:delete", "ges:metadata:operate", "kms:cmk:get", "kms:cmk:list", "kms:cmk:create", "kms:cmk:decrypt", "kms:cmk:encrypt", "kms:dek:create", "kms:dek:encrypt", "kms:dek:decrypt", "mrs:cluster:get", "mrs:cluster:list", "mrs:job:get", "mrs:job:list", "mrs:job:submit", "mrs:job:stop", "mrs:job:delete", "mrs:sql:execute", "mrs:sql:cancel", "rds:*:get", "rds:*:list", "smn:topic:publish", "smn:topic:list", "vpc:publicIps:list", "vpc:publicIps:get", "vpc:vpcs:get", "vpc:vpcs:list", "vpc:subnets:get", "vpc:securityGroups:get", "vpc:firewalls:list", "vpc:routeTables:list", "vpc:subNetworkInterfaces:list" ] } ] } ``` |
      
   
   
4. 为用户自定义工作空间角色，并将其添加到工作空间成员、配置角色。 
   对于系统策略授权的IAM用户而言，DataArts Studio工作空间角色决定了其在工作空间内的权限，当前有管理员、开发者、运维者和访客这四种预置角色可被分配。如果这四种预置角色可以满足您的使用需求，则无需自定义工作空间角色，直接将用户添加到工作空间成员、配置预置角色即可；否则，请您创建自定义角色，再将用户添加到工作空间成员、配置自定义角色。自定义工作空间角色的具体操作请参见[（可选）自定义工作空间角色](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0107.html)，添加工作空间成员并配置角色的具体操作请参见[添加工作空间成员和角色](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0117.html)。角色的权限说明请参见[权限列表](https://support.huaweicloud.com/productdesc-dataartsstudio/dataartsstudio_07_013.html)章节。
   
   
5. 用户登录并验证权限 
   新创建的用户登录控制台，切换至授权区域，验证权限，例如：
   - 在"服务列表"中选择数据治理中心，进入DataArts Studio实例卡片。从实例卡片进入控制台首页后，确认能否正常查看工作空间列表情况。
   
   - 进入已添加当前用户的工作空间业务模块（例如管理中心），查看能否根据所配置的工作空间角色，正常进行业务操作。
   
   
   
   
 
#### DataArts Studio自定义身份策略样例
如果系统预置的DataArts Studio系统策略不满足您的授权要求，可以创建自定义身份策略。自定义身份策略中可以添加的授权项（Action）请参考[权限及授权项说明](https://support.huaweicloud.com/api-dataartsstudio/dataartsstudio_02_0321.html)章节。
目前华为云平台支持以下两种方式创建自定义身份策略：
- 可视化视图创建自定义身份策略：无需了解策略语法，按可视化视图导航栏选择云服务、操作、资源、条件等策略内容，可自动生成策略。
- JSON视图创建自定义身份策略：可以在选择策略模板后，根据具体需求编辑策略内容；也可以直接在编辑框内编写JSON格式的策略内容。
 
具体创建步骤请参见：[创建自定义身份策略并附加至主体](https://support.huaweicloud.com/usermanual-iam5/iam_01_0917.html)章节。
您在创建自定义身份策略时，可以通过资源类型（Resource）元素来选择特定资源，以及条件键（Condition）元素来控制策略何时生效。支持的资源类型和条件键请参考[权限及授权项说明](https://support.huaweicloud.com/api-dataartsstudio/dataartsstudio_02_0321.html)章节。下面为您介绍常用的DataArts Studio自定义身份策略样例。
![](https://support.huaweicloud.com/usermanual-dataartsstudio/public_sys-resources/note_3.0-zh-cn.png)
当前接口限制下，自定义身份策略指定资源类型时，由于部分操作不支持指定具体的workspace或instance资源，会导致权限配置不符合预期。如允许（allow）某个不支持指定资源的操作，但又为其指定了具体资源时，会导致所有资源操作均被拒绝；拒绝（deny）某个不支持指定资源的操作，但又为其指定了具体资源时，会导致所有资源操作均被允许。
因此，在自定义身份策略需要指定资源类型时，需要剔除这类操作，然后将这类操作独立为不指定资源或指定全局资源的身份策略，使用多个身份策略一起为用户赋权。不指定资源或指定全局资源的身份策略，即JSON策略内容中不带Resource元素，或者Resource内容如下所示：
```
"Resource": [
                "DataArtsStudio:*:*:workspace:*",
                "DataArtsStudio:*:*:instance:*"
            ]
```
当前DataArts Studio不支持指定具体资源的操作汇总如下：
- 不支持指定workspace资源，仅支持指定instance资源：
  - DataArtsStudio:workspace:create
  
  - DataArtsStudio:workspace:list
   
- 不支持指定instance资源或workspace资源：
  - DataArtsStudio:instance:create
  
  - DataArtsStudio:instance:get
  
  - DataArtsStudio:instance:list
  
  - DataArtsStudio:instance:resize
  
  - DataArtsStudio:instance:getAgency
  
  - DataArtsStudio:instance:createAgency
  
  - DataArtsStudio:instance:uploadDriver
  
  - DataArtsStudio:instance:deleteDriver
  
  - DataArtsStudio:instance:listDrivers
  
  - DataArtsStudio:instance:listTags
  
  - DataArtsStudio:workspace:listTags
   
 
- 示例1：授权查询实例和工作空间的权限。
  ```
  {
      "Version": "5.0",
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "DataArtsStudio:workspace:get",
                  "DataArtsStudio:instance:get"
              ]
          }
      ]
  }
  ```
  
- 示例2：多个授权项策略 一个自定义身份策略中可以包含多个授权项，且除了可以包含本服务的授权项外，还可以包含其他服务的授权项。多个授权语句策略描述如下：
  ```
  {
      "Version": "5.0",
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "DataArtsStudio:workspace:get",
                  "DataArtsStudio:instance:get"
              ]
          },
          {
              "Effect": "Allow",
              "Action": [
                  "iam:groups:get",
                  "iam:users:get"
              ]
          }
      ]
  }
  ```
  
 
