
# 使用ModelArts时提示"权限不足"，如何解决？
当您使用ModelArts时如果提示权限不足，请您按照如下指导对相关服务和用户进行授权，并检查用户权限。
本案例中以OBS权限不足为例，介绍如何为用户授予OBS服务权限。其他权限不足的场景也可以参考本案例操作，只是授权范围不同。不同业务场景下的授权范围请参考[权限依赖和委托](https://support.huaweicloud.com/permission-modelarts/modelarts_24_0081.html)章节。
由于ModelArts的使用权限依赖OBS服务的授权，您需要为用户授予OBS的系统权限。
- 如果您需要授予用户关于OBS的所有权限和ModelArts的基础操作权限，请参见[配置基础操作权限]。
- 如果您需要对用户使用OBS和ModelArts的权限进行精细化管理，进行自定义策略配置，请参见[创建ModelArts自定义策略]。
 #### 配置基础操作权限
使用ModelArts的基本功能，您需要为用户配置"作用范围"为"项目级服务"的"ModelArts CommonOperations"权限，由于ModelArts依赖OBS权限，您还需要登录IAM管理控制台为用户授予"作用范围"为"全局级服务"的"OBS Administrator"策略。
具体操作步骤如下：
1. 创建用户组。 
   [登录IAM管理控制台](https://console.huaweicloud.com/iam/#/iam/groups)，单击"用户组\>创建用户组"。在"创建用户组"界面，输入"用户组名称"单击"确定"。
   
   
2. 配置用户组权限。 
   在用户组列表中，单击步骤1新建的用户组右侧的"授权"，在用户组"授权"页面，您需要配置的权限如下：
   1. 配置"作用范围"为"项目级服务"的"ModelArts CommonOperations"权限，如下图所示，然后单击"确定"完成授权。
      ![](https://support.huaweicloud.com/modelarts_faq/public_sys-resources/note_3.0-zh-cn.png)
      区域级项目授权后只在授权区域生效，如果需要所有区域都生效，则所有区域都需要进行授权操作。
      
      
   
   2. 配置"作用范围"为"全局级服务"的"OBS Administrator"权限，然后单击"确定"完成授权。
   
   
   
   
3. [创建用户并加入用户组](https://support.huaweicloud.com/usermanual-iam/iam_02_0001.html)。
   
   在IAM控制台创建用户，并将其加入步骤1中创建的用户组。
   
   
4. [用户登录](https://support.huaweicloud.com/usermanual-iam/iam_01_0552.html)并验证权限。
   
   新创建的用户登录控制台，切换至授权区域，验证权限：
   - 在"服务列表"中选择ModelArts，进入ModelArts主界面，选择不同类型的专属资源池，在页面单击"创建"，如果无法进行创建（当前权限仅包含ModelArts CommonOperations），表"ModelArts CommonOperations"已生效。
   
   - 在"服务列表"中选择除ModelArts外（假设当前策略仅包含ModelArts CommonOperations）的任一服务，如果提示权限不足，表示"ModelArts CommonOperations"已生效。
   
   - 在"服务列表"中选择ModelArts，进入ModelArts主界面，单击"数据管理 \> 数据集 \> 创建数据集"，如果可以成功访问对应的OBS路径，表示全局级服务的"OBS Administrator"已生效。
   
   
   
   
 
 #### 创建ModelArts自定义策略
如果系统预置的ModelArts权限不满足您的授权要求，或者您需要管理用户操作OBS的操作权限，可以创建自定义策略。更多关于创建自定义策略操作和参数说明请参见[创建自定义策略](https://support.huaweicloud.com/usermanual-iam/iam_01_0605.html)。
目前华为云支持可视化视图创建自定义策略和JSON视图创建自定义策略，本章节将使用JSON视图方式的策略，以为ModelArts用户授予开发环境的使用权限并且配置ModelArts用户OBS相关的最小化权限项为例，指导您进行自定义策略配置。
![](https://support.huaweicloud.com/modelarts_faq/public_sys-resources/note_3.0-zh-cn.png)
如果一个自定义策略中包含多个服务的授权语句，这些服务必须是同一属性，即都是全局级服务或者项目级服务。
由于OBS为全局服务，ModelArts为项目级服务，所以需要创建两条"作用范围"别为"全局级服务"以及"项目级服务"的自定义策略，然后将两条策略同时授予用户。
1. 创建ModelArts相关OBS的最小化权限的自定义策略。
   登录IAM控制台，在"权限管理\>权限"页面，单击"创建自定义策略"。参数配置说明如下：
   - "策略名称"支持自定义。
   
   - "策略配置方式"为"JSON视图"。
   
   - "策略内容"请参见[ModelArts依赖的OBS权限自定义策略样例]，如果您需要了解更多关于OBS的系统权限，请参见[OBS权限管理](https://support.huaweicloud.com/productdesc-obs/obs_03_0045.html)。
     
2. 创建ModelArts开发环境的使用权限的自定义策略。参数配置说明如下：
   - "策略名称"支持自定义。
   
   - "策略配置方式"为"JSON视图"。
   
   - "策略内容"请参见[ModelArts开发环境使用权限的自定义策略样例]，ModelArts自定义策略中可以添加的授权项（Action）请参见[《ModelArts API参考》\>权限策略和授权项](https://support.huaweicloud.com/api-modelarts/modelarts_03_0146.html)。
   
   - 如果您需要对除ModelArts和OBS之外的其他服务授权，IAM支持服务的所有策略请参见[权限策略](https://support.huaweicloud.com/usermanual-permissions/iam_01_0001.html)。
    
3. 在IAM控制台[创建用户组并授权](https://support.huaweicloud.com/usermanual-iam/iam_03_0001.html)。
   在IAM控制台创建用户组之后，将步骤[1]中创建的自定义策略授权给该用户组。
   
4. [创建用户并加入用户组](https://support.huaweicloud.com/usermanual-iam/iam_02_0001.html)。
   在IAM控制台创建用户，并将其加入[3]中创建的用户组。
   
5. [用户登录](https://support.huaweicloud.com/usermanual-iam/iam_01_0552.html)并验证权限。
   新创建的用户登录控制台，切换至授权区域，验证权限：
   在"服务列表"中选择ModelArts，进入ModelArts主界面。
   - 在左侧导航栏，选择"资产管理\> 数据集"，如果无法进行创建（当前仅包含开发环境的使用权限），表示仅为ModelArts用户授予开发环境的使用权限已生效。
   
   - 在左侧导航栏，按需选择以下操作。
     - 新版：选择"模型开发与训练 \> Notebook"，进入"Notebook"页面。
     
     - 旧版：选择"开发空间 \> Notebook"，进入"Notebook"页面。
     
     
     在"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" 
            ] 
        } 
    ] 
}
```
