1. 前置条件
预检查:需要 Aliyun CLI >= 3.3.1
运行 aliyun version 验证版本 >= 3.3.1。如果未安装或版本太低,
请参阅 references/cli-installation-guide.md 获取安装说明。
然后 [必须] 运行 aliyun configure set --auto-plugin-install true 以启用自动插件安装。
预检查:需要阿里云凭证
>
安全规则:
>
- 禁止 读取、回显或打印 AK/SK 值(例如 echo $ALIBABA_CLOUD_ACCESS_KEY_ID 是禁止的)
- 禁止 要求用户在对话或命令行中直接输入 AK/SK
- 禁止 使用带字面凭证值的 aliyun configure set
- 仅 使用 aliyun configure list 检查凭证状态
>
> aliyun configure list
>
检查输出中是否有有效的配置文件(AK、STS 或 OAuth 身份)。
>
如果没有有效的配置文件,请在此处停止。
>
1. 从阿里云控制台获取凭证
2. 在此会话之外配置凭证(通过终端中的 aliyun configure 或 shell 配置文件中的环境变量)
3. 返回并在 aliyun configure list 显示有效配置文件后重新运行
2. 参数确认
重要:参数确认 — 在执行任何命令或 API 调用之前,
所有用户可自定义的参数(例如 RegionId、实例名称、CIDR 块、
密码、域名、资源规格等)必须与用户确认。不要未经用户明确同意就假设并使用默认值。
| 参数 | 必填/可选 | 描述 | 默认值 |
|---|
Scope | 必填(跨账号) | 跨账号搜索范围:资源目录 ID、根文件夹 ID、文件夹 ID 或成员 ID | 无 |
ResourceType | 可选 | 资源类型(例如 ACS::ECS::Instance) | 无(所有类型) |
RegionId | 可选 | 资源 Region ID(例如 cn-hangzhou) | 无(所有区域) |
ResourceId | 可选 | 资源 ID | 无 |
ResourceName | 可选 | 资源名称 | 无 |
VpcId | 可选 | VPC ID(例如 vpc-xxx) | 无 |
VSwitchId | 可选 | VSwitch(例如 vsw-xxx) | 无 |
IpAddress | 可选 | IP 地址 | 无 |
GroupByKey | 可选 | 统计分组维度:ResourceType、RegionId、ResourceGroupId | 无 |
MaxResults | 可选 | 分页 API 的页面大小。 | 20 |
3. RAM 策略
完整的权限列表请参阅 references/ram-policies.md。推荐的系统策略:
- 只读:
AliyunResourceCenterReadOnlyAccess
- 完全访问:
AliyunResourceCenterFullAccess
开启资源中心将自动创建服务关联角色 AliyunServiceRoleForResourceMetaCenter。
资源可见性范围
RAM 策略(在 ram-policies.md 中定义)控制用户是否可以调用资源中心 API。然而,对于搜索 API(SearchResources、GetResourceCounts、GetResourceConfiguration、SearchMultiAccountResources、GetMultiAccountResourceCounts、GetMultiAccountResourceConfiguration),结果中可见的资源范围由各云产品自身的权限决定:
单账号
- 云资源读取权限:RAM 用户只能看到其在相应云产品上具有只读访问权限的资源中心资源。例如,授予
ReadOnlyAccess 让用户看到其有权访问的所有资源;仅授予 AliyunVPCReadOnlyAccess 则将可见性限制为 VPC 资源。
- 资源组范围的权限:如果资源按资源组组织,您可以授予 RAM 用户针对特定资源组的只读访问权限。用户只能看到该组内的资源,从而实现资源隔离。
跨账号
- 将系统策略
AliyunResourceCenterFullAccess 授予资源目录管理账号的 RAM 用户,以启用跨账号资源搜索。
4. 核心工作流程
步骤 1:根据用户需求确定 API
根据用户的具体场景确定需要哪些 API。请参阅下面的场景卡片。
步骤 2:[必须] 在每次 CLI 调用前阅读 API 文档
关键警告:在首先阅读 references/related-apis.md 中的确切参数格式之前,不要执行任何 aliyun resourcecenter 命令。
>
失败模式:猜测参数(如 --filter 格式)会导致错误。正确的 JSON 结构必须从文档中复制。
>
强制操作:在构建任何 CLI 命令之前,打开并阅读 references/related-apis.md 中的特定 API 部分。
场景卡片
场景 1:服务启用
| 需求 | 账号类型 | API | 描述 |
|---|
| 检查是否启用 | 单账号 | get-resource-center-service-status | 返回服务状态 |
| 启用服务 | 单账号 | enable-resource-center | 首次使用所需 |
| 检查跨账号状态 | 资源目录 | get-multi-account-resource-center-service-status | 多账号场景 |
| 启用跨账号服务 | 资源目录 | enable-multi-account-resource-center | 需要管理账号或委派管理员 |
场景 2:资源类型发现
| 需求 | 账号类型 | 脚本 | 描述 |
|---|
| 通过关键词查找资源类型代码 | 单账号 | scripts/query-resource-types.py | 在 ResourceType、ProductName 和 ResourceTypeName 字段中搜索 |
决策逻辑:
- 当需要按资源类型过滤但不知道确切代码时 -> 首先使用此脚本
- 发现正确的
ResourceType 代码后 -> 在搜索或计数 API 中使用 --filter 参数
场景 3:资源搜索
| 需求 | 账号范围 | API | 关键参数 |
|---|
| 按条件搜索资源 | 当前账号 | search-resources | --filter |
| 跨账号资源搜索 | 资源目录 | search-multi-account-resources | --scope + --filter |
| 搜索包含已删除的资源 | 当前账号 | search-resources | --include-deleted-resources=true |
场景 4:查看资源详情
| 需求 | 账号范围 | API | 用例 |
|---|
| 获取单个资源配置 | 当前账号 | get-resource-configuration | 获取完整配置详情 |
| 批量获取多个资源配置 | 当前账号 | batch-get-resource-configurations | 一次获取多个资源 |
| 从另一个账号获取资源配置 | 资源目录 | get-multi-account-resource-configuration | 跨账号查看 |
场景 5:统计和分析
| 需求 | 账号范围 | API | 分组维度 |
|---|
| 统计资源数量 | 当前账号 | get-resource-counts | ResourceType、RegionId、ResourceGroupId |
| 跨账号统计 | 资源目录 | get-multi-account-resource-counts | ResourceType、RegionId、ResourceGroupId |
场景 6:标签发现
| 需求 | 账号范围 | API | 描述 |
|---|
| 列出所有标签键 | 当前账号 | list-tag-keys | 浏览标签目录 |
| 列出特定标签键的值 | 当前账号 | list-tag-values | 例如,列出 env 的所有值 |
| 跨账号标签键 | 资源目录 | list-multi-account-tag-keys | 多账号场景 |
| 跨账号标签值 | 资源目录 | list-multi-account-tag-values | 多账号场景 |
5. 成功验证
每个工作流程步骤的详细验证步骤和命令请参阅 references/verification-method.md。
6. 注意事项
[必须] 高风险操作确认 — 在执行 disable-resource-center 或 disable-multi-account-resource-center 之前:
>
1. 必须明确告知用户影响:
- 禁用影响
- 禁用资源中心后,资源数据将不再在资源中心中可见。具体来说:
- 对于单个阿里云账号,禁用资源中心后,当前账号中的资源数据将不再可见。
- 对于资源目录的管理账号和资源中心的委派管理员账号,禁用资源中心也将禁用跨账号资源搜索功能。资源目录中当前账号和成员的资源数据将不再可见。此外,成员将无法查看其自己账号中的资源数据。
- 禁用资源中心后,控制台首页的资源管理模块、配置审计服务等相关场景也将无法查看资源数据。
- 禁用限制
- 如果资源目录的管理账号或资源中心的委派管理员账号的跨账号资源功能由另一个账号启用,则无法禁用资源中心。
- 如果有云产品或功能强烈依赖资源中心(如配置审计和相关资源转移),必须先禁用这些云产品或功能,然后才能禁用资源中心。
2. 必须获得用户明确确认(例如,用户输入 "confirm disable" 或类似的明确确认)
3. 未经用户明确确认不要继续
禁用资源中心
警告: 禁用将删除所有资源数据并影响依赖服务(如配置审计)。如果启用了跨账号,必须先禁用跨账号。
aliyun resourcecenter disable-resource-center \
--user-agent AlibabaCloud-Agent-Skills
禁用跨账号资源中心
必须在禁用单账号资源中心之前完成(如果启用了跨账号)。需要管理账号或委派管理员。
aliyun resourcecenter disable-multi-account-resource-center \
--user-agent AlibabaCloud-Agent-Skills
7. 最佳实践
- 每个资源中心 CLI 调用都使用
--user-agent — 此技能中的所有 aliyun resourcecenter 示例都包含 --user-agent AlibabaCloud-Agent-Skills。执行此技能的命令时,始终传递相同的标志,以便用法与验证、维护者的期望和任何自动检查保持一致。
- 使用过滤器进行定向搜索 — 结合
ResourceType、RegionId 和 Tag 过滤器可以提高搜索效率
- 使用
GroupByKey 进行快速统计 — 按类型、区域或资源组获取资源分布,无需迭代
- 跨账号范围选择 — 使用最具体的范围(成员 ID > 文件夹 ID > 根文件夹 ID > 目录 ID)来缩小搜索结果
- 启用后等待 — 资源中心激活后需要几分钟来构建数据;大型账号可能需要更长时间
- 优先使用只读策略 — 对于日常搜索和统计操作,使用
AliyunResourceCenterReadOnlyAccess 以确保安全
- 资源类型发现 — 当不知道确切的资源类型代码时,使用第 8 节中记录的辅助脚本(从技能根目录运行)。
- 标签发现与标签过滤搜索的区别 — 对于"存在哪些标签键/值",使用
list-tag-keys / list-tag-values(以及使用 --scope 的多账号变体)。将 search-resources 保留用于查找匹配标签条件的资源。
8. 可用脚本
| 脚本 | 用途 | 用法 |
|---|
scripts/query-resource-types.py | 从阿里云资源中心按关键词查询资源类型;stdout 是 JSON(resourceTypes、count、keyword、language;失败使用 success: false 和 error) | python3 scripts/query-resource-types.py [--language LANGUAGE] |
9. 故障排除
当资源中心 API 调用或 aliyun resourcecenter 命令失败时,请阅读响应的 HTTP 状态、Code(错误代码)和 Message,然后将它们与目录进行匹配。
完整错误列表: references/error-codes.md
10. 参考链接