禁用 API 密鑰是高安全優(yōu)先級操作,禁用后所有使用該密鑰的請求將被立即拒絕。以下是子賬號自助禁用的完整流程,含權(quán)限要求、操作步驟與安全規(guī)范。
一、前提條件(必須滿足)
- 權(quán)限要求:主賬號已授予子賬號包含
cam:DisableApiKey權(quán)限的策略(推薦:QcloudCollApiKeyManageAccess預(yù)設(shè)策略,或之前提供的自定義 CDN 查詢策略)
- 自定義策略需包含以下權(quán)限片段:
{
"effect": "allow",
"action": ["cam:DisableApiKey"],
"resource": ["*"]
}
- 操作范圍:子賬號只能禁用自己的API 密鑰,無法操作其他賬號密鑰
- 安全驗證:子賬號需完成身份驗證(驗證碼 / MFA,主賬號已開啟安全設(shè)置)
二、控制臺自助禁用步驟(30 秒完成)
- 子賬號登錄騰訊云控制臺,進入API 密鑰管理頁(或通過:訪問管理 CAM → 左側(cè)菜單「訪問密鑰」→「API 密鑰管理」)
- 在 API 密鑰列表中,找到目標密鑰(狀態(tài)為啟用)
- 點擊密鑰右側(cè)操作列的禁用按鈕
- 在彈出的確認窗口中,完成身份驗證(短信驗證碼 / MFA),點擊確認禁用
- 驗證結(jié)果:密鑰狀態(tài)變?yōu)?span style="font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-size-adjust: none; font-kerning: auto; font-optical-sizing: auto; font-feature-settings: normal; font-variation-settings: normal; font-variant-position: normal; font-variant-emoji: normal; font-stretch: normal; font-weight: 700; line-height: 24px; flex: 0 1 auto; flex-direction: row; justify-content: normal; align-items: normal; padding: 0px; margin: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">已禁用,表示操作成功Tencent Cloud
操作截圖示意
| 步驟 |
界面特征 |
| 進入管理頁 |
顯示子賬號名下所有 API 密鑰,含 SecretId、狀態(tài)、創(chuàng)建時間 |
| 點擊禁用 |
啟用狀態(tài)的密鑰顯示「禁用」按鈕,禁用狀態(tài)顯示「啟用」按鈕 |
| 身份驗證 |
彈出窗口要求輸入驗證碼或 MFA 動態(tài)密碼 |
| 操作成功 |
密鑰狀態(tài)列顯示「已禁用」,背景色變灰 |
三、API/CLI 禁用方法(批量 / 自動化場景)
1. 騰訊云 CLI 命令
# 安裝騰訊云CLI(已安裝可跳過)
pip install tccli
# 禁用當前子賬號的API密鑰(無需指定TargetUin,默認操作自己的密鑰)
tccli cam DisableApiKey --SecretId AKIDz8krbsJ5yKBZQpn74WFkmLPx3******* --Version 2019-01-16
參數(shù)說明:
- SecretId:必填,指定要禁用的 API 密鑰 ID
2. API 調(diào)用示例(Python SDK)
import json
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.cam.v20190116 import cam_client, models
# 配置子賬號憑證(使用待禁用密鑰或其他有效密鑰)
cred = credential.Credential("子賬號SecretId", "子賬號SecretKey")
httpProfile = HttpProfile()
httpProfile.endpoint = "cam.tencentcloudapi.com"
clientProfile = ClientProfile()
clientProfile.httpProfile = httpProfile
client = cam_client.CamClient(cred, "", clientProfile)
# 構(gòu)建請求
req = models.DisableApiKeyRequest()
params = {
"SecretId": "要禁用的SecretId"
}
req.from_json_string(json.dumps(params))
# 發(fā)送請求并獲取結(jié)果
resp = client.DisableApiKey(req)
print(resp.to_json_string())
四、禁用后的狀態(tài)與影響
| 狀態(tài)變化 |
具體影響 |
恢復(fù)方法 |
| 密鑰狀態(tài) |
從「啟用」變?yōu)椤敢呀谩?/td>
| 點擊「啟用」按鈕可恢復(fù)使用 |
| API 調(diào)用 |
所有使用該密鑰的請求返回401 Unauthorized |
恢復(fù)啟用或創(chuàng)建新密鑰 |
| 業(yè)務(wù)影響 |
依賴該密鑰的程序、腳本、工具將中斷 |
緊急恢復(fù)啟用或替換新密鑰 |
| 安全審計 |
操作記錄會被記錄在「操作審計 CloudAudit」中 |
可通過 EventName=DisableApiKey 查詢 |
五、安全操作規(guī)范(生產(chǎn)環(huán)境必執(zhí)行)
1. 禁用前檢查(避免業(yè)務(wù)中斷)
- ✅ 查看密鑰最近使用記錄(API 密鑰管理頁 → 「最近使用」列)
- ✅ 通知相關(guān)團隊密鑰即將禁用(開發(fā) / 運維 / 測試)
- ✅ 準備備用密鑰(如需要,提前創(chuàng)建新密鑰備用)
2. 禁用操作安全措施
- ✅ 啟用 MFA 雙重驗證(主賬號在 CAM → 安全設(shè)置中開啟)
- ✅ 記錄操作詳情(操作人、時間、SecretId)
- ✅ 禁用后立即檢查業(yè)務(wù)狀態(tài)(確保無關(guān)鍵服務(wù)依賴該密鑰)
3. 常見問題與解決方案
| 問題 |
原因 |
解決方法 |
| 看不到「禁用」按鈕 |
子賬號無cam:DisableApiKey權(quán)限 |
主賬號為其添加QcloudCollApiKeyManageAccess策略 |
| 禁用失敗:身份驗證錯誤 |
驗證碼 / MFA 輸入錯誤或過期 |
重新獲取驗證碼,核對 MFA 動態(tài)密碼 |
| 禁用后業(yè)務(wù)中斷 |
有未發(fā)現(xiàn)的服務(wù)依賴該密鑰 |
臨時恢復(fù)啟用,排查依賴并更新為新密鑰 |
六、快速操作清單(1 分鐘核對)
✅ 確認要禁用的密鑰 SecretId 和當前狀態(tài)(啟用)
✅ 檢查子賬號是否有 cam:DisableApiKey權(quán)限
✅ 通知相關(guān)團隊密鑰即將禁用
✅ 完成身份驗證并執(zhí)行禁用
✅ 驗證密鑰狀態(tài)已變?yōu)椤敢呀谩?
✅ 記錄操作并更新密鑰管理文檔 |