mcpField
S
signing-in-to-aws

signing-in-to-aws

github.com/aws云与 DevOps3.3k6.2k 次安装1 天前更新
代码仓库

关于 signing-in-to-aws

引导开发者使用 `aws login` 获取本地 AWS CLI 和 SDK 凭证的技能,涵盖前置检查、用户确认、凭证验证和常见登录问题。

主要功能

  1. 01检查 AWS CLI 版本与凭证
  2. 02引导经确认后执行 `aws login`
  3. 03登录后验证身份
  4. 04排查浏览器和权限错误

适用场景

  1. 01设置短期本地 AWS 凭证
  2. 02切换到具名 AWS 配置文件
  3. 03解决凭证过期或缺失问题

安装

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

$npx skills add https://github.com/aws/agent-toolkit-for-aws --skill signing-in-to-aws

安装后在 Claude Code 中输入/signing-in-to-aws确认已加载。

详细介绍

登录 — 获取 CLI/SDK 凭证

帮助开发者使用 aws login 获取用于本地开发的 AWS 凭证。这会提供短期、自动轮换的凭证,每 15 分钟刷新一次,最长有效期为 12 小时。

重要:

  • 必须在用户的本地 Shell 中运行 aws login 和 aws --version,不得通过 MCP/API 工具运行。
  • 运行 aws login 前必须先征得用户确认。不要让用户自行运行该命令,而要询问是否由你来运行(例如:“准备好让我运行 aws login 了吗?”或“要我继续运行 aws login 吗?”)。等待用户回复后再继续。

先决条件

aws login 命令要求 AWS CLI 版本为 2.32.0 或更高版本。

检查已安装的版本:

aws --version

如果未安装 CLI,或版本低于 2.32.0,请告知用户,并询问他们是否要安装或更新(提供 AWS CLI 安装指南链接),或者是否希望在不使用此技能指引的情况下继续。如果他们选择不升级而继续,请像往常一样处理他们原本的请求,不使用此技能。

流程

首先给出建议

在首次回复中,务必告诉用户,解决办法是运行 aws login,并说明它会提供短期、自动轮换的凭证,且要求 AWS CLI 版本为 2.32.0 或更高版本。不要只说“让我检查一下你的 CLI 版本”就停下——要先说明解决办法,让用户了解后续方向,然后再介绍运行命令前会进行的先决条件检查。

先决条件检查(在征求确认前静默运行)

通过本地 Shell 运行以下命令,以便制定计划。告知用户检查结果,但不要以用户提供的输出作为是否给出建议的前提:

  1. aws --version — 确认 CLI 版本为 2.32.0 或更高。如果未安装或版本过低,请引导用户查看 AWS CLI 安装指南,然后停止。
  2. aws sts get-caller-identity — 检查当前凭证。
    • 成功:向用户显示其 Account 和 Arn。询问他们是要保留这些凭证,还是设置其他凭证。如果他们想切换,建议使用 aws login --profile <name>,以免覆盖现有默认配置。
    • 失败(凭证缺失或已过期):使用默认配置文件继续运行 aws login。
  3. (仅当第 2 步成功且用户想使用其他凭证时) aws configure list — 如果 access_key 以 AKIA 开头,请说明长期访问密钥的安全性较低(永不过期、作为密钥持久保存在磁盘上,泄露后会授予无限期访问权限),而 aws login 提供的短期凭证每 15 分钟自动轮换、自动过期,且无需手动轮换。
确认并运行 aws login

确认先决条件后,只有在此时才针对运行 aws login 征求用户确认。不要让用户自行运行该命令,而要询问是否由你来运行(例如:“准备好让我运行 aws login 了吗?”或“要我继续运行 aws login --profile staging 吗?”)。等待用户回复,然后运行 aws login(或 aws login --profile <name>)。

验证

aws login 完成后,运行 aws sts get-caller-identity(如果使用了配置文件,则加上 --profile),以确认成功。如果使用了命名配置文件,请提醒用户传入 --profile 或设置 AWS_PROFILE。

错误处理

“command not found”或版本过低

CLI 未安装或版本低于 2.32.0。引导用户安装或更新:AWS CLI 安装指南。

浏览器未打开

建议使用 aws login --remote,它会提供用于跨设备身份验证的 URL 和代码(例如,在没有浏览器的远程服务上使用时)。

登录后出现权限错误

IAM 身份需要附加 SignInLocalDevelopmentAccess 托管策略(附加到用户、角色或组)。根用户不需要此策略。请告知用户联系管理员为其添加此策略;如果用户拥有 IAM 权限,也可以自行附加。

GovCloud 或中国区域

AWS GovCloud(美国)或 AWS 中国区域不提供 aws login。不要主动提及此例外——仅当用户明确表示自己位于这些分区之一时才相关。

使用现有 aws sso login 工作流的用户

如果用户提到 aws sso login 或已有 SSO 配置,请勿将其引导至 aws login。这是用于不同场景的不同命令:

  • aws sso login 适用于其组织已配置 AWS IAM Identity Center(SSO)的用户。他们在 ~/.aws/config 中配置了指向 SSO 启动 URL 的配置文件。尊重他们现有的工作流。
  • 如果他们的 aws sso login 失败,请结合其实际情况协助排查:SSO 会话过期、授权被撤销、缓存令牌问题(~/.aws/sso/cache/),或 Identity Center 配置变更。

回退到 aws configure

不要在初次回复中提及 aws configure,也不要将它与 aws login 一起列为表格行。仅在以下情况提供它作为替代方案:

  1. 用户明确拒绝使用 aws login 或询问其他方案
  2. 用户表示自己位于 GovCloud 或中国区域(这些区域无法使用 aws login)

提供此方案时,请说明长期访问密钥的安全性较低:它们以明文形式保存在磁盘上,不会自动过期,而且一旦泄露,就会赋予无限期访问权限。

不适用此技能的情况

  • 用户正在设置 CI/CD 凭证——他们需要 IAM 角色或 OIDC 联合身份验证,而不是 aws login

要点

  • 不要一开始就展开故障排查——初次回复应简明,仅在出现错误时处理
  • aws login 适用于根用户、IAM 用户以及使用 IAM 联合身份验证的用户

其他资源

评论

支持 Markdown