mcpField
A
alibabacloud-sas-multiaccount-manage

alibabacloud-sas-multiaccount-manage

github.com/aliyun安全281112 次安装1 天前更新
代码仓库

关于 alibabacloud-sas-multiaccount-manage

通过 aliyun CLI 和 Python 脚本管理 Alibaba Cloud 资源目录账户,并批量导出 Security Center 报告。它将已启用账户的基线和漏洞结果合并为 Excel 文件。

主要功能

  1. 01刷新并搜索账户列表
  2. 02启用或停用导出账户
  3. 03批量导出基线报告
  4. 04导出四类漏洞报告
  5. 05将多账户结果合并为 Excel

适用场景

  1. 01汇总多个账户的 CSPM 结果
  2. 02查看多个账户的系统基线风险
  3. 03整合多个账户的漏洞报告

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/aliyun/alibabacloud-aiops-skills --skill alibabacloud-sas-multiaccount-manage

安装后在 Claude Code 中输入/alibabacloud-sas-multiaccount-manage确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
ram-policies.md
scripts/
accounts.py
baseline.py
merge.py
pyproject.toml
requirements.txt
vuln.py

详细介绍

阿里云云安全中心多账号管理与基线报告导出

使用 aliyun CLI 和 Python 脚本管理资源目录中的多个阿里云账号,并为每个账号批量导出云安全中心基线报告。

前置条件与环境设置

1. 安装 Alibaba Cloud CLI
# macOS
brew install aliyun-cli

# Or download from GitHub: https://github.com/aliyun/aliyun-cli/releases

检查凭据:

aliyun sts get-caller-identity

如果调用失败,请提示用户运行 aliyun configure 并设置凭据(交互步骤,必须由用户完成)。

1.1 配置 AI 模式和插件模式(必需)

此技能需要使用 aliyun CLI 插件模式命令(kebab-case)和固定的 User-Agent 声明。

# Keep plugins up to date
aliyun plugin update

# Install required product plugins if missing
aliyun plugin install --names aliyun-cli-sts,aliyun-cli-sas

# Enable AI mode and set required UA segment
aliyun configure ai-mode enable
aliyun configure ai-mode set-user-agent --user-agent AlibabaCloud-Agent-Skills

# Optional checks / rollback
aliyun configure ai-mode show
aliyun configure ai-mode disable
2. 安装 Python ≥ 3.6
# Check version
python3 --version  # Requires 3.6+, 3.9+ recommended
3. 创建虚拟环境并安装依赖项

在 <skill-path>/scripts/ 中创建虚拟环境,并安装 pyproject.toml 中声明的依赖项:

cd scripts/

# Option A: use venv
python3 -m venv .venv
.venv/bin/pip install -e .

# Option B: use uv (optional)
uv sync

# Option C: if current Python version is unsupported, install as system dependencies
pip install -r requirements.txt
4. 运行命令

所有脚本都必须使用虚拟环境中的 Python 执行(无论虚拟环境是通过 venv、uv、conda 等创建的)。本文示例使用 .venv/bin/python;请将其替换为实际的虚拟环境路径。


工作目录

accounts.json 和导出的 Excel 文件会保存在 Agent 的当前工作目录(执行命令的目录)中。脚本文件本身位于 <skill-path>/scripts/。运行命令时请勿切换到 scripts 目录,否则 accounts.json 的位置可能会意外改变。

# Example: run from any directory
.venv/bin/python /path/to/scripts/accounts.py refresh

功能 1:账号管理(accounts.py)

工作流
  1. 首次使用:运行 refresh,从资源目录获取账号列表。
  2. 按需筛选:使用 search 查找目标账号并获取 AccountId。
  3. 启用/禁用控制:使用 enable / disable 决定哪些账号参与批量导出。
快速入门
刷新账号列表

从阿里云资源目录获取最新账号列表并写入 accounts.json。现有的 enable 状态会保留;新账号默认启用。

.venv/bin/python accounts.py refresh
列出所有账号
.venv/bin/python accounts.py list

示例输出:

1225574417218097    cwx                     [enabled]
1234567890123456    prod-account            [disabled]
搜索账号

按 DisplayName 模糊搜索,并返回 AccountId 和启用状态。

.venv/bin/python accounts.py search cwx
.venv/bin/python accounts.py search prod
启用/禁用账号

控制账号是否参与后续批量导出。

.venv/bin/python accounts.py enable 1225574417218097
.venv/bin/python accounts.py disable 1234567890123456
accounts.json 结构
[
  {
    "AccountId": "1225574417218097",
    "DisplayName": "cwx",
    "FolderId": "r-1Q4pqB",
    "IsMaAccount": "NO",
    "SasVersion": "0",
    "enable": true
  }
]

功能 2:批量导出基线报告(baseline.py)

为所有 enable=true 的账号并发启动导出任务。轮询任务直至完成后,下载文件、解压并合并为一个 Excel 文件。

工作流
  1. 并发提交:为所有已启用账号提交 export-record 请求(QPS ≤ 5)。
  2. 并发轮询:针对每个账号轮询 describe-export-info,直至导出完成。
  3. 下载并解压:下载 zip 并解压 xlsx。
  4. 合并输出:通过 merge.py 将所有账号的 xlsx 文件合并为一个文件,并添加“资源目录账号”列。
  5. 清理临时文件:合并后删除各账号的临时 xlsx 文件。
