子賬號 API 密鑰是生產(chǎn)環(huán)境的推薦方案,遵循最小權(quán)限原則,可大幅降低密鑰泄露風險。以下是完整、可直接執(zhí)行的 5 步流程,適用于 2026 年最新騰訊云控制臺界面Tencent Cloud。
一、準備工作(主賬號操作)
- 使用主賬號登錄騰訊云控制臺(子賬號無法創(chuàng)建其他子賬號)
- 準備好子賬號的基本信息(用戶名、描述)
- 明確子賬號需要的 CDN 權(quán)限范圍(如僅查詢緩存預熱任務)
- 準備密碼管理器用于保存即將生成的密鑰
二、詳細操作步驟(主賬號視角,共 5 步)
步驟 1:創(chuàng)建子賬號(核心基礎(chǔ))
- 訪問騰訊云訪問管理 (CAM) 控制臺:https://console.cloud.tencent.com/cam
- 左側(cè)導航欄選擇用戶 → 用戶列表 → 點擊新建用戶按鈕(藍色)
- 選擇自定義創(chuàng)建(推薦,可精確配置權(quán)限)
- 填寫基本信息:
- 用戶名:如
cdn-operator(建議包含功能和角色)
- 顯示名稱:如
CDN緩存預熱管理員
- 描述:如
用于查詢和管理CDN緩存預熱任務
- 訪問方式設(shè)置:
- 勾選編程訪問(API 調(diào)用必需)
- 可選控制臺訪問(如需要登錄控制臺操作),設(shè)置登錄密碼和有效期
- 點擊下一步進入權(quán)限配置
步驟 2:為子賬號配置 CDN 權(quán)限(最小權(quán)限原則)
- 權(quán)限配置頁面選擇直接關(guān)聯(lián)策略
- 搜索并選擇適合的 CDN 權(quán)限策略:
| 權(quán)限策略 |
適用場景 |
權(quán)限范圍 |
| QcloudCDNReadOnlyAccess |
僅查詢預熱任務狀態(tài) |
只讀,無法修改配置或提交預熱任務 |
| QcloudCDNFullAccess |
需要管理預熱任務 |
完全控制 CDN 所有資源 |
| 自定義策略 |
極致安全需求 |
僅允許調(diào)用特定 API(如 DescribeCdnRefreshTasks) |
- 建議生產(chǎn)環(huán)境使用QcloudCDNReadOnlyAccess或自定義策略
- 點擊下一步 → 確認信息 → 點擊完成創(chuàng)建子賬號騰訊云
步驟 3:為子賬號創(chuàng)建 API 密鑰(關(guān)鍵操作)
- 返回用戶列表,找到剛創(chuàng)建的子賬號,點擊用戶名進入詳情頁
- 切換到API 密鑰標簽頁
- 點擊新建密鑰按鈕(藍色)
- 完成二次驗證(主賬號安全驗證,如微信掃碼或短信驗證)
- 系統(tǒng)生成一對SecretId和SecretKey,彈出保存窗口:
- SecretId:如
AKIDz8krbsJ5yKBZQpn74WFkmLPx3*******(公開標識)
- SecretKey:如
Gu5t9xGARNpq86cd98joQYCN3*******(私有密鑰,僅創(chuàng)建時可見)
- 立即保存:
- 點擊復制按鈕,將密鑰保存到密碼管理器
- 點擊下載 CSV 文件,備份到本地安全位置
- 確認保存成功后,點擊確定關(guān)閉窗口Tencent Cloud
⚠️ 重要提醒:SecretKey 僅創(chuàng)建時可見,關(guān)閉彈窗后無法再次查看,必須立即保存
步驟 4:驗證密鑰可用性(推薦)
- 使用子賬號密鑰調(diào)用 CDN 預熱任務查詢 API:
import requests
import time
import hmac
import hashlib
import base64
secret_id = "子賬號SecretId"
secret_key = "子賬號SecretKey"
timestamp = int(time.time())
nonce = 123456
# 構(gòu)造請求參數(shù)
params = {
"Action": "DescribeCdnRefreshTasks",
"SecretId": secret_id,
"Timestamp": timestamp,
"Nonce": nonce,
"SignatureMethod": "HmacSHA256",
"TaskType": "preload" # 僅查詢預熱任務
}
# 生成簽名(省略簽名算法實現(xiàn),可參考騰訊云API文檔)
# ...
# 發(fā)送請求
response = requests.get("https://cdn.api.qcloud.com/v2/index.php", params=params)
print(response.json())
- 若返回任務列表,說明密鑰和權(quán)限配置成功
- 若提示權(quán)限不足,返回子賬號詳情頁檢查并調(diào)整權(quán)限
步驟 5:管理子賬號密鑰(安全運維)
- 在子賬號API 密鑰標簽頁可查看密鑰狀態(tài):啟用 / 禁用
- 支持操作:
- 禁用:臨時禁止密鑰使用(如懷疑泄露)
- 刪除:永久刪除密鑰(需先禁用)
- 新建:最多可創(chuàng)建 2 個密鑰(輪換使用)Tencent Cloud
三、子賬號密鑰特殊限制與安全管理
1. 數(shù)量限制
- 每個子賬號最多創(chuàng)建2 個 API 密鑰
- 如需更多密鑰,建議創(chuàng)建多個功能專一的子賬號
2. 安全最佳實踐(生產(chǎn)環(huán)境必嚴格執(zhí)行)
| 安全措施 |
操作方法 |
風險說明 |
| 最小權(quán)限 |
僅授權(quán)必要的 CDN 查詢權(quán)限,禁止使用 FullAccess |
限制密鑰泄露后的影響范圍 |
| 密鑰輪換 |
每 90 天新建密鑰,禁用并刪除舊密鑰 |
降低長期密鑰泄露風險 |
| 操作審計 |
開啟 CAM 操作日志,監(jiān)控子賬號 API 調(diào)用記錄 |
及時發(fā)現(xiàn)異常訪問行為 |
| 密鑰禁用 |
人員離職或權(quán)限變更時,立即禁用相關(guān)密鑰 |
防止未授權(quán)訪問 |
| 禁止共享 |
每個子賬號對應唯一使用者,不共享密鑰 |
責任可追溯,避免權(quán)限濫用 |
3. 子賬號密鑰創(chuàng)建權(quán)限說明
- 子賬號默認無法自行創(chuàng)建 API 密鑰,需主賬號授權(quán)
- 如需讓子賬號管理自身密鑰,主賬號需為其添加
QcloudCamSubAccountAccessKeyFullAccess權(quán)限Tencent Cloud
四、常見問題與解決方案
1. 子賬號無法創(chuàng)建 API 密鑰
- 原因 1:主賬號未授權(quán)子賬號創(chuàng)建密鑰權(quán)限
解決:主賬號為子賬號添加
QcloudCamSubAccountAccessKeyFullAccess權(quán)限
- 原因 2:子賬號已達到 2 個密鑰上限
解決:禁用并刪除一個舊密鑰后重試Tencent Cloud
2. API 調(diào)用提示權(quán)限不足
- 原因:子賬號權(quán)限策略不包含所需 CDN 操作
解決:
- 進入子賬號詳情頁 → 權(quán)限標簽
- 點擊添加權(quán)限 → 選擇合適的 CDN 權(quán)限策略
- 確認權(quán)限添加后重試 API 調(diào)用騰訊云
3. SecretKey 丟失或忘記保存
- 解決:無法找回已創(chuàng)建的 SecretKey,只能:
- 為子賬號新建一個密鑰
- 更新所有使用舊密鑰的應用配置
- 禁用并刪除舊密鑰,避免安全風險Tencent Cloud
4. 子賬號創(chuàng)建失敗
- 可能原因:
- 主賬號未完成實名認證
- 子賬號用戶名重復
- 網(wǎng)絡(luò)問題
- 解決:
- 完成主賬號實名認證
- 更換唯一用戶名
- 刷新頁面或更換瀏覽器重試Tencent Cloud
五、快速操作清單(一鍵核對)
✅ 主賬號登錄 → 訪問 CAM 控制臺 → 新建用戶(勾選編程訪問)
✅ 為用戶添加 QcloudCDNReadOnlyAccess 權(quán)限 → 完成創(chuàng)建
✅ 進入子用戶詳情頁 → API 密鑰標簽 → 新建密鑰
✅ 復制 SecretId 和 SecretKey 到密碼管理器 → 下載 CSV 備份
✅ 測試 API 調(diào)用 → 驗證權(quán)限和密鑰有效性
✅ 配置密鑰輪換計劃(每 90 天) |