关于 signing-in-to-aws
引导开发者使用 `aws login` 获取本地 AWS CLI 和 SDK 凭证的技能,涵盖前置检查、用户确认、凭证验证和常见登录问题。
主要功能
- 01检查 AWS CLI 版本与凭证
- 02引导经确认后执行 `aws login`
- 03登录后验证身份
- 04排查浏览器和权限错误
适用场景
- 01设置短期本地 AWS 凭证
- 02切换到具名 AWS 配置文件
- 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 运行以下命令,以便制定计划。告知用户检查结果,但不要以用户提供的输出作为是否给出建议的前提:
aws --version— 确认 CLI 版本为 2.32.0 或更高。如果未安装或版本过低,请引导用户查看 AWS CLI 安装指南,然后停止。aws sts get-caller-identity— 检查当前凭证。- 成功:向用户显示其 Account 和 Arn。询问他们是要保留这些凭证,还是设置其他凭证。如果他们想切换,建议使用
aws login --profile <name>,以免覆盖现有默认配置。 - 失败(凭证缺失或已过期):使用默认配置文件继续运行
aws login。
- 成功:向用户显示其 Account 和 Arn。询问他们是要保留这些凭证,还是设置其他凭证。如果他们想切换,建议使用
- (仅当第 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 一起列为表格行。仅在以下情况提供它作为替代方案:
- 用户明确拒绝使用
aws login或询问其他方案 - 用户表示自己位于 GovCloud 或中国区域(这些区域无法使用
aws login)
提供此方案时,请说明长期访问密钥的安全性较低:它们以明文形式保存在磁盘上,不会自动过期,而且一旦泄露,就会赋予无限期访问权限。
不适用此技能的情况
- 用户正在设置 CI/CD 凭证——他们需要 IAM 角色或 OIDC 联合身份验证,而不是
aws login
要点
- 不要一开始就展开故障排查——初次回复应简明,仅在出现错误时处理
aws login适用于根用户、IAM 用户以及使用 IAM 联合身份验证的用户