云 API 密钥安全使用方案

最近更新时间:2025-04-22 16:18:12

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

AK 泄露案例

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

开发者将 SecretId/SecretKey 直接写入业务代码并上传至 GitHub 等开源平台,攻击者通过关键词(如"SecretKey"、"cos.ap-shanghai"等)搜索即可快速定位敏感凭据。(代码中未使用环境变量或配置中心,凭据以明文形式存在于版本控制历史记录中。)

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

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

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

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

4. 临时密钥滥用

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

5. 日志与监控系统泄露

云函数(SCF)环境变量、云硬盘快照或操作审计日志中残留 SecretKey 明文,攻击者通过权限枚举获取敏感信息。

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

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

AK 安全实践教程

避免使用主账号 AK

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

请勿在代码中嵌入 AK

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

定期更新 AK

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

删除不需要的权限/AK

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

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

最小权限原则是一项标准的安全原则。即仅授予执行任务所需的最小权限,不要授予更多无关权限。例如,一个用户仅是 COS 服务的使用者,那么不需要将其他服务的资源访问权限(如 CAM 读写权限)授予给该用户。
另外申请用户时,如果只需要 API,仅申请 API 权限用户即可,不要把控制台和 API 的用户混合。

事前 AK 请求情况梳理

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