云 API 密钥安全使用方案

最近更新时间:2025-11-13 14:52:01

我的收藏
云 API 密钥是构建腾讯云 API 请求的重要凭证。您的 API 密钥代表您的账号身份和所拥有的权限,使用腾讯云 API 可以操作您名下的所有腾讯云资源。
云 API 密钥包含 SecretId(AK) 和 SecretKey(SK),SecretId 作为用户标识,SecretKey(必须保密)为验证用户身份的密钥。
注意:
AK/SK 若泄露且被恶意利用,会给用户的云上资源与相关业务带来很大的安全隐患,进一步造成重大损失。

AK/SK 面临风险和安全治理必要性

1. 凭证泛滥,AK资产管理难

随着业务扩张各企业 AK 数量激增,90%企业存在 AK 超量超权限发放问题。尤其在多云多账号场景下 AK 分布较为分散,使得管理更加困难,各企业经常会出现“僵尸AK”或未清理的冗余 AK。 

2. 权限滥用,横向移动防不住

主账号 AK 滥用、子账号过度授权,攻击可利用单一凭证完成:创建子账号 > 提权 > 接管云资源(如数据库、存储桶) > 执行恶意命令等,甚至登录云平台控制台扩大攻击面,造成大规模数据泄露或服务中断。
编程访问和 API 账号未分开申请和使用,也是权限不可控的一个重要原因。

3. 云 API 调用缺少监控,恶意调用未感知

缺少动态监控机制及 API 调用行为追踪机制,无法发现 AK/SK 代码泄露及异常操作(如列举资源、查看数据、敏感 API 调用)。凭证泄露后企业难以及时感知、快速定位,导致攻击者可以持续利用泄露凭证进行隐蔽操作。

典型案例

示例场景
攻击路径
总结反思
某科技公司被攻击者利用 AK 登录服务器删除备份进行勒索
攻击者通过拿到泄露的 AK 注册第三方某云管家,通过云服务器 CVM 自动化助手 TAT,对机器下发命令重置密码后,SSH 登录植入勒索病毒,删除所有镜像和备份并发送勒索信。
1. 云上发现多个客户注册某云管家,普遍是攻击者在使用来进行资源查看和 AK/SK 验证,建议关注云 API 异常监测中的外部多云厂商的调用。
2. 结合主机安全勒索病毒检测能力,对病毒进行隔离处置。
3. 尽量使用堡垒机等进行 SSH 的最小化管理,对异常登录进行告警。
4. 做好数据和应用的多地灾备,注意 AK 的权限收敛治理
某公司被攻击者利用 AK 调用云服务获取源代码
攻击者通过外部 Web 漏洞入侵并找到明文密钥,通过境外 IP 请求 API 重置服务器的密钥,植入后门并进行内网扫描,访问客户 COS 获取源代码。
1. 关注云 API 异常监测中的 COS 相关告警,对 COS 权限进行收敛。
2. 借助云安全中心云边界分析进行暴露面收敛、主机安全进行漏洞防御。
3. 关注云 API 异常监测中的可疑 IP 调用高危接口、CVM 高危操作的告警。
某公司被攻击者利用泄露 AK 购买服务器挖矿
攻击者通过泄露的主账号 AK 新增用户,登录控制台并购买服务器挖矿,造成客户财产损失。
1. 主 AK 直接使用并且给了多个业务,溯源发现是硬编码在客户端被逆向导致泄露(硬编码在客户端时,请求源为客户的 IP,数量较大)。
2. 关注云 API 异常监测中的根密钥调用高危接口告警。
3. 关注子用户新增告警,关注 AK 的调用源 IP 过多的情况。
4. 关注主机安全/ DNS 威胁监测挖矿告警。

常见 AK 泄露方式

1. 代码仓库硬编码暴露风险

开发者将 SecretId/SecretKey 直接写入业务代码并上传至 GitHub 等开源平台,攻击者通过关键词(如"SecretKey"、"cos.ap-shanghai"等)搜索即可快速定位敏感凭据。

2. 客户端反编译导致的凭证提取

小程序/APP 开发者将SecretId/SecretKey硬编码在客户端,攻击者通过逆向工程(如反编译 APK、微信小程序源码)提取凭据,直接接管云资源。

3. 技术文档与样例代码泄露

技术文档、内部或公开分享材料中包含测试环境 SecretId/SecretKey,攻击者利用其访问生产资源。

4. 临时密钥滥用

开发者在客户端直接生成临时密钥,攻击者在有效期内劫持流量并利用其发起恶意请求。

5. 服务器内明文配置的 AK 被攻击者获取

攻击者通过漏洞入侵服务器、任意文件读取漏洞,通过环境变量、配置文件等,窃取到明文SecretId/SecretKey。

AK 安全实践教程

避免使用主账号 AK

请尽量不要使用主账号 AK 访问腾讯云,更不要将 AK 共享给他人。一般情况下,应该为所有访问腾讯云的用户创建子账号,同时授权该子账号相应的管理权限。相关设置请参见 用户类型

请勿在代码中嵌入 AK

嵌入代码中的 AK 凭证容易被人忽视,经验丰富的开发者会将其写入数据库或者独立的文件中,使得其管理起来更方便。
开发者应将 AK 存储在独立加密配置文件或密钥管理系统中(如腾讯云 KMS 白盒密钥),而非直接写入业务代码,降低因代码仓库权限管理疏漏或客户端反编译导致的泄露风险。

定期更新 AK

建议您或 CAM 用户要定期轮换 AK。这样可以让身份凭证泄露情况下的影响时间受限。

删除不需要的权限/AK

删除用户不再需要的权限,尽量减少 AK 泄露后带来的安全风险。
删除长期不使用的 AK,减少 AK 的暴露面。

遵循最小权限原则申请账户

最小权限原则是一项标准的安全原则。即仅授予执行任务所需的最小权限,不要授予更多无关权限。例如,一个用户仅是某个 COS 桶的使用者时,不应授予其其他服务的访问权限(如 CAM 读写权限),也不应分配全部 COS 权限,只需授予该用户对特定存储桶的必要访问权限即可。
另外申请用户时,如果只需要 API,仅申请 API 权限用户即可,不要把控制台和 API 的用户混合。

事前 AK 请求情况梳理

在云安全中心 > 云 API 异常监测,实时做好 AK 的资产管理和备注。
AK 列表:梳理 AK 资产,了解我有多少把 AK,备注每把 AK 是什么业务在用。
调用源 IP:梳理调用源 IP,了解每个调用源 IP 属于哪个业务。
风险权限收敛:查看 AK 配置检查结果,梳理是否有不需要的高权限接口。
应急响应:当提前掌握好上面的情况后,出现 AK 泄露导致异常调用时,可以快速的完成 AK 替换。