前置条件
  • 已运行 accounts.py refresh,并完成账号启用/禁用配置。
  • aliyun CLI 已配置有效凭据,并具有 SAS export-record 和 describe-export-info 权限。
  • 账号必须已购买云安全中心(免费版账号会自动跳过)。
导出云平台配置检查结果(CSPM)

为所有已启用账号导出 baselineCspm 结果,并合并为 baseline-cspm-merged-{date}.xlsx。

# Export for all enabled accounts
.venv/bin/python baseline.py export-cspm

# Export for one specific account
.venv/bin/python baseline.py export-cspm --account-id 1225574417218097
导出系统基线风险列表

为所有已启用账号导出 exportHcWarning 风险列表(高/中/低,所有状态),并合并为 system-warning-merged-{date}.xlsx。

# Export for all enabled accounts
.venv/bin/python baseline.py export-system-warning

# Export for one specific account
.venv/bin/python baseline.py export-system-warning --account-id 1225574417218097
输出文件
文件描述
baseline-cspm-merged-{date}.xlsx合并后的云平台配置检查结果,包含“资源目录账号”列
system-warning-merged-{date}.xlsx合并后的系统基线风险列表,包含“资源目录账号”列
错误处理
场景行为
FreeVersionNotPermit静默跳过此账号并继续处理其他账号
NoPermission / Forbidden静默跳过此账号
导出失败(服务端错误)输出 [failed] 消息并继续处理其他账号
跳过所有账号输出消息并退出,不生成输出文件

功能 3:批量导出漏洞(vuln.py)

为所有 enable=true 的账号并发启动漏洞导出任务。支持四种漏洞类型。轮询任务完成后,自动下载、解压并合并文件。

工作流
  1. 并发提交:为所有启用的账号提交 export-vul --force 请求(QPS ≤ 5)。
  2. 并发轮询:为每个账号轮询 describe-vul-export-info --force,直到导出完成。
  3. 下载并解压:下载 zip 并解压 xlsx。
  4. 合并输出:通过 merge.py 将所有账号的 xlsx 文件合并为一个文件,并追加“资源目录账号”列。
  5. 清理临时文件:合并后删除每个账号的临时 xlsx 文件。

当前账号与调用方的主账号相同时,将自动省略 --ResourceDirectoryAccountId。

前提条件
  • 已执行 accounts.py refresh,并完成账号启用/停用配置。
  • aliyun CLI 已配置有效凭证,并具有 SAS export-vul 和 describe-vul-export-info 权限。
  • 账号必须已购买云安全中心(免费版账号将自动跳过)。
导出 Linux 软件漏洞(CVE)

为所有启用的账号导出未解决的 Linux 软件漏洞(高/中/低优先级),并合并到 vul-cve-merged-{date}.xlsx。

# Export for all enabled accounts
.venv/bin/python vuln.py export-cve

# Export for one specific account
.venv/bin/python vuln.py export-cve --account-id 1225574417218097
导出 Windows 系统漏洞

为所有启用的账号导出未解决的 Windows 系统漏洞(高/中/低优先级),并合并到 vul-sys-merged-{date}.xlsx。

.venv/bin/python vuln.py export-sys
.venv/bin/python vuln.py export-sys --account-id 1225574417218097
导出应用漏洞(包括 SCA)

为所有启用的账号导出未解决的应用漏洞(ECS + 容器,包括软件成分分析),并合并到 vul-app-merged-{date}.xlsx。

.venv/bin/python vuln.py export-app
.venv/bin/python vuln.py export-app --account-id 1225574417218097
导出应急漏洞

为所有启用的账号导出应急漏洞(风险状态),并合并到 vul-emg-merged-{date}.xlsx。

.venv/bin/python vuln.py export-emg
.venv/bin/python vuln.py export-emg --account-id 1225574417218097
输出文件
文件描述
vul-cve-merged-{date}.xlsx合并后的 Linux 软件漏洞列表,包含“资源目录账号”列
vul-sys-merged-{date}.xlsx合并后的 Windows 系统漏洞列表,包含“资源目录账号”列
vul-app-merged-{date}.xlsx合并后的应用漏洞列表(包括 SCA),包含“资源目录账号”列
vul-emg-merged-{date}.xlsx合并后的应急漏洞列表,包含“资源目录账号”列
导出参数详情
类型export-vul 参数
export-cve--Type cve --Necessity asap,later,nntf --Dealed n
export-sys--Type sys --Necessity asap,later,nntf --Dealed n
export-app--Type app --Necessity asap,later,nntf --AttachTypes sca --AssetType ECS,CONTAINER --Dealed n
export-emg--Type emg --RiskStatus y --Dealed n
错误处理
场景行为
FreeVersionNotPermit静默跳过此账号并继续处理其他账号
NoPermission / Forbidden静默跳过此账号
导出失败(服务端错误)打印 [failed] 消息并继续处理其他账号
跳过所有账号打印消息并退出,不生成输出文件

注意事项

  • 脚本必须在虚拟环境中运行。示例使用 .venv/bin/python;请替换为实际的虚拟环境路径。
  • 使用 aliyun configure 管理 aliyun CLI 凭证;不要将 AK/SK 硬编码。
  • SAS API 仅支持两个端点:cn-shanghai(中国大陆)和 ap-southeast-1(中国大陆以外)。

评论

支持 Markdown