hcs-vpc-security-groups
查询华为云安全组的技能,提供两个能力:
- 能力 A:列出账号下(region/project 范围)的安全组列表,可选按
vpc_id过滤。 - 能力 B:查询指定 VPC 关联的安全组集合(VPC → 子网 → 端口/网卡 → security_groups 聚合)。
环境变量(认证)
真实调用前需设置(不硬编码密钥):
| 变量 | 必填 | 说明 |
|---|---|---|
HWCLOUD_AK |
是 | 华为云 Access Key |
HWCLOUD_SK |
是 | 华为云 Secret Key |
HWCLOUD_PROJECT_ID |
否 | 项目 ID,缺省由 AK/SK 解析默认项目 |
使用
# 能力 A:列出安全组(默认区域 cn-east-3,华东-上海一)
python3 scripts/hcs-vpc-security-groups.py list --region cn-east-3
# 能力 A:按 VPC 过滤
python3 scripts/hcs-vpc-security-groups.py list --vpc-id <vpc_id>
# 能力 B:查询 VPC 关联安全组(按 ID 或名称)
python3 scripts/hcs-vpc-security-groups.py vpc --vpc <vpc_id 或 vpc_name>
# Markdown 表格输出
python3 scripts/hcs-vpc-security-groups.py vpc --vpc <vpc_id> --format md
# 无凭证验证(内置模拟数据)
python3 scripts/hcs-vpc-security-groups.py list --mock
python3 scripts/hcs-vpc-security-groups.py vpc --vpc prod-vpc --mock
输出
默认 JSON,字段:
{
"capability": "list",
"region": "cn-east-3",
"count": 2,
"security_groups": [
{"id": "sg-xxx", "name": "web-sg", "description": "web tier", "rule_count": 2}
]
}
能力 B 额外含 vpc: {id, name}。--format md 输出 Markdown 表格(安全组ID/名称/描述/规则数)。
退出码
| 码 | 含义 |
|---|---|
| 0 | 成功 |
| 2 | 参数错误 |
| 3 | 缺少认证(未设置 HWCLOUD_AK/HWCLOUD_SK) |
| 4 | API 调用失败 |
依赖
- Python 3.8+
- 真实调用:
huaweicloudsdkvpc(见requirements.txt) - mock 模式无需任何第三方依赖
实现说明
华为云 VPC 未提供「VPC → 安全组」的直接接口。安全组通过**端口/网卡(Port)**挂载到子网下的实例,因此能力 B 的实现路径为:
VPC → 子网列表(list_subnets) → 端口列表(list_ports) → 收集 security_groups → 关联安全组集合
详见 references/vpc-security-group-api.md。
