Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

CloudQ

v1.0.0

CloudQ — 全球首款 ITOM 领域虾,全渠道 ChatOps、全天候 AIOps、全方位 CloudOps。当用户询问"你是谁"、"cloudq是什么"、"cloudq能做什么"、"介绍一下自己"、查看云架构、查询架构目录、获取架构详情、查看架构评估结果、查看风险评估项、巡检项、云资源风险、开通智能顾问等...

0· 84·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for xiaochuanxv/cloudq-1.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "CloudQ" (xiaochuanxv/cloudq-1) from ClawHub.
Skill page: https://clawhub.ai/xiaochuanxv/cloudq-1
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Required env vars: TENCENTCLOUD_SECRET_ID, TENCENTCLOUD_SECRET_KEY
Required binaries: python3
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install cloudq-1

ClawHub CLI

Package manager switcher

npx clawhub@latest install cloudq-1
Security Scan
VirusTotalVirusTotal
Pending
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
Name, description, required env vars (TENCENTCLOUD_SECRET_ID / SECRET_KEY), and the included scripts (API signing, STS AssumeRole, role creation, login URL) are coherent with a Tencent Cloud Smart Advisor / console-login helper. The IAM operations declared (CreateRole, AttachRolePolicy, AssumeRole, etc.) align with the stated role-creation and console-login features.
!
Instruction Scope
SKILL.md and the scripts direct the agent/user to permanently write AK/SK into shell startup files and to run local Python scripts that will call Tencent Cloud APIs and may create roles. Version-check logic (check_env.py) reaches out to an external ClawHub API and includes fallbacks that invoke local CLIs or npx — this introduces remote network calls and potential code execution beyond the declared Tencent endpoints. The guidance to 'permanently write' credentials into ~/.bashrc/.zshrc is risky and broader than necessary: temporary credentials or a role-based flow would be safer. The scripts do write a local config (~/.tencent-cloudq) (role ARN only) which is consistent with the stated behavior.
Install Mechanism
No formal install spec (instruction-only style) so nothing would be installed automatically by a package manager. However, the version-check code may call 'clawhub' CLI or run 'npx' as a fallback — that can download and execute code at runtime (npx downloads packages from npm). This is a non-obvious side-effect of the version-check and increases risk because it can pull third-party code during an otherwise benign check.
!
Credentials
The skill requests only Tencent Cloud AK/SK (proportionate to its purpose). However the SKILL.md explicitly instructs users to permanently write those secrets into shell rc files — a high-risk practice. The code indicates it stores only the role ARN locally and claims temporary STS credentials are not persisted, which is good, but the permanent-credentials recommendation is unnecessary and dangerous. No unrelated credentials are requested.
Persistence & Privilege
The skill writes a local config directory (~/.tencent-cloudq) and caches account UIN; those are reasonable for this tool. It does not set always: true. It can perform IAM write operations (CreateRole/AttachRolePolicy/DeleteRole) but the scripts state these should only run after explicit user consent. Confirmed: role creation and deletion are present and require AK/SK with sufficient permissions — this elevates impact if keys provided are high-privilege.
What to consider before installing
What to consider before installing/use: - The skill is coherent with a Tencent Cloud Smart Advisor helper and legitimately needs Tencent AK/SK, but do NOT paste your long-lived SecretId/SecretKey into shell startup files as the README suggests. Prefer temporary STS tokens, least-privilege keys, or create a dedicated low-permission user for this tool. - The code's version-check can call 'npx' as a fallback. That may download and execute third-party code at runtime; if you want to avoid that, run check_env.py with --skip-update or ensure 'requests' and/or a vetted clawhub CLI are present so npx fallback is not used. - The tcloud_api module falls back to disabling TLS verification when certifi is not installed (it creates an SSL context with verify disabled). This means API calls could be made without certificate validation if certifi is missing — which can expose AK/SK to network attackers. Before use, ensure certifi is installed in the Python environment (pip install certifi) or run in an environment with a correct system CA bundle. - Review the provided scripts (create_role.py, cleanup.py, login_url.py) yourself. The role creation flows will perform CAM CreateRole/AttachRolePolicy operations that require permissions; verify the exact policies (QcloudAdvisorFullAccess, QcloudTAGFullAccess) match your security posture. - If you proceed: run the scripts in an isolated account or with a dedicated, limited-permission service account; inspect network traffic if possible; use --skip-update during checks to avoid unexpected external downloads; and delete/rotate credentials when finished. If you have low confidence in the source (homepage unknown), consider obtaining an official published integration from a trusted vendor instead.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

