云安全自查清单:用腾讯云助手 30 分钟完成一次权限与密钥体检

云安全自查清单:用腾讯云助手 30 分钟完成一次权限与密钥体检

摘要:客户做云安全自查,最缺的不是工具,而是一份能真正跑起来、能交差的清单。本文把权限与密钥治理打包成五大域、30 项的自查体系,并给出 30 分钟执行流程和可直接复用的体检报告模板。


一、适用场景

这份清单适合:

  • 政企/金融/事业单位做定期云安全自查上线前安全评估
  • 运维/安全工程师做季度安全巡检
  • 接手一个"历史包袱很重"的云账号,需要快速摸清底数;
  • 应对合规检查,需要留下可追溯的自查记录

设计原则:能自动跑的绝不人工,能产出报告的绝不止步于"看过了"。


二、五个域,30 项:自查总览

主题 项数 核心问题
账号与身份安全 6 谁能登进来
权限策略治理 8 进来能干什么
密钥与凭据 6 钥匙有没有被复制
审计与告警 5 干了什么留不留痕
数据与资源配置 5 有没有对外敞着

三、域一:账号与身份安全(6 项)

# 检查项 合格标准 检测方式
1.1 主账号 MFA 已开启登录保护 + 敏感操作保护 控制台 → 安全设置
1.2 子账号 MFA 全部子账号开启 MFA,支持邮箱/微信登录的强制二次验证 CAM → 用户
1.3 主账号密钥 不存在主账号 AK tccli cam ListAccessKeys
1.4 身份分离 管理用户、管理权限、管理资源的职责由不同子账号承担 人工核查
1.5 控制台/编程分离 只做 API 的子账号不授予登录密码 人工核查
1.6 离职/闲置账号 无长期未登录、无离职未回收账号 tccli cam ListUsers + CloudAudit 登录日志

官方访问控制最佳实践的第一条就是 开启 MFA 保护:为所有账号绑定 MFA,为根账号开启登录保护和敏感操作保护,为所有子账号开启敏感操作保护。这一条投入最小、收益最大,务必先做。


四、域二:权限策略治理(8 项)

# 检查项 合格标准
2.1 完全通配策略 不存在 "action":"*" + "resource":"*"
2.2 预设高危策略 不存在 AdministratorAccess(除极少数特批账号,且必须开 MFA)
2.3 提权类通配 不存在 cam:* / sts:* / kms:* 通配
2.4 服务级通配 cos:* / cvm:* 等已收敛为具体操作
2.5 资源范围 resource:"*";资源收敛到六段式精确 ARN
2.6 条件约束 敏感操作(删除/终止/改配/提权)配有 condition
2.7 闲置宽权限 无"90 天零调用 + 宽权限"策略
2.8 策略变更管控 策略纳入版本管理,变更经过评审

一句话检测法:跑第 1 篇的审计脚本,看 P0/P1 条数是否为 0。

bash 复制代码
python cam_policy_audit.py --out ./cam_audit
# 输出:cam_audit/权限整改清单.md

一项必查的坑 :审计时记得 GetPolicy 拉不到 CreateMode=1 的预设策略 ,所以 AdministratorAccess 这类必须按策略名称单独核对,别以为脚本没报就等于没有。


五、域三:密钥与凭据(6 项)

# 检查项 合格标准 检测方式
3.1 密钥数量 每把密钥都有明确用途与负责人 台账核查
3.2 权限体积 无密钥关联 AdministratorAccess 或通配策略 CAM 关联查询
3.3 存储方式 无明文落盘;使用 SSM + KMS 或环境变量注入 代码/配置扫描
3.4 密钥年龄 长期 AK ≤ 90 天,KMS CMK 已开启自动轮换 CAM / KMS 控制台
3.5 泄露面 代码仓库无硬编码密钥(gitleaks 无告警) gitleaks detect
3.6 闲置密钥 无 90 天零调用密钥(已禁用或删除) CloudAudit 调用统计

官方建议摘录 :定期轮换登录密码或云 API 密钥,可以让身份凭证泄露情况下的影响时间受限。密钥轮换不只是合规动作,它是把"泄露窗口"物理压缩的工程手段。

加分项:能用临时密钥(角色/STS)的地方,就别用长期 AK。角色没有关联的持久证书,代入时才动态创建临时证书,从根上消除了"长期凭据"这个攻击面。


六、域四:审计与告警(5 项)

# 检查项 合格标准
4.1 云审计开启 CloudAudit 已开启日志采集且有跟踪集
4.2 日志留存 日志留存满足合规要求(建议 ≥ 180 天)
4.3 敏感操作告警 CreateUser / CreateAccessKey / AttachUserPolicy / AssumeRole 有实时告警
4.4 异常检测 有"非工作时间调用""境外 IP 调用"规则
4.5 应急可用 能按 SecretId / 用户名 / 源 IP 快速检索

关键能力验证------确认你真的能查到(很多团队开了审计但从没查过):

bash 复制代码
# 按密钥查调用历史
tccli cloudaudit LookupEvents --LookupAttributes '{"AttributeKey":"SecretId","AttributeValue":"AKIDxxxx"}'

# 查敏感操作记录
tccli cloudaudit LookupSensitiveEvents --LookupAttributes '{"AttributeKey":"EventName","AttributeValue":"CreateUser"}'

CloudAudit 覆盖控制台、SDK、命令行工具及其他云服务的调用,能确定谁、从哪个源 IP、何时发起调用------这是出事时唯一能还原真相的证据源。


七、域五:数据与资源配置(5 项)

