
# 自定义策略示例
#### 配合较高权限系统策略使用
如果您给IAM用户授予较高权限的系统策略，例如"FullAccess" ，但不希望IAM用户拥有某个服务的权限，例如云审计服务。您可以[创建一个自定义策略](https://support.huaweicloud.com/usermanual-iam/iam_01_0605.html)，并将自定义策略的Effect设置为Deny，然后将较高权限的系统策略和自定义策略同时授予用户，根据Deny优先原则，则授权的IAM用户除了云审计服务，可以对其他所有服务执行所有操作。
以下策略样例表示：拒绝IAM用户使用云审计服务。
```
{
    "Version": "1.1",
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                    "cts:*:*"
            ]
        }
    ]
}
```
![](https://support.huaweicloud.com/usermanual-iam/public_sys-resources/note_3.0-zh-cn.png)
- Action为授权项，格式为：服务名:资源类型:操作。 "cts:\*:\*"：表示对云审计的所有操作。其中cts为服务名；"\*"为通配符，表示对所有的资源类型可以执行所有操作。
  
- Effect为作用，Deny表示拒绝，Allow表示允许。
 
#### 配合单个服务系统策略使用
- 如果您给IAM用户授予单个服务系统策略，例如"BMS FullAccess"，但不希望用户拥有BMS FullAccess中的创建裸金属服务器权限（bms:servers:create），可以创建一条相同Action的自定义策略，并将自定义策略的Effect设置为Deny，然后将系统策略BMS FullAccess和自定义策略同时授予用户，根据Deny优先原则，则用户可以对BMS执行除了创建裸金属服务器外的所有操作。 以下策略样例表示：拒绝IAM用户创建裸金属服务器。
  ```
  {
      "Version": "1.1",
      "Statement": [
          {
              "Effect": "Deny",
              "Action": [
                      "bms:servers:create"
              ]
          }
      ]
  }
  ```
  

- 如果您给IAM用户授予"OBS ReadOnlyAccess"权限，但不希望部分用户查看指定OBS资源（例如，不希望用户名以"TestUser"开头的用户查看以"TestBucket"命名开头的桶），可以再创建一条自定义策略来指定特定的资源，并将自定义策略的Effect设置为Deny，然后将OBS ReadOnlyAccess和自定义策略同时授予用户。根据Deny优先原则，则用户可以对以"TestBucket"命名开头之外的桶进行查看操作。
  以下策略样例表示：拒绝以TestUser命名开头的用户查看以TestBucket命名开头的桶。
  ```
  {
          "Version": "1.1",
          "Statement": [
                  {
                          "Effect": "Deny",
                          "Action": [
                                  "obs:bucket:ListAllMybuckets",
                                  "obs:bucket:HeadBucket",
                                  "obs:bucket:ListBucket",
                                  "obs:bucket:GetBucketLocation"
                          ],
                          "Resource": [
                              "obs:*:*:bucket:TestBucket*"
                          ],
                          "Condition": {
                              "StringStartWith": {
                                  "g:UserName": [
                                      "TestUser"
                      ]
                  }
              }
                  }
          ]
  }
  ```
  
 
![](https://support.huaweicloud.com/usermanual-iam/public_sys-resources/note_3.0-zh-cn.png)
当前仅部分服务支持资源级授权，例如OBS 对象存储服务；对于不支持资源级别授权的服务，若自定义策略中含有资源类型，则无法创建成功。
#### 完全使用自定义策略
您也可以不使用系统策略，只创建自定义策略，实现IAM用户的指定服务授权。
- 以下策略样例表示：仅允许IAM用户使用ECS、EVS、VPC、ELB、AOM
  ```
  {
          "Version": "1.1",
          "Statement": [
                  {
                          "Effect": "Allow",
                          "Action": [
                                  "ecs:*:*",
                                  "evs:*:*",
                                  "vpc:*:*",
                                  "elb:*:*",
                                  "aom:*:*"
                          ]
                  }
          ]
  }
  ```
  
 
- 以下策略样例表示：允许特定IAM用户（以TestUser命名开头）删除特定OBS对象（my-bucket桶my-object目录下的所有对象）。
  ```
  {
      "Version": "1.1",
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "obs:object:DeleteObject"
              ],
              "Resource": [
                  "obs:*:*:object:my-bucket/my-object/*"
              ],
              "Condition": {
                  "StringStartWith": {
                      "g:UserName": [
                          "TestUser"
                      ]
                  }
              }
          }
      ]
  }
  ```
  
- 以下策略样例表示：允许IAM用户使用除了ECS、EVS、VPC、ELB、AOM、APM外的其他所有服务。
  ```
  {
          "Version": "1.1",
          "Statement": [
                  {
                          "Effect": "Allow",
                          "Action": [
                                  "*:*:*"
                          ]
                  },
                  {
                          "Action": [
                                  "ecs:*:*",
  "evs:*:*",
  "vpc:*:*",
  "elb:*:*", 
  "aom:*:*", 
  "apm:*:*"
                          ],
                          "Effect": "Deny"
                  }
          ]
  }
  ```
  
#### 操作指引
1. [创建自定义策略](https://support.huaweicloud.com/usermanual-iam/iam_01_0016.html)
2. [将系统策略和自定义策略授予用户组](https://support.huaweicloud.com/usermanual-iam/iam_03_0001.html)
3. [各服务支持的自定义策略授权项](https://support.huaweicloud.com/usermanual-permissions/iam_01_0001.html)
 
