返回顶部
a

alibabacloud-ram-permission-diagnoseRAM权限诊断

>

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 0.0.1
安全检测
已通过
143
下载量
免费
免费
1
收藏
概述
安装方式
版本历史

alibabacloud-ram-permission-diagnose

RAM权限诊断与修复

执行约束:当直接执行aliyun CLI命令(而非生成供用户复制的命令)时,始终追加--user-agent AlibabaCloud-Agent-Skills。请勿将此标志添加到路径B输出或路径C控制台指引中展示给用户的命令中。

概述

检测到RAM权限错误时,按以下步骤执行:

  1. 1. 快速分析 — 解析原始错误字段(无需工具调用),输出简要摘要,询问用户选择分析深度
  2. 深度分析(仅当用户选择路径B时) 按需解码,执行差距分析,分类根本原因
  3. 生成建议 — 最小权限授权方案
  4. 执行修复 — 呈现修复选项并等待用户选择

权限级别(L0–L3) 是代理的内部路由状态,在流程中根据API调用结果隐式推断。它决定诊断深度和可用的修复路径。切勿向用户声明或描述该级别。级别定义请参见references/diagnose-flow.md。



步骤1:快速分析

无需任何工具调用即可解析原始错误字段,然后让用户决定分析深度。

1a. 从原始错误中提取

  • - errorcode:例如NoPermission、Forbidden、InvalidSecurityToken
  • missingaction:例如ecs:StopInstance
  • principaltype:SubUser / AssumedRoleUser / RootUser(来自AuthPrincipalType)
  • principaldisplayname:用户ID或角色:会话(来自AuthPrincipalDisplayName)
  • nopermissiontype:ImplicitDeny或ExplicitDeny(来自NoPermissionType)
  • policytype:例如AccountLevelIdentityBasedPolicy、AssumeRolePolicy(来自PolicyType)
  • encoded_message:保留EncodedDiagnosticMessage(如有),供步骤2使用

1b. 输出简要摘要

基于提取的字段,输出简洁摘要:受影响的对象、缺失的操作、初步根本原因推断。

1c. 呈现深度选择并等待选择

呈现以下选项并等待用户选择 — 在做出选择前不继续执行

  • - A. 快速路径 (推荐场景:ImplicitDeny + 所有关键字段齐全 + 常见服务) — 跳过步骤2,直接从原始字段和内置知识生成建议
  • B. 深度路径 (推荐场景:ExplicitDeny、字段缺失或不熟悉的服务) — 执行完整的步骤2分析以获得更精确的结果。
> 需要两个可选权限:ram:DecodeDiagnosticMessage(解码编码错误)和系统策略AliyunRAMReadOnlyAccess(差距分析)。权限缺失会限制特定能力,但流程继续执行。
  • - 跳过 — 在此停止;输出手动排查链接

清晰标记推荐选项并简要说明原因。

如果用户选择A:继续执行步骤3。在建议中注明基于快速分析;用户可随时请求深度分析。

如果用户选择B:继续执行步骤2。

