关于 hf-cloud-aws-context-discovery
帮助 AWS 操作前读取并确认本地 AWS 上下文的技能,面向需要处理云资源的用户。它按明确的优先级解析配置,并在后续操作前识别凭证与 SSO 身份。
主要功能
- 01解析有效 AWS 配置文件
- 02按优先级确定区域
- 03验证凭证并获取账户与调用者 ARN
- 04识别 SSO 与角色身份
- 05发现配置或凭证错误时提示
适用场景
- 01开始 AWS 工作前确认配置文件和区域
- 02验证 AWS 身份及账户信息
- 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. 区域
按以下顺序确定区域——找到第一个有值的选项后即停止:
- 用户在本次对话中明确指定的区域
AWS_REGION环境变量AWS_DEFAULT_REGION环境变量~/.aws/config中活动配置文件的region字段- 询问用户——但只有前四项都未能确定区域时才询问
不要回退到 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 角色,而不是创建新角色。
不要要求用户确认你刚从其配置中读取的区域——这是用户配置的,无需再次确认。
如果存在问题(凭证过期、配置文件不存在、任何地方都未配置区域),请停止,并在继续之前明确说明具体错误。