返回技能市场
开发运维 安全

云安全中心多账号安全运营

@aliyun/alibabacloud-sas-multiaccount-manage

云安全中心多账号安全运营Skill。该 Skill 可帮助安全团队统一查看并处置各账号在云安全中心中的漏洞、基线等风险状态,降低多账号切换带来的管理成本。

云Skills门户 热度 37v0.0.1

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

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

前提条件和环境设置

1. 安装阿里云 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 模式和插件模式(必须)

此 skill 要求使用阿里云 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,且账号启用/禁用配置已完成。
  • 阿里云 CLI 已配置有效凭据,并具有 SAS 的 export-recorddescribe-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,且账号启用/禁用配置已完成。
  • 阿里云 CLI 已配置有效凭据,并具有 SAS 的 export-vuldescribe-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 管理阿里云 CLI 凭证;不得硬编码 AK/SK。
  • SAS API 仅支持两个端点:cn-shanghai(中国内地)和 ap-southeast-1(中国内地以外)。
qianwen skills install @aliyun/alibabacloud-sas-multiaccount-manage