如果用户选择跳过:输出错误摘要、RAM文档链接(https://help.aliyun.com/document_detail/93733.html)和RAM控制台链接(https://ram.console.aliyun.com/policies),以及如何重新启动诊断的说明。

边界情况 — 强制路径A下的ExplicitDeny:如果NoPermissionType = ExplicitDeny且用户仍选择A,说明未经深度分析无法识别具体的Deny策略,并提供带有明确不确定性的有限建议。



步骤2:深度分析

仅在用户在步骤1中选择路径B时进入。

首先尝试使用步骤1中的原始字段进行分类。DecodeDiagnosticMessage是补充手段 — 仅在原始数据不足以可靠分类时调用。

当原始数据无法单独解决根本原因时解码:例如存在ExplicitDeny(需要MatchedPolicies)、AccessDeniedDetail缺失或PolicyType缺失。对于NoPermissionType、AuthAction、AuthPrincipalType和PolicyType均可用且指向明确根本原因的情况,跳过解码直接继续。

从原始错误中转录EncodedDiagnosticMessage并调用:

bash
aliyun ram DecodeDiagnosticMessage --EncodedDiagnosticMessage <转录值>

如果调用返回EntityNotExist,重新运行原始失败命令并将其输出保存到临时文件(使用系统临时目录;按命令上下文命名文件,例如/tmp/aliyunecsstopinstance.txt)。从文件中提取EncodedDiagnosticMessage并重试解码。如果文件中未找到该字段,标记为L0并继续。

如果SubUser身份在差距分析前需要解析UserName,请参见references/diagnose-flow.md → 身份解析。如果解析失败,标记为L0并继续。

根本原因类别:

  • - MissingAction — 身份策略缺少所需操作(最常见)
  • ExplicitDeny — Deny语句阻止访问(可能是身份策略或CP控制策略)
  • TrustPolicy — 角色信任策略不允许调用者扮演该角色
  • STSInsufficient — STS临时凭证缺少权限;根本原因在原始角色上
  • TokenExpired — STS令牌已过期
  • SLRMissing — 服务关联角色尚未创建
  • ResourcePolicy — 资源端策略(例如OSS存储桶策略)限制访问

差距分析触发规则和各根本原因处理详情,请参见references/diagnose-flow.md。

差距分析(触发时):查询当前附加到身份的现有策略,然后与所需操作进行比较。使用ListPoliciesForUser(SubUser)、ListPoliciesForRole(AssumedRoleUser)或ListControlPolicies(RootUser)。对于自定义策略,使用GetPolicyVersion获取策略文档。系统策略:使用内置知识,不调用GetPolicyVersion。

权限不足时:如果DecodeDiagnosticMessage失败(L0)或策略查询失败(L1),告知用户该限制,并为RAM管理员提供即用型权限申请材料 — 两个独立选项:① 解码权限(ram:DecodeDiagnosticMessage)作为自定义策略;② 通过系统策略AliyunRAMReadOnlyAccess的RAM读取访问权限(涵盖差距分析)。任一或两者均可独立申请。然后继续执行步骤3,无需等待。



步骤3:生成建议

在生成前,检查调用者技能权限提示(参见references/diagnose-flow.md → 覆盖范围检查)。

知识来源优先级:

  1. 1. 内置知识 — 对于热门服务(ECS、OSS、RDS、FC、SLB、VPC、SLS、STS等),直接使用已知的操作语义。参考references/hot-services-ram.md。
  2. 调用者技能提示 — 如果找到ram-policies.md,用作补充上下文
  3. 网络搜索 — 搜索{产品} RAM授权 site:help.aliyun.com;优先选择带有业务示例的手动维护文档,而非自动生成的操作表
  4. 系统策略回退 — 推荐AliyunXxxReadOnlyAccess或AliyunXxxFullAccess,并注明需进一步收紧

自定义策略命名:基于服务和任务语义建议名称(例如ai-agent-ecs-permissions),确认一次,同一会话中复用。

系统策略:使用单个命令直接附加,无需命名。

对于信任策略根本原因路径,建议有所不同 — 参见references/diagnose-flow.md → 处理各根本原因。

呈现建议后,添加简短说明:当前方案是起点;用户可随时请求进一步优化 — 例如,缩小到特定资源、添加条件或使用资源级策略(如OSS存储桶策略)替代身份级授权。



步骤4:执行修复

在执行任何写操作前,向用户呈现变更摘要和所有可用路径,然后等待用户选择路径 — 在用户做出选择前不继续执行或输出任何命令

  • - 目标(用户名或角色名)
  • 变更摘要(策略名称、操作、撤销方法)
  • 路径选项(始终呈现当前级别可用的所有选项 — 绝不跳过任何选项):
- A. 直接CLI执行 — 代理立即运行命令 (仅L2) - B. 输出CLI命令 — 用户复制并在自己的终端中运行 (所有级别) - C. 控制台指引 — RAM控制台中的分步说明 (所有级别) - 跳过 — 不执行

写操作前的预查询要求及完整CLI命令示例,请参见references/ram-cli-commands.md和references/diagnose-flow.md。

路径A:代理通过Bash执行。成功 → L3确认;报告结果和撤销命令。NoPermission → 自动切换到路径B。

L0/L1下的路径B:仅输出增量Statement JSON,并注明无法读取现有策略,

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 alibabacloud-ram-permission-diagnose-1775934791 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 alibabacloud-ram-permission-diagnose-1775934791 技能

通过命令行安装

skillhub install alibabacloud-ram-permission-diagnose-1775934791

下载

⬇ 下载 alibabacloud-ram-permission-diagnose v0.0.1(免费)

文件大小: 13.34 KB | 发布时间: 2026-4-12 08:53

v0.0.1 最新 2026-4-12 08:53
Initial release of Alibaba Cloud RAM Permission Diagnose skill:

- Proactively detects and diagnoses permission-related errors (e.g., 403, AccessDenied) in Alibaba Cloud operations.
- Provides a step-by-step workflow: quick analysis from error details, guided choice of analysis depth, deep diagnostic tools (including encoded message decoding and policy gap analysis), and targeted repair recommendations.
- Supports both quick path (for common/clear issues) and deep path (for complex or incomplete errors), with clear guidance on when to use each.
- Generates least-privilege permission recommendations and repair options, with references for manual troubleshooting if preferred.
- Tooling relies on Bash and Alibaba Cloud CLI for diagnosis and repair steps.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部