后端与接口
在开始任何 AWS 任务前先读取本地 AWS…
在任何 AWS 操作(部署 SageMaker、创建资源、调用 AWS API)之前,先发现并确认本地 AWS 配置中的 profile、region、账号 ID 和调用者身份。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
在开始任何 AWS 任务前先读取本地 A通用
解决思路
- 在 AWS 工作开始时运行这些命令,并在整个会话中记住结果。
- 确定活动 profile:优先使用 `AWS_PROFILE` 环境变量,否则用 `default`;如果用户在提示中提到了 profile,则以用户指定的为准;如果指定的 profile 在 `~/.aws/config` 中不存在,要明确指出来。
- 确定 region,按以下顺序解析,遇到第一个有值的就停止:1) 用户在当前对话中明确指定的 region;2) `AWS_REGION` 环境变量;3) `AWS_DEFAULT_REGION` 环境变量;4) `~/.aws/config` 中活动 profile 的 `region` 字段;5) 只有前四项都失败后才询问用户。不要回退到 `us-east-1` 或任何硬编码默认值。
- 获取凭证、账号 ID 和调用者 ARN:运行 `aws sts get-caller-identity --profile <profile> --region <region>`。这一次调用有三个用途:确认凭证有效(无效则停止)、返回 `Account` ID(构造 ARN 时需要)、返回调用者的 `Arn`。
- 识别 SSO / 代入角色主体:根据 `Arn` 字段判断主体类型。`arn:aws:iam::<acct>:user/<name>` 是 IAM 用户,IAM 写权限取决于附加策略;`arn:aws:sts::<acct>:assumed-role/AWSReservedSSO_<...>/<email>` 是 SSO 代入角色,通常没有任何 IAM 写权限,不能创建/修改 IAM 角色;`arn:aws:sts::<acct>:assumed-role/<role>/<session>` 是普通代入角色,权限取决于该角色。
- 如果调用者是 SSO,立即在后续技能触发 `iam:CreateRole` 失败之前提示:『提醒:你通过 SSO(`AWSReservedSSO_<PermissionSet>_...`)认证。SSO 主体通常不能直接创建 IAM 角色。如果我们需要 SageMaker 执行角色,我会先查找现有角色——如果没有,你需要请管理你 AWS 访问权限的人创建一个。』这是本技能最高杠杆的动作,现在提示可以把部署中途的困惑错误变成五秒钟的对话。
- 运行命令:`aws configure list` 查看生效的 profile 和 region(比解析配置文件更快);`aws sts get-caller-identity` 验证凭证并获取身份;如果指定了 profile,运行 `aws sts get-caller-identity --profile <profile-name>`。`aws configure list` 会处理环境变量覆盖并显示解析后的生效值,优先用它而不是自己解析 `~/.aws/config`。如果需要读取原始配置(例如列出 profile),`~/.aws/config` 和 `~/.aws/credentials` 是纯 INI 文件,只读。
- 回报时用一两行,不要长篇大论,例如:『正在使用 profile `my-profile`,region 为 `eu-west-1`,账号 `123456789012`。你通过 SSO 认证,所以我们需要使用现有的 IAM 角色而不是创建新角色。』不要要求用户确认你刚从其配置中读到的 region——他们配置了它,那就是确认。
- 如果出现问题(凭证过期、profile 不存在、任何地方都没有 region),停止并在继续之前指出具体错误。