You need to enable JavaScript to run this app.
内容分发网络

内容分发网络

复制全文
权限管理
子用户在 CDN 跨服务权限配置最佳实践
复制全文
子用户在 CDN 跨服务权限配置最佳实践

本文档介绍子用户在 CDN 控制台上传证书、配置 TOS 源站、投递日志到 TLS 或转存日志到 TOS 时,避免跨服务授权问题的最佳实践。

解决方案

建议按照以下步骤进行配置,以确保子用户在进行上述操作时不会遇到权限问题。

步骤一:为 CDN 授予跨服务访问权限

CDN 需要获得跨服务访问权限才能访问其他云服务。您可以通过以下两种方式完成授权。
两种方式对比

  • 方式一:主账号直接操作。此方式可解决 CDN 访问其他服务的授权问题。若涉及子用户从其他服务向 CDN 发起操作(例如从证书中心部署证书到 CDN),由于子用户无权进行跨服务授权,可能会导致操作失败。
  • 方式二:授予子用户权限。此方式赋予子用户进行跨服务授权的能力。无论是在 CDN 访问其他服务,还是其他服务访问 CDN 的场景下,子用户均可自行处理授权问题。

方式一:主账号为 CDN 进行跨服务授权

  1. 使用主账号登录 火山引擎 CDN 控制台

  2. 进入以下任意页面:

    设置 TOS 桶源站

    上传证书

    投递日志到 TLS

    转存日志到 TOS

    域名管理 > 添加域名 > 新增源站域名管理 > 编辑域名 > 编辑源站
    Image

    证书管理 > 上传证书托管
    Image

    日志管理 > 实时日志投递 > 新增任务
    Image

    日志管理 > 离线日志转存 > 新增任务
    Image

  3. 点击 授权。系统会自动创建 ServiceRoleForCDN 角色并关联给 CDN 服务。

    说明

    主账号仅需点击 授权,无需进行实际操作(例如实际上传证书、创建转存任务等)。

方式二:主账号授予子用户跨服务授权的权限

  1. 使用主账号登录 火山引擎控制台,进入 访问控制 > 权限策略

  2. 点击 新建自定义策略

  3. JSON 编辑器 中输入以下策略内容,并点击 提交

    {
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "iam:AttachRolePolicy",
            "iam:CreateRole",
            "iam:GetPolicy",
            "iam:GetRole",
            "iam:CreateServiceLinkedRole"
          ],
          "Resource": [
            "*"
          ]
        }
      ]
    }
    

    说明

    包含 iam:GetRole 权限是为了支持子用户从证书中心将证书部署到 CDN。

  4. 将该策略授予需要执行操作的子用户。

  5. 使用子用户登录 CDN 控制台,在方式一中提到的任意页面点击 授权 完成操作。

    说明

    该操作完成后,CDN 即具备了访问证书中心、TOS 和 TLS 的权限,无需再次进行授权。

步骤二:授予子用户相应权限

请根据子用户的实际业务需求,授予相应的系统预设策略。

  • 上传证书
    需授予 SSLReadOnlyCDNSSLFullAccess
  • 配置 TOS 桶源站
    需授予 TOSReadOnlyAccessCDNDomainConfiguration
  • 投递实时日志到 TLS
    需授予 TLSReadOnlyAccessCDNLogsFullAccess
  • 转存离线日志到 TOS
    需授予 TOSReadOnlyAccessCDNLogsFullAccess

说明

如果子用户是从证书中心部署证书到 CDN,需要授予子用户 CDNReadOnlyAccessCDNSSLFullAccess

完成上述两个步骤后,子用户即可在 CDN 控制台中正常执行相关操作。

背景与原理

问题背景

在 CDN 使用过程中,CDN 服务经常需要与其他火山引擎服务进行交互,常见场景包括:

  • 上传证书:需访问证书中心。
  • 设置 TOS 桶源站:需访问对象存储 TOS。
  • 投递实时日志到 TLS:需访问日志服务 TLS。
  • 转存离线日志到 TOS:需访问对象存储 TOS。

若权限配置不完整,子用户操作时会遇到权限报错。例如,子用户虽然已被授予 SSLFullAccess 策略,但在 上传证书 页面尝试上传证书时,页面仍提示需要授权。而当子用户点击 授权 时,系统又提示“授权失败”。

原理说明

火山引擎各云服务之间默认相互隔离。CDN 需获得明确授权方可访问证书中心、TOS 或 TLS。这种授权是通过 ServiceRoleForCDN 角色实现的。

同时,子用户作为操作主体,不仅需要拥有对目标服务(如 TOS、TLS、证书中心)的操作权限,还需要拥有对 CDN 资源的配置权限。此外,子用户默认没有权限为 CDN 授予 ServiceRoleForCDN 角色。

因此,完整的权限配置包含两部分:

  1. CDN 获得的跨服务授权:CDN 获得 ServiceRoleForCDN 角色,从而拥有访问其他服务的身份。
  2. 子用户获得的访问权限:子用户被授予相关策略,从而拥有操作 CDN 和目标服务的权限。

通过解决方案中的步骤,可以确保上述两部分权限都得到正确配置。

最近更新时间:2025.12.29 13:25:24
这个页面对您有帮助吗?
有用
有用
无用
无用