作为子账号,自助重置 API 密钥需遵循 “先获授权→禁用旧密钥→删除旧密钥→新建密钥→业务切换” 的标准流程(腾讯云无直接 “重置” 按钮,因 SecretKey 仅创建时可见,无法直接修改)Tencent Cloud。以下是子账号视角的完整操作手册,包含权限要求、详细步骤、安全规范与故障排查。
一、核心前提:获取自助管理密钥权限
子账号默认无法自行管理 API 密钥,必须由主账号预先授予权限Tencent Cloud。请先联系主账号完成以下授权:
主账号需授予的权限策略
| 策略名称 |
权限范围 |
适用场景 |
| QcloudCollApiKeyManageAccess |
子账号自助管理自身 API 密钥(创建 / 禁用 / 删除) |
必需,自助重置核心权限 |
| QcloudCDNReadOnlyAccess |
CDN 资源只读访问(含预热任务查询) |
业务必需,确保重置后仍能调用目标 API |
✅ 权限验证:子账号登录后,访问 API 密钥管理页,若能看到 “新建密钥” 按钮且无权限报错,说明授权成功 腾讯云。
二、自助重置完整操作步骤(子账号视角)
步骤 1:登录控制台并进入密钥管理页
- 用子账号凭证登录腾讯云控制台
- 点击右上角用户头像 → 选择访问管理(或直接访问CAM 控制台)
- 左侧导航栏选择访问密钥 → API 密钥管理(子账号专属密钥管理入口)腾讯云
- 确认页面显示的是当前子账号的密钥列表(非主账号密钥)
步骤 2:禁用旧密钥(安全优先,避免误删导致业务中断)
- 在密钥列表中,找到待重置的密钥,点击操作列的禁用
- 弹出确认框,勾选 “我已确认禁用此 API 密钥”,点击确定
- 验证:密钥状态变为已禁用(此时使用旧密钥的业务会中断,需快速推进后续步骤)
步骤 3:删除旧密钥(释放密钥额度,为新建做准备)
- 对已禁用的密钥,点击操作列的删除
- 二次确认:“API 密钥删除后无法恢复,是否继续?” → 点击确定
- 限制说明:每个子账号最多创建2 个密钥(禁用 / 启用状态均计入额度),必须删除旧密钥才能新建Tencent Cloud
步骤 4:创建新 API 密钥(核心操作,获取新凭证)
- 点击页面左上角新建密钥(蓝色按钮,权限足够时才会显示)
- 完成子账号二次验证(根据主账号安全设置,可能是短信 / 邮箱验证)
- 系统生成新的SecretId(如
AKIDz8krbsJ5yKBZQpn74WFkmLPx3*******)和SecretKey(如Gu5t9xGARNpq86cd98joQYCN3*******),弹出保存窗口
- 立即保存(不可逆操作,关闭弹窗后无法再次查看 SecretKey):
- 复制 SecretId 和 SecretKey 到密码管理器(如 1Password、LastPass)
- 点击下载 CSV 文件,备份到本地安全目录(建议加密存储)
- 点击确定关闭窗口(完成新密钥创建)
步骤 5:业务切换与旧密钥清理(确保业务连续性)
- 先更新后停用:在所有使用旧密钥的系统中配置新密钥(如 CDN 预热查询脚本、运维平台、监控工具)
- 测试新密钥可用性(以 CDN 缓存预热任务查询为例):
# 新密钥测试脚本(子账号视角)
import requests
import time
import hmac
import hashlib
import base64
secret_id = "新SecretId" # 替换为新生成的SecretId
secret_key = "新SecretKey" # 替换为新生成的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())
- 验证结果:返回 200 状态码和任务列表,说明新密钥权限正常
- 确认业务正常后,彻底删除旧密钥(已禁用状态可直接删除),完成重置流程
三、重置后的关键验证与安全规范
1. 权限与密钥有效性验证清单
| 验证项 |
操作方法 |
预期结果 |
| 密钥状态 |
查看 API 密钥管理页 |
新密钥状态为启用 |
| CDN 权限 |
调用 DescribeCdnRefreshTasks API |
返回 200,包含预热任务数据 |
| 密钥唯一性 |
检查密钥列表 |
仅存在当前使用的新密钥(无冗余密钥) |
| 业务连通性 |
执行日常业务操作 |
无 “鉴权失败”“权限不足” 错误 |
2. 子账号密钥安全管理最佳实践
| 措施 |
操作要点 |
风险规避 |
| 密钥轮换 |
每 90 天执行一次重置流程,记录轮换日志 |
降低长期密钥泄露风险 |
| 最小权限 |
重置后确认仅保留 CDN 只读权限,无额外权限 |
限制密钥泄露后的影响范围 |
| 密钥隔离 |
一个密钥用于生产,一个用于测试(如启用双密钥) |
避免生产 / 测试环境密钥混用 |
| 操作审计 |
定期查看 CAM 操作日志,监控密钥创建 / 删除记录 |
追溯操作行为,发现异常访问 |
| 离职处理 |
主动告知主账号重置密钥(或自行重置后移交) |
防止未授权访问遗留风险 |
四、常见问题与解决方案(子账号视角)
1. 无法看到 “新建密钥” 按钮(权限不足)
- 原因:主账号未授予
QcloudCollApiKeyManageAccess权限
- 解决:
- 联系主账号添加该权限策略
- 主账号操作路径:子账号详情页 → 权限 → 添加权限 → 搜索并关联
QcloudCollApiKeyManageAccess
- 刷新页面后重试Tencent Cloud
2. 新建密钥提示 “已达密钥上限”
- 原因:子账号已有 2 个密钥(禁用 / 启用状态均计入)
- 解决:
- 检查密钥列表,找到未使用的冗余密钥
- 先禁用再删除冗余密钥,释放额度
- 重新尝试新建密钥Tencent Cloud
3. API 调用提示 “鉴权失败”(重置后)
- 排查步骤:
- 核对新 SecretId/SecretKey 是否正确(无空格、拼写错误或大小写错误)
- 检查密钥状态是否为启用
- 确认子账号权限包含
QcloudCDNReadOnlyAccess
- 测试网络连通性(CDN API 域名:cdn.api.qcloud.com)
- 检查 API 请求签名是否正确(可使用腾讯云 SDK 自动生成签名)
4. 子账号无法登录控制台(重置过程中)
- 原因:可能是主账号限制了子账号的控制台访问权限
- 解决:
- 联系主账号确认子账号的控制台访问权限是否开启
- 若仅需 API 调用,可通过主账号协助重置密钥(主账号视角操作)
- 或使用 API 方式重置密钥(需已掌握旧密钥的调用权限)
五、快速操作清单(子账号一键核对)
✅ 登录控制台 → 访问密钥 → API 密钥管理
✅ 禁用旧密钥 → 删除旧密钥 → 新建密钥 → 保存 SecretId/SecretKey
✅ 更新业务系统密钥配置 → 测试 CDN 预热查询 API
✅ 确认业务正常 → 完成重置 → 记录操作日志
✅ 配置 90 天密钥轮换提醒(生产环境必需) |