huaweicloud-config-helper
/install huaweicloud-config-helper
\r \r
Config 配置审计服务助手\r
\r 使用scripts中的脚本,通过Config服务,查询云上资源情况、资源配置、资源schema、云服务的预置合规规则。具体有如下能力:\r \r
- 查询资源概览;\r
- 查询资源Schema;\r
- 按条件通过SQL查询资源;\r
- 资源合规性分析:包含但不限于从以下维度分析资源配置,'为事件响应做好准备', '优化成本', '身份管理', '保护数据完整性', '保护配置', '加密传输中的数据', '加密静态数据', '建立日志记录和监控', '强制执行最低权限', '提高可用性', '提高韧性', '管理机密', '管理漏洞', '管理规格', '限制网络访问', '资源管理';\r \r
前置条件\r
\r
环境变量配置\r
\r 在使用此技能前,需要确保以下环境变量已正确配置。这些是访问华为云Config服务的必要凭证。\r \r 必需的环境变量:\r \r
HUAWEICLOUD_AK- 访问密钥(Access Key)\rHUAWEICLOUD_SK- 秘密密钥(Secret Access Key)\r \r 重要提示:\r \r- 这些环境变量包含敏感信息,检查配置时严禁在控制台打印\r
- 用户配置的AK仅需要
Config ReadOnlyAccess的权限,用户无需过度授权\r \r 配置步骤:\r \r
- Windows PowerShell 配置:\r
$env:HUAWEICLOUD_AK="your_access_key"\r $env:HUAWEICLOUD_SK="your_secret_key"\r ```\r
\r
2. 或通过系统环境变量配置:\r
- Windows: 在"系统属性" > "环境变量"中设置\r
- Linux/Mac: 在 ~/.bashrc 或 ~/.zshrc 中添加 export 命令\r
\r
3. 验证配置:\r
# 验证但不打印敏感信息\r
if (-not $env:HUAWEICLOUD_AK) { Write-Error "HUAWEICLOUD_AK 未配置" }\r
```\r
\r
### 依赖安装\r
\r
确保已安装以下Python依赖:\r
\r
```bash\r
pip install huaweicloudsdkconfig huaweicloudsdkcore\r
```\r
\r
## 工作流程\r
\r
### 资源查询\r
\r
#### 1. 查询资源概览\r
\r
获取华为云上所有资源的汇总统计信息。\r
\r
**命令:**\r
\r
```shell\r
python scripts/query_Config_resource_summary.py\r
```\r
\r
**参数说明:**\r
\r
- `--provider`: 可选,表示只查询某个云服务的资源概览, 示例:\r
- `obs`\r
- `vpc`\r
\r
- `--region_id`: 可选,表示只查询某个区域的资源概览, 示例:\r
- `cn-north-4`: 北京四\r
- `cn-east-3`: 上海一\r
- `global`: 全局\r
\r
\r
**输出格式:**\r
\r
- JSON格式,包含各区域、各服务类型的资源数量统计\r
- 示例:\r
```json\r
[\r
{\r
"provider": "vpc",\r
"type": "vpcs",\r
"region_id": "cn-north-1",\r
"cnt": 5\r
},\r
{\r
"provider": "kms",\r
"type": "keys",\r
"region_id": "cn-north-4",\r
"cnt": 2\r
},\r
{\r
"provider": "iam",\r
"type": "users",\r
"region_id": "global",\r
"cnt": 5\r
}\r
]\r
```\r
\r
**使用场景:**\r
\r
- 快速了解云上资源分布\r
- 识别资源密集的区域和服务\r
- 为资源审计、成本优化、安全配置等场景提供基础数据\r
\r
#### 2. 查询资源Schema\r
\r
获取指定资源类型的详细结构定义,包括所有可用字段及其类型。\r
\r
**命令:**\r
\r
```shell\r
python scripts/query_Config_resource_schema.py --resource_type=obs.buckets\r
```\r
\r
**参数说明:**\r
\r
- `--resource_type`: 资源类型标识符,格式为 `provider.type`, 示例:\r
- `obs.buckets`: 对象存储桶、OBS桶;\r
- `ecs.cloudservers`: 云服务器、虚机、ECS;\r
- `iam.users`: IAM用户;\r
- `vpc.securityGroups `: VPC安全组;\r
- `fgs.functions`: 函数工作流、函数、FunctionGraph;\r
\r
**输出格式:**\r
\r
- JSON格式,包含资源的完整Schema定义\r
- 包含字段名称、类型、描述等信息\r
\r
**使用场景:**\r
\r
- 了解资源结构和可用字段\r
- 编写SQL查询前确定查询字段\r
- 理解资源的配置属性\r
\r
#### 3. 按条件查询资源(高级SQL查询)\r
\r
通过SQL语句进行复杂的资源查询,支持多条件筛选、聚合分析等。\r
\r
**支持的查询字段:**\r
\r
- 基础字段: `id`, `name`, `provider`, `type`, `region_id`, `project_id`, `created`, `updated`, `tag`\r
- 扩展字段: `properties` (JSON对象,包含具体资源配置,每种资源类型的结构与资源schema保持一致)\r
\r
**SQL语法特点:**\r
\r
- 只能查询 `resources` 表\r
- 支持标准SQL语法: SELECT, WHERE, GROUP BY, ORDER BY\r
- 支持数组操作: `transform`, `filter`, `any_match`, `contains`\r
- 支持日期函数: `date_diff`, `date_parse`\r
-\r
\r
**重要提示:**\r
\r
- 使用前请先查询资源Schema了解可用字段\r
- 参考 `scripts/sql-example.json` 查看丰富的查询示例\r
- SQL语句需要用双引号包裹,内部字符串使用单引号\r
- 如果没有查询到资源,查询资源概览已确认云上资源分布\r
\r
**示例1: 查询特定区域的所有资源**\r
\r
首先确定查询需求,生成SQL语句:\r
\r
```sql\r
select id, name, provider, type, region_id, properties\r
from resources\r
where region_id = 'cn-north-4'\r
```\r
\r
执行查询:\r
\r
```shell\r
python scripts/query_Config_resource_by_sql.py --sql="select id, name, provider, type, properties from resources where region_id = 'cn-north-4'"\r
```\r
\r
**示例2: 查询IAM用户的密码强度**\r
\r
步骤1: 查询iam.users的Schema了解可用字段\r
\r
```shell\r
python scripts/query_Config_resource_schema.py --resource_type=iam.users\r
```\r
\r
步骤2: 基于Schema发现密码相关字段为 `pwd_status` 和 `pwd_strength`\r
\r
步骤3: 编写SQL查询\r
\r
```sql\r
select id, name, provider, type, properties.pwd_status, properties.pwd_strength\r
from resources\r
where provider = 'iam'\r
and type = 'users'\r
```\r
\r
步骤4: 执行查询\r
\r
```shell\r
python scripts/query_Config_resource_by_sql.py --sql="select id, name, provider, type, properties.pwd_status, properties.pwd_strength from resources where provider = 'iam' and type = 'users'"\r
```\r
\r
**更多SQL示例:**\r
\r
- 查询运行中的ECS: `SELECT * FROM resources WHERE provider='ecs' AND type='cloudservers' AND properties.status='ACTIVE'`\r
- 查询未加密的EVS: `SELECT * FROM resources WHERE provider='evs' AND type='volumes' AND NOT properties.encrypted`\r
- 按区域统计资源数: `SELECT region_id, count(*) FROM resources GROUP BY region_id`\r
- 更多案例: 请学习 `scripts/sql-example.json` 中的案例\r
\r
**输出格式:**\r
\r
- JSON数组,每条记录代表一个匹配的资源\r
- 包含查询中指定的所有字段\r
\r
### 合规规则查询\r
\r
#### 查询云服务的预置合规规则\r
\r
获取华为云Config服务的预置合规规则列表,用于资源合规性检查。\r
\r
**命令:**\r
\r
查询特定云服务的合规规则:\r
\r
```shell\r
python scripts/query_Config_builtin_rule.py --keyword=obs\r
```\r
\r
查询所有合规规则(限制返回数量):\r
\r
```shell\r
python scripts/query_Config_builtin_rule.py --limit=10\r
```\r
\r
**参数说明:**\r
\r
- `--keyword`: 过滤关键字,匹配规则名称或描述中包含该关键字的规则\r
- `--limit`: 限制返回结果数量,默认为10\r
\r
**输出格式:**\r
\r
- JSON数组,每个元素包含规则ID、名称、描述等信息\r
- 示例:\r
```json\r
{\r
"name": "obs-bucket-https-only",\r
"display_name": "OBS桶必须使用HTTPS",\r
"description": "检查OBS桶是否强制使用HTTPS协议访问"\r
}\r
```\r
\r
**使用场景:**\r
\r
- 了解可用的合规规则\r
- 选择合适的规则进行合规性检查\r
- 制定资源合规策略\r
\r
## 华为云场景知识\r
\r
以下为华为云云服务的场景化知识,在分析资源的安全配置时,需要考虑以下信息:\r
\r
**VPC默认安全组**\r
\r
VPC默认安全组(名称为default)为系统内置资源,不可删除。为提升安全性,将所有出方向、入方向的安全组规则停用或改为Deny的操作权限。\r
\r
**AK/SK安全配置**:\r
\r
华为云的Access Key(AK)为20位随机字符串(例如HPUAAJJAC9GJZDIQCTHN),Secret Key(SK)为40位随机字符串。在资源配置中,仅允许在iam.users字段中包含AK信息,严禁在任何资源配置中明文存储或传递SK。若检测到SK存在于配置中,则判定为敏感信息泄露风险,需立即整改。\r
\r
**云服务中英文对接关系**\r
\r
| provider | type | 中文名 | 服务功能 |\r
|:---------|:---------|:------------|:------------------------|\r
| cts | trackers | 云审计服务追踪器 | 提供对各种云资源操作记录的收集、存储和查询功能 |\r
| config | trackers | 配置审计服务资源记录器 | 提供资源配置的持续的审计能力 |\r
\r
## 最佳实践\r
\r
### SQL查询优化\r
\r
1. **使用WHERE条件限制查询范围**\r
- 总是添加 `region_id` 或其他过滤条件,避免全表扫描\r
- 示例: `WHERE region_id = 'cn-north-4'`\r
\r
2. **只查询需要的字段**\r
- 避免使用 `SELECT *`,明确指定需要的字段\r
- 减少数据传输量,提高查询效率\r
\r
3. **合理使用聚合函数**\r
- 对于统计需求,使用 `count()`, `sum()` 等聚合函数\r
- 示例: `SELECT region_id, count(*) FROM resources GROUP BY region_id`\r
\r
### 安全注意事项\r
\r
1. **保护敏感信息**\r
- 严禁在日志、控制台输出AK/SK等敏感信息\r
- 使用环境变量存储凭证,不要硬编码在脚本中\r
- 定期轮换AK/SK\r
- 仅需`Config ReadOnlyAccess`的权限,用户无需过度授权\r
\r
2. **最小权限原则**\r
- 为Config服务配置最小必要权限\r
- 定期审查API访问权限\r
\r
3. **网络安全**\r
- 确保代理配置正确,通过安全通道访问华为云\r
- 在生产环境中使用HTTPS\r
\r
### 性能优化建议\r
\r
1**批量查询优于单个查询**\r
\r
- 对于多个资源,使用SQL批量查询而非多次API调用\r
- 利用SQL的JOIN和子查询功能\r
\r
2**合理安排查询时间**\r
\r
- 避免在业务高峰期执行大规模资源查询\r
- 考虑在非工作时间执行资源审计\r
\r
### 数据处理建议\r
\r
1. **结果验证**\r
- 检查查询结果的完整性\r
- 验证关键字段的合理性\r
\r
2. **数据格式化**\r
- 将JSON结果转换为易读格式(如表格)\r
- 对于大量数据,考虑导出到文件\r
\r
3. **异常处理**\r
- 注意处理查询失败的情况\r
- 检查API返回的错误信息\r
\r
## 常见问题(FAQ)\r
\r
### Q1: 提示"认证失败"怎么办?\r
\r
**A:** 检查以下几点:\r
\r
- 确认 `HUAWEICLOUD_AK` 和 `HUAWEICLOUD_SK` 环境变量已正确配置\r
- 验证AK/SK是否有效且未过期\r
- 确认账号有访问Config服务的权限\r
- 检查网络连接和代理配置\r
\r
### Q2: SQL查询返回空结果?\r
\r
**A:** 可能的原因:\r
\r
- 查询条件过于严格,尝试放宽条件\r
- 检查资源类型名称是否正确(区分大小写)\r
- 确认指定区域确实有资源\r
- 先查询资源概览,了解资源分布\r
\r
### Q3: 如何查询特定时间范围内创建的资源?\r
\r
**A:** 使用日期函数:\r
\r
```sql\r
SELECT *\r
FROM resources\r
WHERE created >= '2024-01-01T00:00:00Z'\r
AND created \x3C= '2024-12-31T23:59:59Z'\r
```\r
\r
### Q4: 如何查询没有标签的资源?\r
\r
**A:** 使用 `cardinality` 函数:\r
\r
```sql\r
SELECT *\r
FROM resources\r
WHERE cardinality(tag) = 0\r
```\r
\r
### Q5: 如何处理JSON数组字段的查询?\r
\r
**A:** 使用数组操作函数:\r
\r
- `any_match`: 检查数组中是否存在满足条件的元素\r
- `transform`: 转换数组元素\r
- `filter`: 过滤数组元素\r
\r
示例:\r
\r
```sql\r
SELECT *\r
FROM resources\r
WHERE any_match(properties.securityGroup, x - > x.id = 'xxx')\r
```\r
\r
### Q6: 如何获取资源关系的完整信息?\r
\r
**A:** 建议步骤:\r
\r
1. 先查询主资源(如ECS)的Schema\r
2. 识别关联字段(如 `ExtVolumesAttached`)\r
3. 查询关联资源(如EVS)的Schema\r
4. 编写JOIN查询获取完整信息\r
\r
## 错误处理\r
\r
### 常见错误及解决方案\r
\r
| 错误信息 | 可能原因 | 解决方案 |\r
|-------------------------------|--------------|------------------------------------|\r
| `Authentication failed` | AK/SK配置错误或无效 | 检查环境变量配置,验证AK/SK有效性 |\r
| `Resource not found` | 资源类型不存在 | 检查资源类型名称,先查询可用资源类型 |\r
| `SQL syntax error` | SQL语句语法错误 | 检查SQL语法,参考示例文件 |\r
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install huaweicloud-config-helper - 安装完成后,直接呼叫该 Skill 的名称或使用
/huaweicloud-config-helper触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
huaweicloud-config-helper 是什么?
华为云Config配置审计服务的专业助手,提供全局资源查询、资源配置查询、资源Schema查询、SQL条件查询以及合规规则查询能力。当用户需要查询华为云资源、进行资源审计、检查配置合规性、盘点云上资产、分析资源关系、查询特定资源状态、验证资源配置、或需要通过SQL进行复杂资源查询时,必须使用此技能。即使未明确提及... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 101 次。
如何安装 huaweicloud-config-helper?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install huaweicloud-config-helper」即可一键安装,无需额外配置。
huaweicloud-config-helper 是免费的吗?
是的,huaweicloud-config-helper 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
huaweicloud-config-helper 支持哪些平台?
huaweicloud-config-helper 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 huaweicloud-config-helper?
由 Jupiter-19(@jupiter-19)开发并维护,当前版本 v1.0.0。