本文档介绍子用户在 CDN 控制台上传证书、配置 TOS 源站、投递日志到 TLS 或转存日志到 TOS 时,避免跨服务授权问题的最佳实践。
建议按照以下步骤进行配置,以确保子用户在进行上述操作时不会遇到权限问题。
CDN 需要获得跨服务访问权限才能访问其他云服务。您可以通过以下两种方式完成授权。
两种方式对比
使用主账号登录 火山引擎 CDN 控制台。
进入以下任意页面:
设置 TOS 桶源站 | 上传证书 | 投递日志到 TLS | 转存日志到 TOS |
|---|---|---|---|
域名管理 > 添加域名 > 新增源站 或 域名管理 > 编辑域名 > 编辑源站 | 证书管理 > 上传证书托管 | 日志管理 > 实时日志投递 > 新增任务 | 日志管理 > 离线日志转存 > 新增任务 |
点击 授权。系统会自动创建 ServiceRoleForCDN 角色并关联给 CDN 服务。
说明
主账号仅需点击 授权,无需进行实际操作(例如实际上传证书、创建转存任务等)。
使用主账号登录 火山引擎控制台,进入 访问控制 > 权限策略。
点击 新建自定义策略。
在 JSON 编辑器 中输入以下策略内容,并点击 提交。
{ "Statement": [ { "Effect": "Allow", "Action": [ "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetPolicy", "iam:GetRole", "iam:CreateServiceLinkedRole" ], "Resource": [ "*" ] } ] }
说明
包含 iam:GetRole 权限是为了支持子用户从证书中心将证书部署到 CDN。
将该策略授予需要执行操作的子用户。
使用子用户登录 CDN 控制台,在方式一中提到的任意页面点击 授权 完成操作。
说明
该操作完成后,CDN 即具备了访问证书中心、TOS 和 TLS 的权限,无需再次进行授权。
请根据子用户的实际业务需求,授予相应的系统预设策略。
SSLReadOnly 和 CDNSSLFullAccess。TOSReadOnlyAccess 和 CDNDomainConfiguration。TLSReadOnlyAccess 和 CDNLogsFullAccess。TOSReadOnlyAccess 和 CDNLogsFullAccess。说明
如果子用户是从证书中心部署证书到 CDN,需要授予子用户 CDNReadOnlyAccess 和 CDNSSLFullAccess。
完成上述两个步骤后,子用户即可在 CDN 控制台中正常执行相关操作。
在 CDN 使用过程中,CDN 服务经常需要与其他火山引擎服务进行交互,常见场景包括:
若权限配置不完整,子用户操作时会遇到权限报错。例如,子用户虽然已被授予 SSLFullAccess 策略,但在 上传证书 页面尝试上传证书时,页面仍提示需要授权。而当子用户点击 授权 时,系统又提示“授权失败”。
火山引擎各云服务之间默认相互隔离。CDN 需获得明确授权方可访问证书中心、TOS 或 TLS。这种授权是通过 ServiceRoleForCDN 角色实现的。
同时,子用户作为操作主体,不仅需要拥有对目标服务(如 TOS、TLS、证书中心)的操作权限,还需要拥有对 CDN 资源的配置权限。此外,子用户默认没有权限为 CDN 授予 ServiceRoleForCDN 角色。
因此,完整的权限配置包含两部分:
ServiceRoleForCDN 角色,从而拥有访问其他服务的身份。通过解决方案中的步骤,可以确保上述两部分权限都得到正确配置。