360 Secure SkillHub
360 安全技能中心

huawei-cloud-project-list

通过 KooCLI 的 hcloud IAM KeystoneListProjects 命令(主)或 huaweicloudsdkiam Python SDK(回退)调用华为云 IAM 接口,读取账号下所有项目的 ID、名称、域 ID、父项目 ID、启用状态与描述,支持按名称、域 ID、状态、父项目过滤及分页,并汇总项目数量。

erickeyhu-hug
erickeyhu-hug
热度 39.54
最近更新 2026-09-22 02:58:27
分类:搜索依赖:代码执行 / 第三方 API应用场景:API 集成 / 研究 / 工作流

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add huawei-cloud-project-list
Metadata
name
huawei-cloud-project-list
description
Lists Huawei Cloud IAM (Identity and Access Management) projects — enumerates all projects under the authenticated account with project ID, name, domain ID, parent ID, enabled status and description, using the KooCLI `hcloud IAM KeystoneListProjects` command (primary) or the huaweicloudsdkiam Python SDK (fallback). Provides read-only project inventory for account management, resource discovery, permission review and multi-region operations planning. Use this skill whenever the user mentions project list query. Triggers include: list projects, project list, query projects, enumerate projects, show projects, project inventory, 查询项目, 项目列表, 查看项目, 列出项目, 获取项目列表, 华为云项目, 查询华为云项目列表.
tags
["huawei-cloud","iam","project","query","inventory"]

Huawei Cloud Project List Skill

Overview

This skill lists all Huawei Cloud IAM (Identity and Access Management) projects owned by the authenticated account. It is a read-only inventory skill: it never creates, modifies, deletes projects, or changes any IAM configuration.

Architecture:

Agent → hcloud CLI (KooCLI IAM, primary) → Huawei Cloud IAM API
       ↘ huaweicloudsdkiam Python SDK (fallback)  ↗

Applicable Scenarios:

  • Project inventory and resource discovery (locate project IDs for other services)
  • Multi-region operations planning (each region has its own system project)
  • Permission review (checking which projects exist under the account)
  • Troubleshooting account-level IAM configuration

Prerequisites

  1. hcloud CLI (KooCLI) installed and authenticated — See references/cli-installation-guide.md
  2. IAM permissions — iam:projects:listProjects — See references/iam-policies.md
  3. Python 3.6+ with huaweicloudsdkiam package (SDK fallback) — pip install huaweicloudsdkiam

Credentials. KooCLI reads credentials from hcloud configure (AK/SK) or environment variables. The IAM API is global (no region endpoint), so the same account credentials used for other Huawei Cloud services work here. Never ask the user to paste AK/SK into the conversation.

Workflow

  1. Verify prerequisites — hcloud version, then run the list command (below)
  2. Run the query — hcloud IAM KeystoneListProjects (CLI primary) with desired options
  3. Handle results — Parse project IDs, names, domain IDs, parent IDs, enabled status, and descriptions; report the total project count
  4. Fallback — If the CLI is unavailable, use the Python SDK example below

Core Commands

List All Projects

hcloud IAM KeystoneListProjects --cli-region=cn-north-4

List Projects (JSON Output)

hcloud IAM KeystoneListProjects --cli-region=cn-north-4 --cli-output=json

Filter by Project Name

hcloud IAM KeystoneListProjects --cli-region=cn-north-4 --name=<project-name>

Filter by Domain ID (Account ID)

hcloud IAM KeystoneListProjects --cli-region=cn-north-4 --domain_id=<domain-id>

Filter by Enabled Status

hcloud IAM KeystoneListProjects --cli-region=cn-north-4 --enabled=true

Filter by Parent Project ID

hcloud IAM KeystoneListProjects --cli-region=cn-north-4 --parent_id=<project-id>

Pagination

hcloud IAM KeystoneListProjects --cli-region=cn-north-4 --page=1 --per_page=50

SDK Fallback Example

import os
from huaweicloudsdkcore.auth.credentials import GlobalCredentials
from huaweicloudsdkiam.v3 import IamClient
from huaweicloudsdkiam.v3.model import KeystoneListProjectsRequest
from huaweicloudsdkiam.v3.region.iam_region import IamRegion

# Project listing is a domain-level (global) operation, so use GlobalCredentials
# with the domain ID (account ID). Obtain the domain ID from the console or via
# `hcloud IAM KeystoneListAuthDomains`.
credentials = GlobalCredentials(
    os.environ["HUAWEI_CLOUD_ACCESS_KEY"],
    os.environ["HUAWEI_CLOUD_SECRET_KEY"],
).with_domain_id(os.environ["HUAWEI_CLOUD_DOMAIN_ID"])

client = IamClient.new_builder() \
    .with_credentials(credentials) \
    .with_region(IamRegion.value_of("cn-north-4")) \
    .build()

response = client.keystone_list_projects(KeystoneListProjectsRequest())
projects = response.projects or []
for project in projects:
    print(project.id, project.name, project.domain_id, project.parent_id, project.enabled, project.description)
print("Project number:", len(projects))

Parameter Confirmation

Parameter Required Description Example
--cli-region Yes Huawei Cloud region for the CLI endpoint cn-north-4
--name No Filter by project name --name=cn-north-4
--domain_id No Filter by domain ID (account ID) --domain_id=xxx
--enabled No Filter by enabled status (true/false) --enabled=true
--parent_id No Filter by parent project ID (subprojects) --parent_id=xxx
--page / --per_page No Pagination (page ≥ 1, per_page 1–5000, used together) --page=1 --per_page=50
--cli-output No Output format (json/table) --cli-output=json

Reference Documents

KooCLI Command Format Standard

The hcloud IAM module maps directly to the Huawei Cloud IAM API operations.

Feature Description Example
Service name IAM hcloud IAM KeystoneListProjects
Operation name IAM API operation name KeystoneListProjects
Simple parameter --key=value hcloud IAM KeystoneListProjects --name=cn-north-4
Output format --cli-output=json/table --cli-output=json
Credentials KooCLI configured account (AK/SK or env vars) hcloud configure