mcpField
H
hf-cloud-aws-context-discovery

hf-cloud-aws-context-discovery

github.com/huggingface云与 DevOps11.2k548 次安装5 天前更新
代码仓库

关于 hf-cloud-aws-context-discovery

帮助 AWS 操作前读取并确认本地 AWS 上下文的技能,面向需要处理云资源的用户。它按明确的优先级解析配置,并在后续操作前识别凭证与 SSO 身份。

主要功能

  1. 01解析有效 AWS 配置文件
  2. 02按优先级确定区域
  3. 03验证凭证并获取账户与调用者 ARN
  4. 04识别 SSO 与角色身份
  5. 05发现配置或凭证错误时提示

适用场景

  1. 01开始 AWS 工作前确认配置文件和区域
  2. 02验证 AWS 身份及账户信息
  3. 03判断调用者是否具备 IAM 写入能力

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/huggingface/skills --skill hf-cloud-aws-context-discovery

安装后在 Claude Code 中输入/hf-cloud-aws-context-discovery确认已加载。

详细介绍

AWS 上下文发现

开始任何 AWS 工作之前,请先读取用户本地的 AWS 配置。不要猜测区域,也不要询问配置中已有答案的问题。

要发现的信息

开始 AWS 工作时运行以下命令,并在本次会话余下时间记住结果。

1. 活动配置文件

使用 AWS_PROFILE 环境变量;如果未设置,则使用 default。如果用户在提示中提到了配置文件,则以用户指定的为准。如果 ~/.aws/config 中不存在指定的配置文件,请明确说明。

2. 区域

按以下顺序确定区域——找到第一个有值的选项后即停止:

  1. 用户在本次对话中明确指定的区域
  2. AWS_REGION 环境变量
  3. AWS_DEFAULT_REGION 环境变量
  4. ~/.aws/config 中活动配置文件的 region 字段
  5. 询问用户——但只有前四项都未能确定区域时才询问

不要回退到 us-east-1 或任何其他硬编码的默认值。

3. 凭证、账户 ID、调用者 ARN
aws sts get-caller-identity --profile <profile> --region <region>

一次调用完成三个目的:确认凭证有效(若无效则停止)、返回 Account ID(用于构建 ARN),以及返回调用者的 Arn。

4. 识别 SSO / 角色代入主体

Arn 字段会告诉你主体的类型。其格式很重要,因为它决定调用者可以执行哪些 IAM 操作。

ARN 格式类型IAM 写入能力
arn:aws:iam::<acct>:user/<name>IAM 用户取决于关联的策略
arn:aws:sts::<acct>:assumed-role/AWSReservedSSO_<...>/<email>SSO 角色代入主体通常没有——无法创建或修改 IAM 角色
arn:aws:sts::<acct>:assumed-role/<role>/<session>普通角色代入主体取决于该角色

如果调用者使用 SSO,请立即说明这一点,避免后续技能尝试 iam:CreateRole 后失败:

提醒一下:你是通过 SSO(AWSReservedSSO_<PermissionSet>_...)进行身份验证的。SSO 主体通常无法直接创建 IAM 角色。如果我们需要 SageMaker 执行角色,我会先查找现有角色;如果没有,你需要联系负责管理 AWS 访问权限的人来创建一个。

这是此技能最有价值的作用。现在说明这一点,可以将部署过程中的令人困惑的错误转化为只需五秒钟的沟通。

要运行的命令

# Effective profile and region (faster than parsing config files)
aws configure list

# Validate credentials and get identity
aws sts get-caller-identity
aws sts get-caller-identity --profile <profile-name>  # if a profile was named

aws configure list 会处理环境变量覆盖,并显示解析后的有效值。优先使用它,而不是自行解析 ~/.aws/config。如果需要读取原始配置(例如列出配置文件),~/.aws/config 和 ~/.aws/credentials 都是普通的 INI 文件——只能读取。

要反馈的信息

一到两行即可,不要长篇大论:

正在使用账户 123456789012 中 eu-west-1 区域的配置文件 my-profile。你是通过 SSO 进行身份验证的,因此我们需要使用现有 IAM 角色,而不是创建新角色。

不要要求用户确认你刚从其配置中读取的区域——这是用户配置的,无需再次确认。

如果存在问题(凭证过期、配置文件不存在、任何地方都未配置区域),请停止,并在继续之前明确说明具体错误。

评论

支持 Markdown