# 检查项 合格标准
5.1 COS 权限 无公有读/公有写桶;桶 ACL 与桶策略无 * 主体
5.2 存储加密 敏感数据桶开启服务端加密
5.3 快照/镜像共享 无对外共享的快照、镜像、镜像分享
5.4 备份可用性 关键数据有备份,且做过恢复演练
5.5 网络暴露 安全组无 0.0.0.0/0 的高危端口(22/3389/6379 等)

这几项看似与"密钥"无关,但泄露后的变现和扩散路径往往就在这:拿到宽权限密钥 → 找公有读桶 → 拖数据;找到共享镜像 → 提权进内网。


八、30 分钟执行流程

第 0~20 分钟:自动化(脚本跑)

bash 复制代码
# 1) 权限策略审计(第 1 篇的脚本)
python cam_policy_audit.py --out ./cam_audit

# 2) 密钥清单与关联策略
tccli cam ListUsers > users.json
tccli cam ListPolicies --Scope ALL --Page 1 --Rp 200 > policies.json

# 3) 敏感操作与异常调用
tccli cloudaudit LookupSensitiveEvents --LookupAttributes '{"AttributeKey":"EventName","AttributeValue":"CreateAccessKey"}'

第 20~28 分钟:人工核对(表格打勾)

  • 域一 6 项(控制台 + CAM)
  • 域三 3.3 / 3.5(代码扫描)
  • 域五 5 项(控制台)

第 28~30 分钟:出报告

把脚本产出的 权限整改清单.md 和上表勾选结果,套进下面的模板。


九、体检报告模板(可直接复制)

markdown 复制代码
# 云账号安全自查报告

- 账号:xxx
- 自查时间:2026-XX-XX
- 自查人:xxx
- 使用工具:cam_policy_audit.py / tccli / CloudAudit

## 一、总体结论
- 检查项 30 项,通过 24 项,不通过 6 项
- 风险分布:P0 2 项 / P1 3 项 / P2 1 项
- 结论:存在高危风险,需在 X 个工作日内完成整改

## 二、风险明细

| 编号 | 风险项 | 等级 | 证据 | 整改建议 | 责任人 | 期限 |
| --- | --- | --- | --- | --- | --- | --- |
| R-01 | 3 个子账号挂 AdministratorAccess | P0 | 关联身份数=3 | 拆分为职能策略 | 张三 | X日 |
| R-02 | 存在 action=* 策略 | P0 | 策略ID=12345678 | 按服务枚举 | 李四 | X日 |
| R-03 | 1 把 AK 三年未轮换 | P1 | CloudAudit 无调用 | 先禁后删 | 王五 | X日 |
| R-04 | 代码仓库硬编码密钥 | P1 | gitleaks 告警 | 改环境变量注入 | 赵六 | X日 |

## 三、附件
- 附件1:权限整改清单.md
- 附件2:CloudAudit 检索截图

## 四、复检安排
- 首次复检:XX 日后
- 复检方式:重跑审计脚本 + 差异对比

十、整改闭环与复检机制

自查的价值在于闭环,不是出一份报告。

① 分级整改

等级 整改时限 要求
P0 24~72 小时 立即止血,先禁用后删除
P1 1~2 周 按迭代收敛,有回滚预案
P2 1 个月 纳入日常运维

② 复检必须量化

复检不是"再看一眼",而是重跑脚本 + 与上次报告做 diff

bash 复制代码
python cam_policy_audit.py --out ./cam_audit_2026Q2
diff cam_audit_2026Q1/权限整改清单.md cam_audit_2026Q2/权限整改清单.md

新增风险必须解释,收敛项必须留痕。

③ 把自查变成机制

  • 定时化:每周自动跑一次脚本,报告发安全群;
  • 门禁化:CI 中出现 P0 直接阻断发布(策略即代码);
  • 制度化:新增子账号/密钥必须经过本清单前两个域的检查。

十一、小结

  • 自查体系:五大域 30 项------账号身份、权限策略、密钥凭据、审计告警、数据资源;
  • 自动化优先:权限审计用脚本,密钥和调用溯源用 tccli + CloudAudit;
  • 四条最容易踩的坑:
    1. 忘了 GetPolicy 查不到预设策略,导致高危漏检;
    2. 开了 CloudAudit 却从没查过,出事才发现不会用;
    3. 密钥轮换没有 SOP,一换就断业务;
    4. 只做一次性自查,没有复检和门禁,半年后全部反弹;
  • 一句总结:自查的终点不是报告,而是"脚本化 + 定时化 + 门禁化"的闭环。

配合前四篇(权限审计、AI 密钥泄露防护、策略精细化改造、密钥全生命周期治理)一起用,就是一套完整的企业云安全治理方案。

相关推荐
letisgo51 小时前
JAVA 高级进阶05篇《Spring容器机制:Bean生命周期与三级缓存全解》
java·spring·面试·ioc·源码分析
岁月如歌77861 小时前
分布式锁完全指南:从数据库到 Redisson 的演进
java·后端·架构
AI深栈2 小时前
第 8 章 · Tool Calling 与 Tool Search
java·人工智能
写后端的胖头鱼2 小时前
【高频面试题】spring事物失效场景(带原理 + 代码示例)
java·后端·spring·事务·事物失效
小孩玩什么2 小时前
深入理解字符串匹配算法:BF算法,KMP算法
java·c语言·开发语言·数据结构·c++·算法
长谷深风1112 小时前
Agent执行系统中的身份与版本设计
java·大数据·人工智能·ai·大模型·task·aiagent
Wang's Blog2 小时前
Java框架快速入门: Spring Security+OAuth2之UserDetails与JDBC认证实践
java·网络·spring
爱从未走散2 小时前
面试八股题
java·面试·职场和发展
艺杯羹2 小时前
AI编程时代软件工程怎么学:从底层思维认知到驱动智能体的架构跃迁
java·人工智能·ai·架构·软件工程·ai编程