Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

云资源枚举

404tk edited this page May 6, 2026 · 5 revisions

场景定位

cloudlist 对当前凭据可见的云资产做一次聚合枚举,用于验证 CSPM / CNAPP 的资产清单覆盖度:已知的云账号下是否全部资产都能被采集、字段是否完整、能否识别公网暴露面。

支持 9 家云厂商:阿里云、AWS、腾讯云、华为云、Azure、火山引擎、京东云、GCP、UCloud。

各厂商覆盖类别

config.yamlcloudlist 段配置了想枚举哪些资源类别(默认全开);单个 provider 是否实现该类别决定了实际能否拿到数据。当前实现矩阵:

厂商 balance host domain account database bucket sms log
alibaba
aws
azure
gcp
huawei
jdcloud
tencent
ucloud
volcengine

表示该云无原生等价服务(AWS / Azure / GCP 没有"sms 模板审计"概念,调研后跳过)。未实现的类别会被 provider 静默跳过,不影响其它类别的枚举。

指定区域

默认 region=all(枚举所有已知区域)。如只关心某个 region:

ctk > aws > set region eu-west-3

AWS 中国区

AWS 中国区与全球区接口域名不同,通过 version 切换:

ctk > aws > set version China

配置文件

首次启动会在当前目录或 ~/.config/cloudtoolkit/config.yaml 落地配置,关键字段:

common:
 log_enable: false # 是否把枚举结果落盘到 logs/
 list_policies: false # 是否展开 IAM 策略 JSON 详情
 log_dir: logs # 日志目录
 timeout_minutes: 10 # 单次 run 的全局超时
 log_format: text # text | json — json 输出每行一条 JSON Line,便于 SIEM 摄取
cloudlist:
 - balance # 账户余额 / billing 可见性
 - host # 云主机(ECS / CVM / EC2 / VM ...)
 - domain # 域名解析记录
 - account # IAM / RAM / CAM 用户
 - database # 云数据库实例
 - bucket # 对象存储
 - sms # 云通信(短信签名/模板等)
 - log # 日志服务(SLS / CloudWatch Logs / Cloud Logging ...)
iam-user-check:
 action: add # 默认动作;REPL 中 `set payload iam-user-check` 时会预填 metadata
 username: <set-before-first-run>
 password: <set-before-first-run>
rds-account-check:
 username: <set-before-first-run>
 password: <set-before-first-run>

# 注释掉不希望枚举的类别即可。iam-user-check / rds-account-check 段是对应 payload 的 metadata 模板,真实验证前请填入自己生成的强口令

部分失败语义

cloudlist 对单个子服务(某个 region / 某个资产类别)的失败会用 partial enumeration errors 汇总提示,但已成功获取的资产仍会输出。如果整个 provider 的枚举都失败(例如凭据不合法),会直接报错返回。在 无人值守模式下,部分失败会以退出码 2 呈现,便于编排时区分"全失败 / 部分失败 / 全成功"。

验证思路

防御方可以对照同一账号的 CSPM / CNAPP 资产清单,与 ctk 的输出做差异分析:

  • CSPM 里有但 ctk 没枚举到 → ctk 覆盖缺口(欢迎提 issue)
  • ctk 枚举到但 CSPM 里缺失 → CSPM 清单存在盲区,需要排查采集通路
  • 两边都有但字段粒度不同 → 评估调查链路上字段是否足够

Clone this wiki locally

AltStyle によって変換されたページ (->オリジナル) /