
# 通过IAM角色或策略授予使用SWR的权限（旧版）
如果您需要对您所拥有的容器镜像服务（SWR）进行角色与策略的权限管理，您可以使用[统一身份认证服务](https://support.huaweicloud.com/usermanual-iam/iam_01_0001.html)（Identity and Access Management，简称IAM），通过IAM，您可以：
- 根据企业的业务组织，在您的华为云账号中，给企业中不同职能部门的员工创建IAM用户，让员工拥有唯一安全凭证，并使用SWR资源。
- 根据企业用户的职能，设置不同的访问权限，以达到用户之间的权限隔离。
- 将SWR资源委托给更专业、高效的其他华为云账号或者云服务，这些账号或者云服务可以根据权限进行代运维。
如果华为云账号已经能满足您的要求，不需要创建独立的IAM用户，您可以跳过本章节，不影响您使用SWR服务的其他功能。
本章节为您介绍对用户授权的方法，操作流程如[图1]所示。
#### 前提条件
给用户组授权之前，请您了解用户组可以添加的SWR权限，并结合实际需求进行选择，SWR支持的系统权限，请参见：[角色与策略权限管理](https://support.huaweicloud.com/productdesc-swr/swr_03_0005.html)。若您需要对除SWR之外的其他服务授权，IAM支持服务的所有权限请参见[授权参考](https://support.huaweicloud.com/usermanual-permissions/iam_01_0001.html)。
#### 示例流程
图1给用户授予SWR权限流程   
![](https://support.huaweicloud.com/usermanual-swr/zh-cn_image_0000001188123619.png)
1. [创建用户组并授权](https://support.huaweicloud.com/usermanual-iam/iam_03_0001.html)
   在IAM控制台创建用户组，并授予容器镜像服务的管理员权限"SWR Admin"。
   
2. [创建用户并加入用户组](https://support.huaweicloud.com/usermanual-iam/iam_02_0001.html)
   在IAM控制台创建用户，并将其加入[1]中创建的用户组。
   
3. [用户登录](https://support.huaweicloud.com/usermanual-iam/iam_01_0552.html)并验证权限
   新创建的用户登录[SWR控制台](https://console.huaweicloud.com/swr/#/swr/dashboard)，切换至授权区域，验证权限（如果能顺利完成如下操作，说明权限设置成功）：
   1. 在左侧导航栏选择"组织管理"，单击右上角"创建组织"，输入组织名称，能够成功创建组织。
   
   2. 在左侧导航栏选择"我的镜像"，单击右上角"页面上传"，选择上一步创建的组织，以及一个本地的镜像文件，能够成功上传镜像。
    
 
#### SWR资源
资源是服务中存在的对象。在SWR中，资源包括：组织、镜像，您可以在创建策略时，通过指定资源路径来选择特定资源。
表1SWR的指定资源与对应路径 
| 指定资源      | 资源名称 | 资源路径                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|
| repo      | 镜像仓库 | 【格式】 swr:\*:\*:repo:镜像仓库名称。 其中第一个\*是regionid，第二个\*是domainid。 【说明】 对于镜像仓库资源，IAM自动生成资源路径前缀swr:\*:\*:repo: 通过镜像仓库名称指定具体的资源路径，支持通配符\*。例如： swr:\*:\*:repo:test/nginx\* ：test组织下，仓库名称以nginx开头的镜像仓库。 swr:\*:\*:repo:test/nginx ：test组织下，仓库名称为nginx的镜像仓库。 |
| namespace | 组织   | 【格式】 swr:\*:\*:namespace:组织名称。 其中第一个\*是regionid，第二个\*是domainid。 【说明】 对于组织资源，IAM自动生成资源路径前缀swr:\*:\*:namespace:通过组织名称指定具体的资源路径，支持通配符\*。例如： swr:\*:\*:namespace:test\* ：名称以test开头的组织。 swr:\*:\*:namespace:test ：名称为test的组织。                                                                      |
   
#### 自定义策略示例
例1：只允许用户查询镜像仓库概要信息，则可以通过如下方式配置。
```
{
  "Version": "5.0",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "swr:repo:getRepo"
      ],
      "Resource": [
        "swr:*:*:repo:*"
      ]
    }
  ]
}
```
例2：假设要把cn-north-4下组织source下的镜像test，同步到cn-north-7的组织target下，那么用户需要有cn-north-4创建自动镜像同步任务的权限、要同步的镜像的下载权限，cn-north-4和cn-north-7的获取临时登录指令的权限，以及cn-north-7目前组织的镜像推送权限：
```
{
  "Version": "5.0",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "swr:repo:createAutoSyncRepoJob",
        "swr:repo:download"
      ],
      "Resource": [
        "swr:cn-north-4:*:repo:source/test"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "swr:repo:upload"
      ],
      "Resource": [
        "swr:cn-north-7:*:repo:target"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "swr::createLoginSecret"
      ]
    }
  ]
}
```
表2参数说明 
| 参数       | 示例                                                                                      | 参数说明                                                                                                     |
|:---|:---|:---|
| Effect   | **Allow**                                                                               | 策略效果：权限生效方式，表示允许执行指定操作                                                                                   |
| Action   | **swr:repo:createAutoSyncRepoJob** **swr:repo:download** | 操作列表： 1. 创建自动镜像同步任务 2. 下载镜像                   |
| Resource | **swr:xxx:\*:repo:source/test**                                                         | 资源范围： "\*"表示策略对SWR服务下的所有镜像仓库生效。您可以修改为指定的镜像仓库，格式固定为swr:区域:账号:repository:组织/镜像。 |
   