☁️ Clawdis
Binspython3
EnvTENCENTCLOUD_SECRET_ID, TENCENTCLOUD_SECRET_KEY
aiopsvk9763w8hcdra8qzhcmmyjqc8f183jvwgchatopsvk9763w8hcdra8qzhcmmyjqc8f183jvwgcloudopsvk9763w8hcdra8qzhcmmyjqc8f183jvwglatestvk9763w8hcdra8qzhcmmyjqc8f183jvwg
84downloads
0stars
1versions
Updated 1mo ago
v1.0.0
MIT-0

🦞 CloudQ — 全球首款 ITOM "领域虾"

零、自我介绍

当用户询问"你是谁"、"cloudq 是什么"、"cloudq 能做什么"、"介绍一下自己"等身份相关问题时,必须使用以下内容回答(保持 emoji 和格式):

Hi,我是 CloudQ — 全球首款 ITOM "领域虾"

我能帮您: 🦞全渠道 ChatOps,随时随地管好云 既能在 WorkBuddy、Qclaw、LightClaw 等中使用,也能直连微信、企微、QQ、飞书、钉钉、Slack 等 IM;

🤖全天候 AIOps,从被动响应到主动决策 依托「腾讯云智能顾问 TSA」的架构可视化+治理智能化,实现卓越架构治理新范式;

