子账号 API 密钥是生产环境的推荐方案,遵循最小权限原则,可大幅降低密钥泄露风险。以下是完整、可直接执行的 5 步流程,适用于 2026 年最新腾讯云控制台界面Tencent Cloud。
一、准备工作(主账号操作)
- 使用主账号登录腾讯云控制台(子账号无法创建其他子账号)
- 准备好子账号的基本信息(用户名、描述)
- 明确子账号需要的 CDN 权限范围(如仅查询缓存预热任务)
- 准备密码管理器用于保存即将生成的密钥
二、详细操作步骤(主账号视角,共 5 步)
步骤 1:创建子账号(核心基础)
- 访问腾讯云访问管理 (CAM) 控制台:https://console.cloud.tencent.com/cam
- 左侧导航栏选择用户 → 用户列表 → 点击新建用户按钮(蓝色)
- 选择自定义创建(推荐,可精确配置权限)
- 填写基本信息:
- 用户名:如
cdn-operator(建议包含功能和角色)
- 显示名称:如
CDN缓存预热管理员
- 描述:如
用于查询和管理CDN缓存预热任务
- 访问方式设置:
- 勾选编程访问(API 调用必需)
- 可选控制台访问(如需要登录控制台操作),设置登录密码和有效期
- 点击下一步进入权限配置
步骤 2:为子账号配置 CDN 权限(最小权限原则)
- 权限配置页面选择直接关联策略
- 搜索并选择适合的 CDN 权限策略:
| 权限策略 |
适用场景 |
权限范围 |
| QcloudCDNReadOnlyAccess |
仅查询预热任务状态 |
只读,无法修改配置或提交预热任务 |
| QcloudCDNFullAccess |
需要管理预热任务 |
完全控制 CDN 所有资源 |
| 自定义策略 |
极致安全需求 |
仅允许调用特定 API(如 DescribeCdnRefreshTasks) |
- 建议生产环境使用QcloudCDNReadOnlyAccess或自定义策略
- 点击下一步 → 确认信息 → 点击完成创建子账号腾讯云
步骤 3:为子账号创建 API 密钥(关键操作)
- 返回用户列表,找到刚创建的子账号,点击用户名进入详情页
- 切换到API 密钥标签页
- 点击新建密钥按钮(蓝色)
- 完成二次验证(主账号安全验证,如微信扫码或短信验证)
- 系统生成一对SecretId和SecretKey,弹出保存窗口:
- SecretId:如
AKIDz8krbsJ5yKBZQpn74WFkmLPx3*******(公开标识)
- SecretKey:如
Gu5t9xGARNpq86cd98joQYCN3*******(私有密钥,仅创建时可见)
- 立即保存:
- 点击复制按钮,将密钥保存到密码管理器
- 点击下载 CSV 文件,备份到本地安全位置
- 确认保存成功后,点击确定关闭窗口Tencent Cloud
⚠️ 重要提醒:SecretKey 仅创建时可见,关闭弹窗后无法再次查看,必须立即保存
步骤 4:验证密钥可用性(推荐)
- 使用子账号密钥调用 CDN 预热任务查询 API:
import requests
import time
import hmac
import hashlib
import base64
secret_id = "子账号SecretId"
secret_key = "子账号SecretKey"
timestamp = int(time.time())
nonce = 123456
# 构造请求参数
params = {
"Action": "DescribeCdnRefreshTasks",
"SecretId": secret_id,
"Timestamp": timestamp,
"Nonce": nonce,
"SignatureMethod": "HmacSHA256",
"TaskType": "preload" # 仅查询预热任务
}
# 生成签名(省略签名算法实现,可参考腾讯云API文档)
# ...
# 发送请求
response = requests.get("https://cdn.api.qcloud.com/v2/index.php", params=params)
print(response.json())
- 若返回任务列表,说明密钥和权限配置成功
- 若提示权限不足,返回子账号详情页检查并调整权限
步骤 5:管理子账号密钥(安全运维)
- 在子账号API 密钥标签页可查看密钥状态:启用 / 禁用
- 支持操作:
- 禁用:临时禁止密钥使用(如怀疑泄露)
- 删除:永久删除密钥(需先禁用)
- 新建:最多可创建 2 个密钥(轮换使用)Tencent Cloud
三、子账号密钥特殊限制与安全管理
1. 数量限制
- 每个子账号最多创建2 个 API 密钥
- 如需更多密钥,建议创建多个功能专一的子账号
2. 安全最佳实践(生产环境必严格执行)
| 安全措施 |
操作方法 |
风险说明 |
| 最小权限 |
仅授权必要的 CDN 查询权限,禁止使用 FullAccess |
限制密钥泄露后的影响范围 |
| 密钥轮换 |
每 90 天新建密钥,禁用并删除旧密钥 |
降低长期密钥泄露风险 |
| 操作审计 |
开启 CAM 操作日志,监控子账号 API 调用记录 |
及时发现异常访问行为 |
| 密钥禁用 |
人员离职或权限变更时,立即禁用相关密钥 |
防止未授权访问 |
| 禁止共享 |
每个子账号对应唯一使用者,不共享密钥 |
责任可追溯,避免权限滥用 |
3. 子账号密钥创建权限说明
- 子账号默认无法自行创建 API 密钥,需主账号授权
- 如需让子账号管理自身密钥,主账号需为其添加
QcloudCamSubAccountAccessKeyFullAccess权限Tencent Cloud
四、常见问题与解决方案
1. 子账号无法创建 API 密钥
- 原因 1:主账号未授权子账号创建密钥权限
解决:主账号为子账号添加
QcloudCamSubAccountAccessKeyFullAccess权限
- 原因 2:子账号已达到 2 个密钥上限
解决:禁用并删除一个旧密钥后重试Tencent Cloud
2. API 调用提示权限不足
- 原因:子账号权限策略不包含所需 CDN 操作
解决:
- 进入子账号详情页 → 权限标签
- 点击添加权限 → 选择合适的 CDN 权限策略
- 确认权限添加后重试 API 调用腾讯云
3. SecretKey 丢失或忘记保存
- 解决:无法找回已创建的 SecretKey,只能:
- 为子账号新建一个密钥
- 更新所有使用旧密钥的应用配置
- 禁用并删除旧密钥,避免安全风险Tencent Cloud
4. 子账号创建失败
- 可能原因:
- 解决:
- 完成主账号实名认证
- 更换唯一用户名
- 刷新页面或更换浏览器重试Tencent Cloud
五、快速操作清单(一键核对)
✅ 主账号登录 → 访问 CAM 控制台 → 新建用户(勾选编程访问)
✅ 为用户添加 QcloudCDNReadOnlyAccess 权限 → 完成创建
✅ 进入子用户详情页 → API 密钥标签 → 新建密钥
✅ 复制 SecretId 和 SecretKey 到密码管理器 → 下载 CSV 备份
✅ 测试 API 调用 → 验证权限和密钥有效性
✅ 配置密钥轮换计划(每 90 天) |