
# 策略授权参考
本章节介绍CCM策略授权场景下支持的策略授权项。
#### 支持的授权项
策略包含系统策略和自定义策略，如果系统策略不满足授权要求，管理员可以创建自定义策略，并通过给用户组授予自定义策略来进行精细的访问控制。策略支持的操作与API相对应，授权项列表说明如下：
- 权限：允许或拒绝某项操作。
- 对应API接口：自定义策略实际调用的API接口。
- 授权项：自定义策略中支持的Action，在自定义策略中的Action中写入授权项，可以实现授权项对应的权限功能。
- 依赖的授权项：部分Action存在对其他Action的依赖，需要将依赖的Action同时写入授权项，才能实现对应的权限功能。
- IAM项目(Project)/企业项目(Enterprise Project)：自定义策略的授权范围，包括IAM项目与企业项目。授权范围如果同时支持IAM项目和企业项目，表示此授权项对应的自定义策略，可以在IAM和企业管理两个服务中给用户组授权并生效。如果仅支持IAM项目，不支持企业项目，表示仅能在IAM中给用户组授权并生效，如果在企业管理中授权，则该自定义策略不生效。管理员可以在授权项列表中查看授权项是否支持IAM项目或企业项目，"√"表示支持，"×"表示暂不支持。关于IAM项目与企业项目的区别，详情请参见：[IAM与企业管理的区别](https://support.huaweicloud.com/iam_faq/iam_01_0101.html)。
CCM支持的自定义策略授权项如下所示：
- [SCM授权列表]，包含SSL证书接口对应的授权项，如查询证书列表、购买证书、上传证书等接口。
- [PCA授权列表]，包含私有CA和私有证书接口对应的授权项，如创建CA、查询私有CA配额、创建私有证书等接口。
 
 #### SCM授权列表
| 权限          | 对应API接口                                                                    | 授权项（Action）                  | 依赖的授权项                                                                            | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|:---|
| 查询证书列表      | GET /v2/{project_id}/scm/certlist                                          | scm:cert:list                | -                                                                                 | √                                              | x                                                       |
| 查询证书详情      | GET /v2/{project_id}/scm/cert/{cert_id}                                    | scm:cert:get                 | -                                                                                 | √                                              | x                                                       |
| 查询证书产品类型    | GET /v2/{project_id}/scm/cert/product                                      | scm:certType:get             | -                                                                                 | √                                              | x                                                       |
| 查询证书产品详情    | GET /v2/{project_id}/scm/product/{product_id}                              | scm:certProduct:get          | -                                                                                 | √                                              | x                                                       |
| 取消申请        | POST /v2/{project_id}/scm/cert/{cert_id}/cancel-cert                       | scm:cert:cancel              | -                                                                                 | √                                              | x                                                       |
| 购买证书        | POST /v2/{project_id}/scm/cert/purchase                                    | scm:cert:purchase            | -                                                                                 | √                                              | x                                                       |
| 申请证书        | POST /v2/{project_id}/scm/cert/{cert_id}/complete                          | scm:cert:complete            | -                                                                                 | √                                              | x                                                       |
| 保存申请证书填写的信息 | POST /v2/{project_id}/scm/cert/{cert_id}/save                              | scm:cert:complete            | -                                                                                 | √                                              | x                                                       |
| 读取申请证书填写的信息 | POST /v2/{project_id}/scm/cert/{cert_id}/read                              | scm:cert:complete            | -                                                                                 | √                                              | x                                                       |
| 修改证书        | PUT /v2/{project_id}/scm/cert/{cert_id}                                    | scm:cert:edit                | -                                                                                 | √                                              | x                                                       |
| 删除证书        | DELETE /v2/{project_id}/scm/cert/{cert_id}                                 | scm:cert:delete              | -                                                                                 | √                                              | x                                                       |
| 下载证书        | GET /v2/{project_id}/scm/cert/{cert_id}/cert_file                          | scm:cert:download            | -                                                                                 | √                                              | x                                                       |
| 上传认证信息      | POST /v2/{project_id}/scm/cert/{cert_id}/info/{type}/upload_authentication | scm:cert:complete            | -                                                                                 | √                                              | x                                                       |
| 吊销证书        | POST /v2/{project_id}/scm/cert/{cert_id}/revoke                            | scm:cert:revoke              | -                                                                                 | √                                              | x                                                       |
| 推送证书        | POST /v2/{project_id}/scm/cert/{cert_id}/push                              | scm:cert:push                | 推送至CDN时，还需要添加如下授权项： cdn:configuration:queryHttpsConf | √                                              | x                                                       |
| 查询推送记录      | GET /v2/{project_id}/scm/cert/{cert_id}/push-history                       | scm:pushHistory:list         | -                                                                                 | √                                              | x                                                       |
| 上传证书        | POST /v2/{project_id}/scm/cert/upload                                      | scm:cert:upload              | -                                                                                 | √                                              | x                                                       |
| 校验CSR       | POST /v2/{project_id}/scm/check-csr                                        | scm:cert:complete            | -                                                                                 | √                                              | x                                                       |
| 新增附加域名      | POST /v2/{project_id}/scm/cert/{cert_id}/supplement                        | scm:cert:supplement          | -                                                                                 | √                                              | x                                                       |
| 取消隐私授权      | DELETE /v2/{project_id}/scm/privacy-protection/{cert_id}                   | scm:privacyProtection:delete | -                                                                                 | √                                              | x                                                       |
   
 #### PCA授权列表
**私有CA相关接口的授权信息**
| 权限         | 对应API接口                                                   | 授权项（Action）    | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|
| 创建CA       | POST /v1/private-certificate-authorities                  | pca:ca:create  | x                                                      |
| 取消计划删除CA   | POST /v1/private-certificate-authorities/{ca_id}/restore  | pca:ca:restore | x                                                      |
| 查询私有CA详情   | GET /v1/private-certificate-authorities/{ca_id}           | pca:ca:get     | x                                                      |
| 查询私有CA CSR | GET /v1/private-certificate-authorities/{ca_id}/csr       | pca:ca:getCsr  | x                                                      |
| 查询私有CA配额   | GET /v1/private-certificate-authorities/quotas            | pca:ca:quota   | x                                                      |
| 导出私有CA     | POST /v1/private-certificate-authorities/{ca_id}/export   | pca:ca:export  | x                                                      |
| 删除私有CA     | DELETE /v1/private-certificate-authorities/{ca_id}        | pca:ca:delete  | x                                                      |
| 禁用私有CA     | POST /v1/private-certificate-authorities/{ca_id}/disable  | pca:ca:disable | x                                                      |
| 启用私有CA     | POST /v1/private-certificate-authorities/{ca_id}/enable   | pca:ca:enable  | x                                                      |
| 激活私有CA     | POST /v1/private-certificate-authorities/{ca_id}/activate | pca:ca:active  | x                                                      |
| 导入CA       | POST /v1/private-certificate-authorities/{ca_id}/import   | pca:ca:import  | x                                                      |
| 查询私有CA列表   | GET /v1/private-certificate-authorities                   | pca:ca:list    | √                                                      |
   
**私有证书相关接口的授权信息**
| 权限          | 对应API接口                                               | 授权项（Action）                | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|
| 查询私有证书详情    | GET /v1/private-certificates/{certificate_id}         | pca:cert:get               | x                                                       |
| 解析私有证书CSR   | POST /v1/private-certificates/csr/parse               | pca:cert:parseCsr          | x                                                       |
| 导出私有证书      | POST /v1/private-certificates/{certificate_id}/export | pca:cert:export            | x                                                       |
| 查询私有证书配额    | GET /v1/private-certificates/quotas                   | pca:cert:quota             | x                                                       |
| 创建私有证书      | POST /v1/private-certificates                         | pca:ca:issueCert           | x                                                       |
| 删除私有证书      | DELETE /v1/private-certificates/{certificate_id}      | pca:ca:delete              | x                                                       |
| 吊销私有证书      | POST /v1/private-certificates/{certificate_id}/revoke | pca:cert:revoke            | x                                                       |
| 使用CSR创建私有证书 | POST /v1/private-certificates/csr                     | pca:ca:issueCertThroughCSR | x                                                       |
| 查询私有证书列表    | GET /v1/private-certificates                          | pca:cert:list              | √                                                       |
   
