
# 身份策略授权参考
云服务在IAM预置了常用的权限，称为系统身份策略。如果IAM系统身份策略无法满足授权要求，管理员可以根据各服务支持的授权项，创建IAM自定义身份策略来进行精细的访问控制，IAM自定义身份策略是对系统身份策略的扩展和补充。
除IAM服务外，[Organizations](https://support.huaweicloud.com/productdesc-organizations/org_01_0011.html)服务中的[服务控制策略](https://support.huaweicloud.com/usermanual-organizations/org_03_0065.html)（Service Control Policy，以下简称SCP）也可以使用这些授权项元素设置访问控制策略。
SCP不直接进行授权，只划定权限边界。将SCP绑定到组织单元或者成员账号时，并没有直接对组织单元或成员账号授予操作权限，而是规定了成员账号或组织单元包含的成员账号的授权范围。IAM身份策略授予权限的有效性受SCP限制，只有在SCP允许范围内的权限才能生效。
IAM服务与Organizations服务在使用这些元素进行访问控制时，存在着一些区别，详情请参见：[IAM服务与Organizations服务权限访问控制的区别](https://support.huaweicloud.com/organizations_faq/org_06_0004.html)。
本章节介绍IAM服务身份策略授权场景中自定义身份策略和组织服务中SCP使用的元素，这些元素包含了操作（Action）、资源（Resource）和条件（Condition）。
- 如何使用这些元素编辑IAM自定义身份策略，请参考[创建自定义身份策略](https://support.huaweicloud.com/usermanual-iam5/iam_01_0917.html)。
- 如何使用这些元素编辑SCP自定义策略，请参考[创建SCP](https://support.huaweicloud.com/usermanual-organizations/org_03_0035.html)。
#### 操作（Action）
操作（Action）即为身份策略中支持的授权项。
- "访问级别"列描述如何对操作进行分类（List、Read和Write等）。此分类可帮助您了解在身份策略中相应操作对应的访问级别。
- "资源类型"列指每个操作是否支持资源级权限。
  - 资源类型支持通配符号\*表示所有。如果此列没有值（-），则必须在身份策略语句的Resource元素中指定所有资源类型（"\*"）。
  
  - 如果该列包含资源类型，则必须在具有该操作的语句中指定该资源的URN。
  
  - 资源类型列中必需资源在表中用星号（\*）标识，表示使用此操作必须指定该资源类型。
  
  
  关于CodeArtsArtifact定义的资源类型的详细信息请参见[资源类型（Resource）]。
  
- "条件键"列包括了可以在身份策略语句的Condition元素中支持指定的键值。
  - 如果该授权项资源类型列存在值，则表示条件键仅对列举的资源类型生效。
  
  - 如果该授权项资源类型列没有值（-），则表示条件键对整个授权项生效。
  
  - 如果此列条件键没有值（-），表示此操作不支持指定条件键。
  
  
  关于CodeArtsArtifact定义的条件键的详细信息请参见[条件（Condition）]。
  
- "别名"列包括了可以在身份策略中配置的策略授权项。通过这些授权项，可以控制支持策略授权的API访问。详细信息请参见[身份策略兼容性说明](https://support.huaweicloud.com/iam5_faq/iam_01_1103.html)。
您可以在身份策略语句的Action元素中指定以下CodeArtsArtifact的相关操作。
表1CodeArtsArtifact支持的授权项 
| 授权项                                                     | 描述                     | 访问级别  | 资源类型（\*为必须） | 条件键 | 别名 |
|:---|:---|:---|:---|:---|:---|
| codeartsartifact:repository:download                    | 授予从制品仓读取文件和元数据的权限。     | Read  | -           | -   | -  |
| codeartsartifact:repository:upload                      | 授予向制品仓上传制品和元数据的权限。     | Write | -           | -   | -  |
| codeartsartifact:repository:deleteFromRepository        | 授予删除制品的权限。             | Write | -           | -   | -  |
| codeartsartifact:releaseRepo:download                   | 授予从发布仓下载文件信息和元数据的权限。   | Read  | -           | -   | -  |
| codeartsartifact:releaseRepo:read                       | 授予从发布仓读取文件信息和元数据的权限。   | Read  | -           | -   | -  |
| codeartsartifact:releaseRepo:upload                     | 授予向发布仓上传文件和元数据的权限。     | Write | -           | -   | -  |
| codeartsartifact:releaseRepo:createFolder               | 授予在发布仓创建文件夹的权限。        | Write | -           | -   | -  |
| codeartsartifact:releaseRepo:editTestPackage            | 授予在发布仓编辑测试包的权限。        | Write | -           | -   | -  |
| codeartsartifact:releaseRepo:deleteOrRestorePackage     | 授予在发布仓删除或还原包的权限。       | Write | -           | -   | -  |
| codeartsartifact:releaseRepo:restoreTrash               | 授予在发布仓还原回收站的权限。        | Write | -           | -   | -  |
| codeartsartifact:releaseRepo:clearTrash                 | 授予在发布仓清空回收站的权限。        | Write | -           | -   | -  |
| codeartsartifact:releaseRepo:changePackageStatus        | 授予在发布仓更改包状态的权限。        | Write | -           | -   | -  |
| codeartsartifact:releaseRepo:getProjectInfo             | 授予在发布仓查询项目信息的权限。       | Read  | -           | -   | -  |
| codeartsartifact:releaseRepo:updateProjectConfiguration | 授予在发布仓修改项目设置的权限。       | Write | -           | -   | -  |
| codeartsartifact:proxy:list                             | 授予查询网络代理的权限。           | List  | -           | -   | -  |
| codeartsartifact:proxy:create                           | 授予创建网络代理的权限。           | Write | -           | -   | -  |
| codeartsartifact:proxy:update                           | 授予更新网络代理的权限。           | Write | -           | -   | -  |
| codeartsartifact:proxy:delete                           | 授予删除网络代理的权限。           | Write | -           | -   | -  |
| codeartsartifact:repository:create                      | 授予创建仓库的权限。             | Write | -           | -   | -  |
| codeartsartifact:repository:edit                        | 授予编辑仓库的权限。             | Write | -           | -   | -  |
| codeartsartifact:repository:delete                      | 授予删除仓库的权限。             | Write | -           | -   | -  |
| codeartsartifact:repository:list                        | 授予查询仓库列表信息的权限。         | List  | -           | -   | -  |
| codeartsartifact:repository:read                        | 授予查询仓库信息的权限。           | Read  | -           | -   | -  |
| codeartsartifact:repository:restore                     | 授予还原仓库的权限。             | Write | -           | -   | -  |
| codeartsartifact:repository:completelyDelete            | 授予彻底删除仓库的权限。           | Write | -           | -   | -  |
| codeartsartifact:repository:restoreAll                  | 授予还原回收站的权限。            | Write | -           | -   | -  |
| codeartsartifact:repository:clearAll                    | 授予清空回收站的权限。            | Write | -           | -   | -  |
| codeartsartifact:repository:listUsers                   | 授予查询用户列表的权限。           | List  | -           | -   | -  |
| codeartsartifact:repository:readUser                    | 授予查询用户信息的权限。           | Read  | -           | -   | -  |
| codeartsartifact:repository:updateUser                  | 授予在私有仓更新用户的权限。         | Write | -           | -   | -  |
| codeartsartifact:repository:deleteUser                  | 授予在私有仓删除用户的权限。         | Write | -           | -   | -  |
| codeartsartifact:repository:getSetting                  | 授予在私有仓获取配置的权限。         | Read  | -           | -   | -  |
| codeartsartifact:repository:resetPassword               | 授予在私有仓重置密码的权限。         | Write | -           | -   | -  |
| codeartsartifact:repository:getVersionInfo              | 授予在私有仓获取版本信息的权限。       | Read  | -           | -   | -  |
| codeartsartifact:securityTask:create                    | 授予创建SecGuard扫描任务的权限。   | Write | -           | -   | -  |
| codeartsartifact:securityTask:delete                    | 授予删除SecGuard扫描任务的权限。   | Write | -           | -   | -  |
| codeartsartifact:securityTask:list                      | 授予查询SecGuard扫描任务列表的权限。 | List  | -           | -   | -  |
| codeartsartifact:securityTask:read                      | 授予查询SecGuard扫描任务信息的权限。 | Read  | -           | -   | -  |
| codeartsartifact:securityTask:update                    | 授予更新SecGuard扫描任务的权限。   | Write | -           | -   | -  |
| codeartsartifact::getAccountInfo                        | 授予查询租户信息的权限。           | Read  | -           | -   | -  |
| codeartsartifact::updateAccountConfiguration            | 授予更新租户设置的权限。           | Write | -           | -   | -  |
   
CodeArtsArtifact的API通常对应着一个或多个授权项。[表2]展示了API与授权项的关系，以及该API需要依赖的授权项。
 表2API与授权项的关系 
| API                                                                                                                                              | 对应的授权项                                              | 依赖的授权项 |
|:---|:---|:---|
| [GET /devreposerver/v2/release/{project_id}/files](https://support.huaweicloud.com/api-cloudartifact/ShowReleaseProjectFiles.html)               | codeartsartifact:releaseRepo:read                   | -      |
| [GET /v2/{project_id}/release/files](https://support.huaweicloud.com/api-cloudartifact/ShowProjectReleaseFiles.html)                             | codeartsartifact:releaseRepo:read                   | -      |
| [GET /v5/user/{project_id}/privileges](https://support.huaweicloud.com/api-cloudartifact/ShowUserPrivilegesV5.html)                              | codeartsartifact:repository:list                    | -      |
| [GET /v5/maven/project/repository](https://support.huaweicloud.com/api-cloudartifact/ShowProjectRelatedRepository.html)                          | codeartsartifact:repository:read                    | -      |
| [PUT /v5/trashes](https://support.huaweicloud.com/api-cloudartifact/BatchRestoreRepo.html)                                                       | codeartsartifact:repository:restore                 | -      |
| [DELETE /v5/trashes](https://support.huaweicloud.com/api-cloudartifact/BatchDeleteTrashes.html)                                                  | codeartsartifact:repository:completelyDelete        | -      |
| [POST /v5/maven/repositories](https://support.huaweicloud.com/api-cloudartifact/CreateMavenRepo.html)                                            | codeartsartifact:repository:create                  | -      |
| [GET /v5/maven/repository/list](https://support.huaweicloud.com/api-cloudartifact/ShowProjectList.html)                                          | codeartsartifact:repository:list                    | -      |
| [PUT /v5/repositories/tab/{tab_id}](https://support.huaweicloud.com/api-cloudartifact/ModifyRepository.html)                                     | codeartsartifact:repository:edit                    | -      |
| [GET /v5/repositories/{repo_id}](https://support.huaweicloud.com/api-cloudartifact/ShowRepositoryInfo.html)                                      | codeartsartifact:repository:read                    | -      |
| [POST /v5/repositories](https://support.huaweicloud.com/api-cloudartifact/CreateDockerRepositories.html)                                         | codeartsartifact:repository:create                  | -      |
| [DELETE /v5/repositories](https://support.huaweicloud.com/api-cloudartifact/DeleteRepository.html)                                               | codeartsartifact:repository:delete                  | -      |
| [GET /v5/storage](https://support.huaweicloud.com/api-cloudartifact/ShowStorage.html)                                                            | codeartsartifact:repository:list                    | -      |
| [GET /v5/maven/info](https://support.huaweicloud.com/api-cloudartifact/ShowMavenInfo.html)                                                       | codeartsartifact:repository:list                    | -      |
| [POST /v5/maven/project/repository](https://support.huaweicloud.com/api-cloudartifact/CreateProjectRelatedRepository.html)                       | codeartsartifact:repository:create                  | -      |
| [GET /v5/search/checksum](https://support.huaweicloud.com/api-cloudartifact/SearchByChecksum.html)                                               | codeartsartifact:repository:list                    | -      |
| [POST /v5/tree/repos/artifacts](https://support.huaweicloud.com/api-cloudartifact/SearchArtifacts.html)                                          | codeartsartifact:repository:list                    | -      |
| [POST /v5/maven/users/me](https://support.huaweicloud.com/api-cloudartifact/ResetUserPassword.html)                                              | codeartsartifact:repository:resetPassword           | -      |
| [GET /v5/{tenant_id}/{project_id}/{repo_name}/file-tree](https://support.huaweicloud.com/api-cloudartifact/ShowFileTree.html)                    | codeartsartifact:repository:read                    | -      |
| [GET /v5/{tenant_id}/{project_id}/{repo_name}/file-detail](https://support.huaweicloud.com/api-cloudartifact/ListArtifactoryComponent.html)      | codeartsartifact:repository:read                    | -      |
| [GET /v5/{tenant_id}/{project_id}/repositories](https://support.huaweicloud.com/api-cloudartifact/ListAllRepositories.html)                      | codeartsartifact:repository:list                    | -      |
| [GET /v5/{tenant_id}/{project_id}/{module}/{repo}/audit](https://support.huaweicloud.com/api-cloudartifact/ShowAudit.html)                       | codeartsartifact:repository:read                    | -      |
| [GET /v5/{tenant_id}/{project_id}/{repo_id}/repositories](https://support.huaweicloud.com/api-cloudartifact/ShowRepository.html)                 | codeartsartifact:repository:read                    | -      |
| [GET /v5/{tenant_id}/{project_id}/storageinfo/statistic](https://support.huaweicloud.com/api-cloudartifact/ListArtifactoryStorageStatistic.html) | codeartsartifact:repository:read                    | -      |
| [POST /v5/attention](https://support.huaweicloud.com/api-cloudartifact/CreateAttention.html)                                                     | codeartsartifact:repository:list                    | -      |
| [GET /v5/attention/artifacts](https://support.huaweicloud.com/api-cloudartifact/ListAttentions.html)                                             | codeartsartifact:repository:list                    | -      |
| [POST /v5/artifact/](https://support.huaweicloud.com/api-cloudartifact/CreateArtifactory.html)                                                   | codeartsartifact:repository:create                  | -      |
| [PUT /v5/artifact/](https://support.huaweicloud.com/api-cloudartifact/UpdateArtifactory.html)                                                    | codeartsartifact:repository:edit                    | -      |
| [DELETE /v5/file](https://support.huaweicloud.com/api-cloudartifact/DeleteArtifactFile.html)                                                     | codeartsartifact:repository:deleteFromRepository    | -      |
| [GET /v3/user/{project_id}/privileges](https://support.huaweicloud.com/api-cloudartifact/GetUserPrivileges.html)                                 | codeartsartifact:repository:list                    | -      |
| [GET /v5/maven/list](https://support.huaweicloud.com/api-cloudartifact/ListMavenList.html)                                                       | codeartsartifact:repository:list                    | -      |
| [GET /v5/projects/{project_id}/users](https://support.huaweicloud.com/api-cloudartifact/ListProjectUsers.html)                                   | codeartsartifact:repository:listUsers               | -      |
| [GET /v5/repositories/proxy](https://support.huaweicloud.com/api-cloudartifact/ListChildProxyRepositoriesList.html)                              | codeartsartifact:repository:read                    | -      |
| [GET /v5/tree/net/proxy](https://support.huaweicloud.com/api-cloudartifact/ListNetProxy.html)                                                    | codeartsartifact:proxy:list                         | -      |
| [GET /v5/domain/ipconfig](https://support.huaweicloud.com/api-cloudartifact/ListDomainIpConfig.html)                                             | codeartsartifact::getAccountInfo                    | -      |
| [GET /v5/sec-guard/task/list](https://support.huaweicloud.com/api-cloudartifact/ListSecGuardList.html)                                           | codeartsartifact:securityTask:list                  | -      |
| [GET /v5/repositories/{project_id}/{repo_id}/privileges](https://support.huaweicloud.com/api-cloudartifact/ShowRepositoryRolesPrivilege.html)    | codeartsartifact:repository:read                    | -      |
| [PUT /v5/repositories/{role_id}/privileges](https://support.huaweicloud.com/api-cloudartifact/UpdateRepoRolesPrivilege.html)                     | codeartsartifact:repository:edit                    | -      |
| [GET /v5/repositories/users](https://support.huaweicloud.com/api-cloudartifact/ListMavenUser.html)                                               | codeartsartifact:repository:listUsers               | -      |
| [GET /v5/{project_id}/versions](https://support.huaweicloud.com/api-cloudartifact/ShowVersionList.html)                                          | codeartsartifact:releaseRepo:read                   | -      |
| [GET /v5/{project_id}/versions/count](https://support.huaweicloud.com/api-cloudartifact/ShowProjectVersionsCount.html)                           | codeartsartifact:releaseRepo:read                   | -      |
| [GET /v5/data/package](https://support.huaweicloud.com/api-cloudartifact/ShowPackageDataDetail.html)                                             | codeartsartifact:releaseRepo:read                   | -      |
| [GET /v5/data/package/info](https://support.huaweicloud.com/api-cloudartifact/ShowPackageInfo.html)                                              | codeartsartifact:releaseRepo:read                   | -      |
| [GET /v5/release/{project_id}/auto-deletion/settings](https://support.huaweicloud.com/api-cloudartifact/ShowAutoDeleteJobSettings.html)          | codeartsartifact:releaseRepo:getProjectInfo         | -      |
| [DELETE /v5/files/compeletion](https://support.huaweicloud.com/api-cloudartifact/DeleteCompletelyUpdateFileState.html)                           | codeartsartifact:releaseRepo:deleteOrRestorePackage | -      |
| [GET /v5/files/archives](https://support.huaweicloud.com/api-cloudartifact/ListFileBuildArchives.html)                                           | codeartsartifact:releaseRepo:read                   | -      |
| [GET /v5/project-role/permissions](https://support.huaweicloud.com/api-cloudartifact/ListProjectRolePermissions.html)                            | codeartsartifact:releaseRepo:getProjectInfo         | -      |
| [GET /v5/capacity-notice/settings](https://support.huaweicloud.com/api-cloudartifact/ListCapacityMessageSetting.html)                            | codeartsartifact::getAccountInfo                    | -      |
| [POST /v5/files/list](https://support.huaweicloud.com/api-cloudartifact/ListFiles.html)                                                          | codeartsartifact:releaseRepo:read                   | -      |
| [GET /v5/{project_id}/files/version/count](https://support.huaweicloud.com/api-cloudartifact/ShowLatestVersionFilesCount.html)                   | codeartsartifact:releaseRepo:read                   | -      |
| [GET /v5/{project_id}/files/version](https://support.huaweicloud.com/api-cloudartifact/ListLatestVersionFiles.html)                              | codeartsartifact:releaseRepo:read                   | -      |
| [GET /v5/files/{id}/info](https://support.huaweicloud.com/api-cloudartifact/ShowFileDetail.html)                                                 | codeartsartifact:releaseRepo:read                   | -      |
| [GET /v5/files/info](https://support.huaweicloud.com/api-cloudartifact/ShowFileDetailByFullName.html)                                            | codeartsartifact:releaseRepo:read                   | -      |
| [GET /v5/storage](https://support.huaweicloud.com/api-cloudartifact/ShowDomainReleaseRepoStorage.html)                                           | codeartsartifact::getAccountInfo                    | -      |
| [GET /v5/{project_id}/storage](https://support.huaweicloud.com/api-cloudartifact/ShowProjectStorageInfo.html)                                    | codeartsartifact:releaseRepo:getProjectInfo         | -      |
   
 #### 资源类型（Resource）
CodeArtsArtifact服务不支持在身份策略中的资源中指定资源进行权限控制。如需允许访问CodeArtsArtifact服务，请在身份策略的Resource元素中使用通配符号\*，表示身份策略将应用到所有资源。
 #### 条件（Condition）
CodeArtsArtifact服务不支持在身份策略中的条件键中配置服务级的条件键。CodeArtsArtifact可以使用适用于所有服务的全局条件键，请参考[全局条件键](https://support.huaweicloud.com/usermanual-iam5/iam_01_1287.html)。
