
# 基于标签的细粒度鉴权
#### 操作场景
当我们在IAM控制台对容器镜像服务企业版创建策略后，接着可以对命名空间和注册表创建标签，通过策略和标签相结合，我们可以实现对企业注册表资源的细粒度鉴权，保证资源使用权限可控，安全。
#### 前提条件
已创建[命名空间标签](https://support.huaweicloud.com/usermanual2-swr/swr_02_0420.html)
#### 操作步骤
1. 在IAM控制台[创建一个或多个策略](https://support.huaweicloud.com/usermanual2-swr/swr_02_0404.html)。
   
   *例如我们创建一个名称为**policy77r463** 的策略。配置参数填写如[表1]所示:*
    表1策略配置示例 
   | **参数名称** | **示例**                                                                                        | **参数说明**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   |:---|:---|:---|
   | 策略类型     | **允许**                                                                                        | 当前策略类型，有2种可选，允许或拒绝。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   | 云服务      | **swr**                                                                                       | 当前策略在哪个云服务上生效                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   | 操作类型     | **swr:repository:downloadArtifact**                                                           | 当前策略对哪些操作生效，可单选、多选。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   | 资源类型     | **SWR:\*:\*:repository:test-instance/\***                                                     | 当前可选资源类型有2种，特定资源、所有资源。 如选择"特定资源"可以单击"通过资源路径指定"来指定需要授权的资源。SWR资源类型说明详见：[企业仓库资源](https://support.huaweicloud.com/usermanual2-swr/swr_02_0405.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   | 请求条件     | TagKeys=test 运算符=StringEquals 值=aaa | 条件键表示策略语句的Condition元素中的键值。因为此条策略为容器镜像服务创建，所以条件键选择"服务级别条件键"。条件键不区分大小写。涉及标签的条件键如下： - PrincipalTag  - ResourceTagKeys  - ResourceTag  - RequestTag  - TagKeys  - 条件键说明详见[条件键](https://support.huaweicloud.com/usermanual-permissions/iam_11_0150.html#section2)   - 运算符说明详见[运算符](https://support.huaweicloud.com/usermanual-iam5/iam_01_1289.html#iam_01_1289__li13495143171719)   |
      
   该条策略的JSON示例如下：
   ```
   {
       "Version": "1.1",
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "swr:repository:downloadArtifact"
               ],
               "Resource": [
                   "SWR:*:*:repository:*/{namespace-name}"
               ],
               "Condition": {
                   "StringEquals": {
                       "g:ResourceTag/test": [
                           "aaa"
                       ]
                   }
               }
           }
       ]
   }
   ```
   图1创建策略   
   ![](https://support.huaweicloud.com/usermanual2-swr/zh-cn_image_0000001572820373.png)
   策略说明：该条策略适用于容器镜像服务，您可以将其配置给该服务内的用户/用户组A。策略配置生效后，该用户/用户组A下的用户可以下载含有"test=aaa"标签的，且命名空间名称为{namespace-name}下的仓库的制品。
   ![](https://support.huaweicloud.com/usermanual2-swr/public_sys-resources/note_3.0-zh-cn.png)
   当某用户/用户组想要执行仓库的下载镜像动作，企业注册表会提取该用户/用户组的标签与"test=aaa"相校验，若匹配，则准许其进行操作。反之，则操作失败。
   
   
2. 将[步骤1]生成的策略***policy77r463*** 授权给用户/用户组A，具体操作方法详见[创建用户组并授权](https://support.huaweicloud.com/usermanual-iam/iam_03_0001.html)。给命名空间{namespace-name}新增一个"test=aaa"的标签，具体操作方法详见[添加命名空间标签](https://support.huaweicloud.com/usermanual2-swr/swr_02_0420.html#swr_02_0420__section132611484710)。
3. 使用[步骤2]授权的用户或者用户组A中的用户即可以对命名空间内名为{namespace-name}里的制品执行下载操作。
 