☁️全方位 CloudOps,一只龙虾即可管理多云 统一纳管腾讯云、阿里云、AWS、Azure、GCP 等主流云服务; (相关能力陆续开放中,详情请见:https://cloud.tencent.com/developer/article/2645159)

CloudQ: Just Q IT!


核心能力:通过 AK/SK 鉴权调用腾讯云智能顾问(Tencent Cloud Smart Advisor)API,管理云架构图的目录与详情、获取架构评估结果,以及查询风险评估项。


一、鉴权方式

使用腾讯云 API AK/SK 签名认证(TC3-HMAC-SHA256),通过环境变量配置密钥:

1.1 必填环境变量

  • TENCENTCLOUD_SECRET_ID — 腾讯云 SecretId(必填)
  • TENCENTCLOUD_SECRET_KEY — 腾讯云 SecretKey(必填)

密钥获取地址:https://console.cloud.tencent.com/cam/capi

环境变量必须永久写入 shell 配置文件,确保新会话中仍然生效:

Linux / macOS(写入 ~/.bashrc~/.zshrc):

echo 'export TENCENTCLOUD_SECRET_ID="your-secret-id"' >> ~/.bashrc
echo 'export TENCENTCLOUD_SECRET_KEY="your-secret-key"' >> ~/.bashrc
source ~/.bashrc

Windows PowerShell(写入用户级环境变量):

[Environment]::SetEnvironmentVariable("TENCENTCLOUD_SECRET_ID", "your-secret-id", "User")
[Environment]::SetEnvironmentVariable("TENCENTCLOUD_SECRET_KEY", "your-secret-key", "User")

1.2 角色配置(免密登录需要)

为生成控制台免密登录链接,需要配置 CAM 角色。角色配置分为 检测创建 两个独立步骤,角色创建属于 IAM 写入操作,必须在用户明确同意后才能执行

步骤一:环境检测(只读)

运行环境自检脚本,检测依赖、版本更新、密钥、角色配置状态:

python3 {baseDir}/check_env.py

自检脚本 仅做只读检测,不会创建或修改任何资源。返回码含义:

  • 0 = 环境就绪(密钥 + 角色全部正常)
  • 1 = Python 版本不满足要求
  • 2 = AK/SK 未配置或无效
  • 3 = 角色未配置(需要执行步骤二)
  • 4 = Skill 版本过旧,请更新 Skill

脚本首次运行时会自动检查本地 _meta.json 中的版本号与远端最新版本是否一致,若发现新版本则提示更新并退出(返回码 4)。可通过 --skip-update 参数跳过版本检查。

步骤二:角色创建(需用户同意)

check_env.py 返回码为 3(角色未配置)时,必须向用户展示角色创建方案并等待同意:

向用户说明以下内容

  1. 将创建 CAM 角色 advisor,仅用于免密登录控制台查看智能顾问信息
  2. 将关联策略 QcloudAdvisorFullAccess(智能顾问只读访问权限,不影响其他云资源)
  3. 信任策略仅允许当前账号扮演此角色
  4. 用户可随时在 CAM 控制台删除此角色

用户同意后,执行角色创建脚本:

python3 {baseDir}/scripts/create_role.py

脚本输出 JSON 格式结果,success: true 表示创建成功并已保存配置。

用户拒绝时,提供手动配置方式(方式二、三、四)。

方式二:配置向导(交互式选择已有角色)

运行配置向导,从已有角色中选择,或交互式创建新角色:

python3 {baseDir}/scripts/setup_role.py

方式三:简化配置

只需提供角色名称,系统自动获取账号 UIN。将以下内容写入 shell 配置文件(如 ~/.bashrc~/.zshrc):

echo 'export TENCENTCLOUD_ROLE_NAME="advisor"' >> ~/.bashrc
source ~/.bashrc

系统会自动调用 API 获取您的账号 UIN,并拼接完整的 roleArn。

方式四:完整配置(高级用户)

手动设置完整的角色 ARN,写入 shell 配置文件(如 ~/.bashrc~/.zshrc):

echo 'export TENCENTCLOUD_ROLE_ARN="qcs::cam::uin/100001234567:roleName/advisor"' >> ~/.bashrc
source ~/.bashrc

1.3 可选环境变量

  • TENCENTCLOUD_TOKEN — 临时密钥 Token(使用临时密钥时设置)
  • TENCENTCLOUD_ROLE_SESSION — 角色会话名称(默认 advisor-session
  • TENCENTCLOUD_STS_DURATION — 临时凭证有效期秒数(默认 3600,即 1 小时;最大 43200,即 12 小时)

注意:所有环境变量均需永久写入 shell 配置文件(如 ~/.bashrc~/.zshrc),export 仅对当前会话生效,新开会话会丢失。

1.4 配置优先级

系统按以下优先级加载角色配置:

  1. 环境变量 TENCENTCLOUD_ROLE_ARN(完整 ARN)
  2. 配置文件 ~/.tencent-cloudq/config.json
  3. 环境变量 TENCENTCLOUD_ROLE_NAME + 自动获取账号 UIN

二、前置检查(初始化工作流)

每次操作前必须先执行环境检测。初始化分为 版本检查环境检测角色创建 三个阶段,角色创建属于 IAM 写入操作,必须在用户明确同意后才能执行。

2.1 初始化工作流(必须严格按顺序执行)

第一步:运行环境检测

python3 {baseDir}/check_env.py

脚本会依次执行以下检测:

  1. 检查 Python 版本(需要 3.7+)
  2. 检查 Skill 版本更新(读取本地 _meta.json 版本,与远端最新版本对比)
  3. 检查 AK/SK 配置
  4. 验证 AK/SK 有效性
  5. 检查免密登录角色配置
  6. 验证角色扮演

根据返回码判断状态:

  • 0 = 环境就绪,可以正常使用所有功能
  • 1 = Python 版本不满足要求 → 提示用户升级 Python
  • 2 = AK/SK 未配置或无效 → 提示用户配置密钥
  • 3 = 角色未配置 → 执行第二步
  • 4 = Skill 版本过旧 → 提示用户更新 Skill

版本检查说明:脚本首次运行时会自动对比本地版本与远端版本。若远端有新版本,脚本会输出当前版本和最新版本号,并以返回码 4 退出。网络不可用或远端接口异常时,版本检查会被跳过,不影响后续检测。可通过 --skip-update 参数主动跳过版本检查。

第二步:向用户展示角色创建方案(仅当返回码为 3 时)

向用户说明即将执行的 IAM 操作,等待用户明确同意

免密登录功能需要创建一个 CAM 角色,以下是创建方案:

  • 角色名称advisor
  • 关联策略QcloudTAGFullAccess(标签全读写权限)、QcloudAdvisorFullAccess(智能顾问全读写权限)
  • 信任策略:仅允许当前账号扮演此角色
  • 用途:仅用于生成控制台免密登录链接,不影响其他云资源
  • 您可随时在 CAM 控制台 删除此角色

是否同意创建?

第三步:执行角色创建(仅在用户同意后)

python3 {baseDir}/scripts/create_role.py

脚本输出 JSON 格式结果,success: true 表示创建成功。

第四步:再次运行环境检测,确认环境就绪

python3 {baseDir}/check_env.py

返回码 0 表示初始化完成,所有功能可用。

2.2 静默模式(供脚本内部调用)

python3 {baseDir}/check_env.py --quiet

静默模式下仅输出错误信息,适合其他脚本调用获取环境状态。角色未配置时返回码 3不会自动创建角色

2.3 跳过版本检查

python3 {baseDir}/check_env.py --skip-update

跳过远端版本对比,直接进行后续环境检测。适用于离线环境或已知无需更新的场景。可与 --quiet 组合使用。


三、API 调用方式

所有接口通过统一的签名脚本调用,服务固定参数:

  • service: advisor
  • host: advisor.tencentcloudapi.com
  • version: 2020-07-21
python3 {baseDir}/scripts/tcloud_api.py advisor advisor.tencentcloudapi.com <Action> 2020-07-21 '<payload>' [region]

四、可用接口(共 7 个)

所有接口频率限制均为 20 次/秒。使用某个接口前,必须先加载对应的接口文档获取参数、返回值和展示规则等详细信息。

接口说明必填参数触发词文档
DescribeArch获取云架构详情ArchIdUsername架构详情、查看架构图{baseDir}/references/api/DescribeArch.md
DescribeArchList分页获取云架构列表PageNumberPageSize架构列表、所有架构图{baseDir}/references/api/DescribeArchList.md
ListDirectoryV2查询架构目录树查询目录、目录列表{baseDir}/references/api/ListDirectoryV2.md
ListUnorganizedDirectory查询待整理目录待整理目录、未归类架构{baseDir}/references/api/ListUnorganizedDirectory.md
DescribeStrategies获取智能顾问支持的风险评估项列表风险评估、巡检项、云资源风险{baseDir}/references/api/DescribeStrategies.md
DescribeLastEvaluation获取架构评估结果ArchId架构评估、评估结果、Well-Architected{baseDir}/references/api/DescribeLastEvaluation.md
CreateAdvisorAuthorization开启智能顾问授权开通智能顾问、授权智能顾问{baseDir}/references/api/CreateAdvisorAuthorization.md

调用示例:

python3 {baseDir}/scripts/tcloud_api.py advisor advisor.tencentcloudapi.com DescribeArchList 2020-07-21 '{"PageNumber":1,"PageSize":10}'

五、数据范围说明与空结果处理

5.1 数据范围

所有查询接口返回的数据仅限当前 AK/SK 对应账号下的智能顾问数据。向用户展示查询结果时,必须明确告知:

以下结果为当前 AK/SK(SecretId/SecretKey)对应账号下的智能顾问数据。如需查询其他账号的数据,请切换对应的 AK/SK。

5.2 跨账号查询拦截

CloudQ 不支持查询其他账号(UIN)的数据。当用户请求查询指定 UIN 的数据时,不执行任何 API 调用,直接返回提示。

判断方式:通过前置检查阶段 check_env.py 输出的账号信息,或调用 GetCallerIdentity 接口获取当前 AK/SK 对应的 UIN。

拦截规则

  1. 用户请求中指定了 UIN,且该 UIN 与当前 AK/SK 对应的 UIN 不一致 → 直接拦截,返回提示
  2. 用户请求中指定了 UIN,且该 UIN 与当前 AK/SK 对应的 UIN 一致 → 正常执行查询
  3. 用户请求中未指定 UIN → 正常执行查询(默认查询当前账号)

拦截时向用户返回

⚠️ 智能顾问仅支持查询当前 AK/SK 对应账号的数据。当前账号 UIN 为 {当前UIN},无法查询 UIN {用户指定的UIN} 的数据。

如需查询其他账号的数据,请切换到该账号的 AK/SK。

5.3 空结果处理

当查询接口返回空结果(如架构列表为空、评估项为空、目录为空等)时,向用户说明可能的原因:

  1. 当前架构图没有对应的数据:该账号下确实没有相关的架构图、评估项或目录数据
  2. 未开通智能顾问服务:当前账号可能尚未开通智能顾问,需要先开通才能使用

向用户展示:

查询结果为空,可能原因:

  1. 当前 AK/SK 对应账号下没有相关数据
  2. 当前账号可能尚未开通智能顾问服务

如需开通智能顾问,请告知我,我将协助您完成开通(需要您的确认)。

5.4 开通智能顾问服务

当用户确认需要开通智能顾问时,调用 CreateAdvisorAuthorization 接口。此接口为写入操作,必须经过用户明确同意后才能执行。

开通流程(严格按顺序执行)

第一步:向用户说明开通内容,等待用户明确同意

开通智能顾问服务将会:

  • 为当前 AK/SK 对应的账号开通智能顾问服务
  • 同步开启报告解读云架构协作权限
  • 开通后可使用架构图管理、风险评估等全部功能

是否同意开通?

第二步:用户同意后执行开通(用户拒绝则不执行)

使用前必须先加载接口文档{baseDir}/references/api/CreateAdvisorAuthorization.md

python3 {baseDir}/scripts/tcloud_api.py advisor advisor.tencentcloudapi.com CreateAdvisorAuthorization 2020-07-21 '{}'

第三步:告知用户结果并引导下一步操作

  • 成功

    1. 告知用户开通成功

    2. 调用免密登录脚本生成智能顾问控制台链接:

      python3 {baseDir}/scripts/login_url.py "https://console.cloud.tencent.com/advisor"
      
    3. 向用户展示如下引导信息:

      ✅ 智能顾问服务已成功开通!

      👉 点击进入智能顾问控制台

      接下来你可以:

      • 手动画架构图:在控制台中新建架构图,拖拽云产品组件绘制你的架构
      • 网络扫描自动生图:通过网络拓扑扫描,自动生成当前账号下的云架构图

      架构图创建完成后,可以使用智能顾问进行架构治理和风险评估。

  • 失败:展示错误信息,建议用户检查账号权限或联系管理员


六、免密登录链接生成

当接口返回结果中包含架构图(含 ArchId 字段)时,必须调用免密登录脚本为用户生成腾讯云控制台直达链接。架构图列表场景下,只需为第一张架构图生成免密链接。

⚠️ 重要:免密登录链接每次都必须重新生成,不可缓存或复用之前生成的链接。

6.1 调用方式

需先完成角色配置(见「二、前置检查」),然后调用:

python3 {baseDir}/scripts/login_url.py "<目标页面URL>"

架构图控制台 URL 格式:https://console.cloud.tencent.com/advisor?archId={ArchId}

6.2 返回示例

{
  "success": true,
  "action": "GenerateLoginURL",
  "data": {
    "loginUrl": "https://cloud.tencent.com/login/roleAccessCallback?algorithm=sha256&secretId=...&token=...&signature=...&s_url=...",
    "targetUrl": "https://console.cloud.tencent.com/advisor?archId=arch-gvqocc25",
    "expireSeconds": 3600
  },
  "requestId": "xxx"
}
字段说明
loginUrl免密登录完整 URL,用户点击可直接跳转控制台
targetUrl登录后跳转的目标页面
expireSeconds链接有效期(秒),默认 3600,可通过 TENCENTCLOUD_STS_DURATION 调整

6.3 展示规则

免密登录 URL 非常长,严禁直接展示完整 URL,必须以 Markdown 超链接格式展示:

架构图名称:生产环境架构
架构图 ID:arch-gvqocc25
[跳转控制台](免密登录URL)

列表场景(仅第一张架构图附带免密链接):

1. 生产环境架构(arch-abc123)— [跳转控制台](免密登录URL)
2. 测试环境架构(arch-def456)
3. 预发布环境架构(arch-ghi789)

七、插件扩展

TSA 支持通过插件机制扩展功能。所有插件 Skill 统一存放在 {baseDir}/references/plugins/ 目录下。

注意:插件拥有独立的工作流和接口约束,使用前 必须加载对应插件其完整文档 并严格按照文档中的步骤执行。

7.1 云巡检插件(tsa-risk)

插件文档{baseDir}/references/plugins/tsa-risk/SKILL.md 触发关键词:智能顾问架构巡检、风险分析、巡检报告、架构图风险、腾讯云巡检或对当前巡检分析报告内容修改时

7.1.1 插件简介

tsa-risk 是腾讯云智能顾问云巡检插件。 插件能力:

  • 巡检风险分析:用于分析用户在腾讯云智能顾问产品下的架构图风险巡检情况,从 API 拉取巡检数据并生成移动端友好的 HTML 可视化报告,最终将 HTML 转换为 PNG 图片输出。

7.1.2 插件目录结构

references/plugins/tsa-risk/
├── SKILL.md                           # 插件 Skill 指令文档(完整工作流)
├── ReportDesignSpec.md                # 报告内容与样式规范
├── scripts/
│   ├── risk_fetch_data.py             # 数据拉取脚本(自动分页获取全部风险数据)
│   ├── generate_report_default.py     # 默认报告生成脚本(基线版本,不可修改)
│   └── html_to_png.py                # HTML 转 PNG 截图脚本
└── template/
    └── default/                       # 内置主题模板
        ├── ocean.json
        ├── sunset.json
        ├── forest.json
        ├── lavender.json
        ├── coral.json
        └── slate.json

7.1.3 使用方式

当用户提到架构巡检、风险分析、巡检报告(或对报告修)等关键词时,必须先加载插件完整文档 {baseDir}/references/plugins/tsa-risk/SKILL.md,然后严格按照文档中的工作流执行

触发关键词:智能顾问架构巡检、风险分析、巡检报告、架构图风险、腾讯云巡检或对当前巡检分析报告内容修改时


八、统一输出格式

所有接口调用的输出均为统一的 JSON 格式,通过 success 字段区分成功与失败。

成功响应

{
  "success": true,
  "action": "DescribeArchList",
  "data": { ... },
  "requestId": "9cbe807c-..."
}
字段类型说明
successBoolean固定为 true
actionString调用的接口名称
dataObject接口返回的业务数据(已去除 RequestId)
requestIdString腾讯云请求 ID,用于问题排查

失败响应

{
  "success": false,
  "action": "DescribeArchList",
  "error": {
    "code": "AuthFailure.SecretIdNotFound",
    "message": "The SecretId is not found, please ensure that your SecretId is correct."
  },
  "requestId": "ed93f3cb-..."
}
字段类型说明
successBoolean固定为 false
actionString调用的接口名称
error.codeString错误码
error.messageString错误描述
requestIdString腾讯云请求 ID(网络错误时为空)

特殊错误码(脚本层面)

错误码含义
MissingParameter脚本调用缺少必要参数
MissingCredentials未配置 AK/SK 环境变量
NetworkError网络请求失败,无法连接 API
ParseError响应不是有效的 JSON

常见 API 错误码

错误码含义解决方案
AuthFailure.SecretIdNotFoundSecretId 不存在检查 TENCENTCLOUD_SECRET_ID
AuthFailure.SignatureFailure签名错误检查 TENCENTCLOUD_SECRET_KEY
AuthFailure.SignatureExpire签名过期检查本地时间是否准确
AuthFailure.TokenFailureToken 错误检查 TENCENTCLOUD_TOKEN
AuthFailure.UnauthorizedOperation未授权检查 CAM 策略
ResourceNotFound资源不存在检查 ArchId 等参数是否正确
InvalidParameter参数错误检查请求参数格式和类型
InvalidParameterValue参数取值错误检查参数值范围
RequestLimitExceeded频率限制降低调用频率(限 20 次/秒)

九、注意事项

  1. 密钥安全:严禁将 AK/SK 硬编码在代码中,必须通过环境变量传入
  2. 权限控制:建议使用子账号密钥,角色关联 QcloudTAGFullAccessQcloudAdvisorFullAccess 策略
  3. 临时密钥:生产环境推荐使用 STS 临时密钥,设置 TENCENTCLOUD_TOKEN
  4. 频率限制:所有接口限制 20 次/秒(维度:API + 接入地域 + 子账号)
  5. 地域选择:默认 ap-guangzhou,Region 为可选参数
  6. 跨平台支持:所有脚本均使用纯 Python 实现,支持 Windows / Linux / macOS,无需 curl、openssl、jq 等外部依赖
  7. 免密链接有效期:默认 1 小时(3600 秒),可通过 TENCENTCLOUD_STS_DURATION 调整(最大 43200 秒,即 12 小时)
  8. 架构图免密链接:当返回结果包含架构图时,只需为第一张架构图生成免密登录控制台链接,并以 [跳转控制台](免密登录URL) 超链接形式展示,严禁直接展示完整 URL。每次展示都必须重新调用 login_url.py 生成新链接,不可缓存或复用之前生成的链接
  9. 评估项控制台链接:评估项不需要免密登录链接,直接展示控制台 URL:https://console.cloud.tencent.com/advisor/assess?strategyName={URL编码后的Name}
  10. 按需加载接口文档:使用某个接口前,必须先通过 read_file 加载 {baseDir}/references/api/<Action>.md 获取完整的参数说明、返回字段、展示格式等详细信息
  11. 数据范围提示:所有查询结果仅限当前 AK/SK 对应账号的数据,展示结果时必须告知用户数据范围
  12. 空结果引导:查询返回空结果时,提示用户可能原因(无数据或未开通智能顾问),并询问是否需要开通
  13. 开通智能顾问须用户同意:调用 CreateAdvisorAuthorization 接口属于写入操作,必须经用户明确同意后才能执行,严禁自动调用
  14. 跨账号查询拦截:用户指定其他 UIN 查询时,不执行 API 调用,直接告知仅支持查询当前 AK/SK 对应的 UIN(需标明具体 UIN),并提示切换 AK/SK

十、安全与权限声明

10.1 所需凭证

本 Skill 需要以下环境变量才能正常运行:

环境变量必填说明
TENCENTCLOUD_SECRET_ID腾讯云 API SecretId
TENCENTCLOUD_SECRET_KEY腾讯云 API SecretKey

密钥仅通过环境变量读取,不会被写入文件、日志或网络传输中。

10.2 IAM 操作声明

本 Skill 包含以下 CAM(访问管理)操作。写入类操作仅由独立脚本 scripts/create_role.py 执行,且必须在用户明确同意后才会运行check_env.py 仅执行只读检测操作。

API 操作类型所在脚本说明
sts:GetCallerIdentity只读check_env.py / create_role.py获取当前账号 UIN
cam:GetRole只读check_env.py / create_role.py检查角色是否存在
cam:DescribeRoleList只读setup_role.py列出可用角色供用户选择
cam:CreateRole写入scripts/create_role.py创建 advisor 角色(需用户明确同意后执行)
cam:AttachRolePolicy写入scripts/create_role.py关联 QcloudAdvisorFullAccess 策略(随角色创建执行)
sts:AssumeRole敏感login_url.py扮演角色获取临时凭证(用于生成免密登录链接)
cam:DeleteRole写入scripts/cleanup.py删除 advisor 角色(仅 --cloud 模式,需用户明确确认)
advisor:CreateAdvisorAuthorization写入scripts/tcloud_api.py开通智能顾问服务(需用户明确同意后执行)

10.3 数据安全

  • 临时凭证:STS AssumeRole 获取的临时凭证仅在内存中使用,不持久化存储
  • 配置文件~/.tencent-cloudq/config.json 仅保存角色 ARN 和账号 UIN,不保存任何密钥
  • 文件权限:配置目录设为 700,配置文件设为 600,仅当前用户可读写
  • SSL 验证:所有 HTTPS 请求均启用完整的 SSL 证书验证,不支持跳过验证
  • 网络访问:仅连接腾讯云官方 API 域名(*.tencentcloudapi.com)和登录域名(cloud.tencent.com

10.4 配置清理

用户可随时运行清理脚本删除本机上的所有配置和缓存:

# 交互式清理(逐项确认)
python3 {baseDir}/scripts/cleanup.py

# 一键清理所有本地配置
python3 {baseDir}/scripts/cleanup.py --all

# 一键清理所有本地配置 + 云端 advisor 角色
python3 {baseDir}/scripts/cleanup.py --all --cloud

清理范围:

  • 配置目录 ~/.tencent-cloudq/(含 config.json
  • 临时缓存 {系统临时目录}/.tcloud_advisor_uin_cache
  • 环境变量 TENCENTCLOUD_* 系列(SECRET_IDSECRET_KEYTOKENROLE_ARNROLE_NAMEROLE_SESSIONSTS_DURATION),脚本会自动检测已设置的变量并生成对应平台的清理命令(source 脚本 / PowerShell 脚本)
  • 云端 CAM 角色 advisor(仅 --cloud 模式,需配置 AK/SK)

Comments

Loading comments...