CDN权限问题排查
CDN服务支持使用IAM用户或者企业项目来管理业务,在使用过程中,可能会出现缺失某些权限的提示,本文将指导您如何处理这种情况。
可能出现的权限报错
- 主账号想要跨服务调用接口时,可能因缺少调用别的服务接口权限导致报错,例如:需要添加OBS私有桶作为CDN的源站或需要配置SCM证书时,需要有OBS委托授权或SCM委托授权才行。
- IAM用户需要对域名进行相关操作或信息查询时,可能因缺少某些权限而导致无法操作。
处理方法:可通过报错信息查看缺少什么权限,然后参考创建用户并授权使用CDN为您的IAM用户分配相应的权限。
- 账号开通了企业项目,因企业项目缺少某些权限而导致有的操作无法执行。
处理方法:根据报错信息确认缺少的权限,然后参考为企业项目关联用户并授权为企业项目授权。
- 请查看您的账号是否欠费,如果欠费到了保留期,系统会停用您的加速域名,此时您的CDN业务将停止;如果欠费过了保留期,CDN会释放资源,您的域名将被删除。
角色与策略权限管理
CDN服务支持角色与策略授权。默认情况下,管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。
CDN部署时不区分物理区域,为全局级服务。授权时,在全局级服务中设置权限,访问CDN时,不需要切换区域。
如表1所示,包括了CDN的所有系统权限。角色与策略授权场景的系统策略与身份策略授权场景的并不互通。
| 系统角色/策略名称 | 描述 | 类别 | 依赖关系 |
|---|---|---|---|
| CDN LogsReadOnlyAccess | 具有CDN日志服务只读权限。 | 系统策略 | 无 |
| CDN RefreshAndPreheatAccess | 具有CDN刷新预热权限。 | 系统策略 | 无 |
| CDN Administrator | 具有CDN的所有执行权限。 | 系统角色 | 无 |
| CDN ReadOnlyAccess | 具有CDN所有服务读权限。 | 系统策略 | 无 |
| CDN FullAccess | 具有CDN的所有权限 | 系统策略 | 无 |
| CDN StatisticsReadOnlyAccess | 具有CDN统计服务只读权限。 | 系统策略 | 无 |
| CDN DomainConfiguration | 具有CDN加速域名的配置权限。 | 系统策略 | 无 |
| CDN DomainReadOnlyAccess | 具有CDN加速域名信息的只读权限。 | 系统策略 | 无 |
表2列出了CDN常用操作与系统权限的授权关系,您可以参照该表选择合适的系统权限。
| 操作 | CDN Administrator | CDN ReadOnlyAccess | CDN StatisticsReadOnlyAccess | CDN LogsReadOnlyAccess | CDN DomainConfiguration | CDN RefreshAndPreheatAccess | CDN FullAccess | CDN DomainReadOnlyAccess |
|---|---|---|---|---|---|---|---|---|
| 查询计费模式 | √ | √ | √ | √ | √ | √ | √ | √ |
| 创建或修改计费模式 | √ | x | x | x | x | x | √ | x |
| 查询域名统计数据 | √ | √ | √ | x | x | x | √ | x |
| 日志查询 | √ | √ | x | √ | x | x | √ | x |
| 查询域名所有配置 | √ | √ | x | x | √ | x | √ | √ |
| 修改域名所有配置 | √ | x | x | x | √ | x | √ | x |
| 创建加速域名 | √ | x | x | x | √ | x | √ | x |
| 查询账户信息 | √ | √ | x | x | √ | x | √ | √ |
| 修改账户信息 | √ | x | x | x | √ | x | √ | √ |
不能单独配置CDN DomainConfiguration和CDN RefreshAndPreheatAccess权限,如果想配置这两个权限,请同时配置CDN DomainReadOnlyAccess权限,否则会造成所有域名不可见导致无法进行域名配置和刷新预热配置。
身份策略权限管理
CDN服务支持身份策略授权。如表3所示,包括了CDN身份策略中的所有系统身份策略。身份策略授权场景的系统身份策略与角色与策略授权场景的并不互通。
| 系统策略名称 | 描述 | 策略类别 |
|---|---|---|
| CDNAdministratorPolicy | 对CDN的所有执行权限。 | 系统身份策略 |
| CDNReadOnlyPolicy | 对CDN所有服务具有读权限。 | 系统身份策略 |
| CDNStatisticsReadOnlyPolicy | 对CDN统计服务只读权限。 | 系统身份策略 |
| CDNLogsReadOnlyPolicy | 对CDN日志服务只读权限。 | 系统身份策略 |
| CDNDomainConfigurationPolicy | 对CDN加速域名的配置权限。 | 系统身份策略 |
| CDNRefreshAndPreheatPolicy | CDN刷新预热权限。 | 系统身份策略 |
| CDNFullPolicy | 对CDN的所有执行权限。 | 系统身份策略 |
| CDNDomainReadOnlyPolicy | 对CDN加速域名信息的只读权限。 | 系统身份策略 |
| CDNChargeConfigurationPolicy | 具有CDN计费服务开通、修改、查询计费模式权限。 | 系统身份策略 |
表4列出了CDN常用操作与系统身份策略的授权关系,您可以参照该表选择合适的系统身份策略。
| 操作 | CDNAdministratorPolicy | CDNReadOnlyPolicy | CDNStatisticsReadOnlyPolicy | CDNLogsReadOnlyPolicy | CDNDomainConfigurationPolicy | CDNRefreshAndPreheatPolicy | CDNFullPolicy | CDNDomainReadOnlyPolicy | CDNChargeConfigurationPolicy |
|---|---|---|---|---|---|---|---|---|---|
| 查询计费模式 | √ | √ | √ | √ | √ | √ | √ | √ | √ |
| 创建或修改计费模式 | √ | x | x | x | x | x | √ | x | √ |
| 查询域名统计数据 | √ | √ | √ | x | x | x | √ | x | x |
| 日志查询 | √ | √ | x | √ | x | x | √ | x | x |
| 查询域名所有配置 | √ | √ | x | x | √ | x | √ | √ | √ |
| 修改域名所有配置 | √ | x | x | x | √ | x | √ | x | x |
| 创建加速域名 | √ | x | x | x | √ | x | √ | x | x |
| 查询账户信息 | √ | √ | x | x | √ | x | √ | √ | x |
| 修改账户信息 | √ | x | x | x | √ | x | √ | √ | x |
不能单独配置CDN DomainConfigurationPolicy和CDN RefreshAndPreheatPolicy权限,如果想配置这两个权限,请同时配置CDN DomainReadOnlyPolicy权限,否则会造成所有域名不可见导致无法进行域名配置和刷新预热配置。
CDN策略授权场景下支持的授权项
| 权限 | 对应API接口 | 授权项(Action) | IAM项目(Project) | 企业项目(Enterprise Project) |
|---|---|---|---|---|
| 创建预热缓存任务 | POST /v1.0/cdn/content/preheating-tasks | cdn:configuration:preheatCache | √ | √ |
| 创建预热缓存任务(旧) | POST /v1.0/cdn/preheatingtasks | cdn:configuration:preheatCache | √ | √ |
| 查询刷新预热任务详情 | GET /v1.0/cdn/historytasks/{history_tasks_id}/detail | cdn:configuration:queryCacheHistoryTask | √ | x |
| 查询刷新预热任务 | GET /v1.0/cdn/historytasks | cdn:configuration:queryCacheHistoryTask | √ | x |
| 查询刷新预热URL记录 | GET /v1.0/cdn/contentgateway/url-tasks | cdn:configuration:queryRefreshAndPreheatHistoryTask | √ | x |
| 创建刷新缓存任务 | POST /v1.0/cdn/content/refresh-tasks | cdn:configuration:refreshCache | √ | √ |
| 创建刷新缓存任务(旧) | POST /v1.0/cdn/refreshtasks | cdn:configuration:refreshCache | √ | √ |
| 权限 | 对应API接口 | 授权项(Action) | IAM项目(Project) | 企业项目(Enterprise Project) |
|---|---|---|---|---|
| 一个证书批量设置多个域名 | PUT /v1.0/cdn/domains/config-https-info | cdn:configuration:ModifyHttpsConf | √ | √ |
| Excel导出域名列表 | POST /v1.0/cdn/configuration/domains/export | cdn:configuration:exportBasicConfigs | √ | √ |
| 批量域名复制 | POST /v1.0/cdn/configuration/domains/batch-copy | cdn:configuration:modifyDomainConfigs | √ | √ |
| 查询IP归属信息 | GET /v1.0/cdn/ip-info | cdn:configuration:queryDomains | √ | x |
| 查询资源标签列表配置接口 | GET /v1.0/cdn/configuration/tags | cdn:configuration:queryTags cdn:configuration:queryDomains | √ | √ |
| 删除资源标签配置 | POST /v1.0/cdn/configuration/tags/batch-delete | cdn:configuration:deleteTags cdn:configuration:modifyTags | √ | √ |
| 创建资源标签配置 | POST /v1.0/cdn/configuration/tags | cdn:configuration:modifyTags | √ | √ |
| 查询域名配置(新) | GET /v1.0/cdn/configuration/domains | cdn:configuration:queryDomainList cdn:configuration:queryDomains | √ | √ |
| 新增/修改域名响应头配置 | PUT /v1.0/cdn/domains/{domain_id}/response-header | cdn:configuration:createResHeader | √ | √ |
| 设置缓存规则 | PUT /v1.0/cdn/domains/{domain_id}/cache | cdn:configuration:modifyCacheRule | √ | √ |
| 查询所有绑定HTTPS证书的域名信息 | GET /v1.0/cdn/domains/https-certificate-info | cdn:configuration:queryDomainList cdn:configuration:queryHttpsConf | √ | √ |
| 配置HTTPS | PUT /v1.0/cdn/domains/{domain_id}/https-info | cdn:configuration:modifyHttpsConf | √ | √ |
| 设置IP黑白名单 | PUT /v1.0/cdn/domains/{domain_id}/ip-acl | cdn:configuration:modifyIpAcl | √ | √ |
| 修改域名全量配置 | PUT /v1.1/cdn/configuration/domains/{domain_name}/configs | cdn:configuration:modifyOriginConfInfo | √ | √ |
| 开启/关闭回源跟随 | PUT /v1.0/cdn/domains/{domain_id}/follow302-switch | cdn:configuration:modifyOriginConfInfo | √ | √ |
| 修改回源HOST | PUT /v1.0/cdn/domains/{domain_id}/originhost | cdn:configuration:modifyOriginConfInfo | √ | √ |
| 修改私有桶开启关闭状态 | PUT /v1.0/cdn/domains/{domain_id}/private-bucket-access | cdn:configuration:modifyOriginConfInfo | √ | √ |
| 开启/关闭Range回源 | PUT /v1.0/cdn/domains/{domain_id}/range-switch | cdn:configuration:modifyOriginConfInfo | √ | √ |
| 修改源站信息 | PUT /v1.0/cdn/domains/{domain_id}/origin | cdn:configuration:modifyOriginServerInfo | √ | √ |
| 设置Referer过滤规则 | PUT /v1.0/cdn/domains/{domain_id}/referer | cdn:configuration:modifyReferConf | √ | √ |
| 查询缓存规则 | GET /v1.0/cdn/domains/{domain_id}/cache | cdn:configuration:queryCacheRule | √ | √ |
| 查询域名配置 | GET /v1.1/cdn/configuration/domains/{domain_name}/configs | cdn:configuration:queryDomains | √ | √ |
| 查询HTTPS配置 | GET /v1.0/cdn/domains/{domain_id}/https-info | cdn:configuration:queryHttpsConf | √ | √ |
| 查询IP黑白名单 | GET /v1.0/cdn/domains/{domain_id}/ip-acl | cdn:configuration:queryIpAcl | √ | √ |
| 查询回源HOST | GET /v1.0/cdn/domains/{domain_id}/originhost | cdn:configuration:queryOriginConfInfo | √ | √ |
| 查询Referer过滤规则 | GET /v1.0/cdn/domains/{domain_id}/referer | cdn:configuration:queryReferConf | √ | √ |
| 查询响应头配置 | GET /v1.0/cdn/domains/{domain_id}/response-header | cdn:configuration:queryResponseHeaderList | √ | √ |
| 权限 | 对应API接口 | 授权项(Action) | IAM项目(Project) | 企业项目(Enterprise Project) |
|---|---|---|---|---|
| 创建加速域名 | POST /v1.0/cdn/domains | cdn:configuration:createDomains | √ | √ |
| 停用加速域名 | PUT /v1.0/cdn/domains/{domain_id}/disable | cdn:configuration:disableDomains | √ | √ |
| 启用加速域名 | PUT /v1.0/cdn/domains/{domain_id}/enable | cdn:configuration:enableDomains | √ | √ |
| 删除加速域名 | DELETE /v1.0/cdn/domains/{domain_id} | cdn:configuration:deleteDomains | √ | √ |
| 查询加速域名 | GET /v1.0/cdn/domains | cdn:configuration:queryDomainList cdn:configuration:queryDomain | √ | √ |
| 查询加速域名详情 | GET /v1.0/cdn/configuration/domains/{domain_name} | cdn:configuration:queryDomains | √ | √ |
| 查询加速域名详情(旧) | GET /v1.0/cdn/domains/{domain_id}/detail | cdn:configuration:queryDomains | √ | √ |
| 权限 | 对应API接口 | 授权项(Action) | IAM项目(Project) | 企业项目(Enterprise Project) |
|---|---|---|---|---|
| 查询域名统计基础数据 | GET /v1.0/cdn/statistics/domain-stats | cdn:statistics:queryStats | √ | √ |
| 查询域名统计区域运营商数据 | GET /v1.0/cdn/statistics/domain-location-stats | cdn:statistics:queryStats | √ | √ |
| 查询TOP100 URL明细 | GET /v1.0/cdn/statistics/top-url | cdn:statistics:queryTopUrl | √ | √ |
| 权限 | 对应API接口 | 授权项(Action) | IAM项目(Project) | 企业项目(Enterprise Project) |
|---|---|---|---|---|
| 日志查询 | GET /v1.0/cdn/logs | cdn:log:queryLogs | √ | √ |
| 权限 | 对应API接口 | 授权项(Action) | IAM项目(Project) | 企业项目(Enterprise Project) |
|---|---|---|---|---|
| 设置用户计费模式 | PUT /v1.0/cdn/charge/charge-modes | cdn:charge:modifyChargeMode | √ | x |
| 查询用户计费模式 | GET /v1.0/cdn/charge/charge-modes | cdn:charge:queryChargeMode | √ | x |
| 权限 | 对应API接口 | 授权项(Action) | IAM项目(Project) | 企业项目(Enterprise Project) |
|---|---|---|---|---|
| 查询用户配额 | GET /v1.0/cdn/quota | cdn:configuration:queryQuota | √ | x |
CDN身份策略授权场景下支持的授权项
| 授权项 | 描述 | 访问级别 | 资源类型(*为必须) | 条件键 | 别名 |
|---|---|---|---|---|---|
| cdn:statistics:queryStats | 授予权限查询域名统计数据。 | list | domain * | cdn:statistics:queryTopUrl | |
| cdn:statistics:downloadExcel | 授予权限下载域名统计数据。 | list | domain * | - | |
| cdn:log:queryLogs | 授予权限查询日志数据。 | read | domain * | - | |
| cdn:charge:modifyChargeMode | 授予权限创建或者修改计费模式。 | write | - | - | cdn:configuration:modifyChargeMode |
| cdn:charge:queryChargeMode | 授予权限查询计费模式。 | list | - | - | cdn:configuration:queryChargeMode |
| cdn:statistics:querySubscriptionTasks | 授予权限查询运营报表。 | list | - | - | - |
| cdn:statistics:createSubscriptionTasks | 授予权限创建运营报表。 | write | domain * | - | - |
| cdn:statistics:updateSubscriptionTasks | 授予权限修改运营报表。 | write | domain * | - | - |
| cdn:statistics:deleteSubscriptionTasks | 授予权限删除运营报表。 | write | - | - | - |
| cdn:configuration:queryDomainList | 授予权限查询域名信息列表。 | list | domain * | cdn:configuration:queryDomains | |
| cdn:configuration:queryDomains | 授予权限查询域名。 | read | domain * | - | |
| cdn:configuration:modifyDomainConfigs | 授予权限修改域名配置信息。 | write | domain * | - | |
| cdn:configuration:modifyOriginConfInfo | 授予权限修改域名源站信息配置。 | write | domain * | - | |
| cdn:log:queryLogs | 授予权限查询日志数据。 | read | domain * | - | |
| cdn:statistics:queryStats | 授予权限查询域名统计数据。 | list | domain * | cdn:statistics:queryTopUrl | |
| cdn:configuration:queryDomainList | 授予权限查询域名信息列表。 | list | domain * | cdn:configuration:queryDomains | |
| cdn:configuration:createDomains | 授予权限创建域名。 | write | domain * | - | |
| cdn:configuration:queryDomains | 授予权限查询域名。 | read | domain * | - | |
| cdn:configuration:deleteDomains | 授予权限删除域名相关信息。 | write | domain * | - | |
| cdn:configuration:disableDomains | 授予权限禁用域名。 | write | domain * | - | |
| cdn:configuration:enableDomains | 授予权限启用域名。 | write | domain * | - | |
| cdn:configuration:modifyOriginServerInfo | 授予权限修改域名源站信息。 | write | domain * | - | |
| cdn:configuration:modifyOriginConfInfo | 授予权限修改域名源站信息配置。 | write | domain * | - | |
| cdn:configuration:queryOriginConfInfo | 授予权限查询域名源站配置信息。 | read | domain * | - | |
| cdn:configuration:modifyReferConf | 授予权限修改refer白名单配置。 | write | domain * | - | |
| cdn:configuration:queryReferConf | 授予权限查询refer白名单配置。 | read | domain * | - | |
| cdn:configuration:queryIpAcl | 授予权限查询ip黑白名单。 | list | domain * | - | |
| cdn:configuration:modifyIpAcl | 授予权限修改ip黑白名单。 | write | domain * | - | |
| cdn:configuration:queryCacheRule | 授予权限查询域名缓存规则。 | list | domain * | - | |
| cdn:configuration:modifyCacheRule | 授予权限修改域名缓存规则。 | write | domain * | - | |
| cdn:configuration:modifyHttpsConf | 授予权限修改域名证书配置。 | write | domain * | - | |
| cdn:configuration:queryHttpsConf | 授予权限查询域名https配置。 | read | domain | - | |
| cdn:configuration:queryIpInfo | 授予权限查ip归属信息。 | list | - | - | cdn:configuration:queryDomains |
| cdn:configuration:createResHeader | 授予权限创建响应头信息。 | write | domain * | - | |
| cdn:configuration:queryResponseHeaderList | 授予权限查询响应头信息。 | read | domain * | - | |
| cdn:configuration:batchModifyHttpsConf | 授予权限批量修改域名证书配置。 | write | domain * | cdn:configuration:modifyHttpsConf | |
| cdn:configuration:queryTags | 授予权限查询域名标签列表。 | list | domain * | cdn:configuration:queryDomains | |
| cdn:configuration:modifyTags | 授予权限修改资源标签。 | tagging | domain * | - | |
| cdn:configuration:deleteTags | 授予权限删除资源标签。 | tagging | domain * | cdn:configuration:modifyTags | |
| cdn:configuration:refreshCache | 授予权限刷新缓存。 | write | - | - | |
| cdn:configuration:queryRefreshAndPreheatHistoryTask | 授予权限查询刷新预热任务记录信息。 | list | - | - | cdn:configuration:queryCacheHistoryTask |
| cdn:configuration:queryCacheHistoryTask | 授予权限查询缓存历史任务信息。 | list | - | - | - |
| cdn:configuration:preheatCache | 授予权限修改预热相关配置。 | write | - | - | |
| cdn:configuration:queryQuota | 授予权限查询当前用户域名、刷新文件、刷新目录和预热的配额。 | list | - | - | cdn:configuration:queryDomains |