SageMaker 执行角色预检
在 SageMaker 部署或训练前发现并验证可用的 IAM 执行角色。
文档要求先发现和验证角色,并说明 AWS 凭据继承及失败反馈;但创建脚本无明确用户确认、无回滚,默认附加 AmazonSageMakerFullAccess,明显违反最小权限,且最小权限模板仍包含 Resource 为 * 的 ECR 和 CloudWatch 权限,因此扣分。
两个 Python 脚本、参数、退出码和错误路径基本一致,且提供原生命令行回退;但信任策略仅做字符串包含检查,创建过程部分失败时不会清理已创建角色,未见针对关键路径的测试,静态评估不超过 10 分。
触发条件、输入形式、Windows 与 Unix 环境注意事项及 SSO 场景较清楚;但仅覆盖 SageMaker IAM 角色预检,未声明更多非适用边界,也未提供中文支持或中国大陆网络可达性说明,因此扣分。
目录包含 SKILL.md、脚本和 JSON 参考文件,说明了运行方式、权限和部分限制,并有 Apache-2.0 许可证及仓库 CI;但缺少技能自身的版本、变更记录、明确维护责任和更新路径,示例与故障排查覆盖有限。
发现并返回可用执行角色 ARN,或给出 SSO 解阻建议,能完成核心预检任务;但只验证存在性和信任关系,不验证实际权限,创建路径使用过宽策略且缺少确认与恢复,结果仍需人工审查。
源文件、参考策略和脚本逻辑可审计,仓库 CI 验证生成产物并检查版本变更;但没有覆盖该技能关键路径的提交测试或第三方执行证据,无法静态确认 AWS 行为,故不超过 5 分。
- create_role.py 会附加 AmazonSageMakerFullAccess,执行前必须进行人工最小权限审查。
- 脚本创建角色、附加托管策略和写入内联策略之间没有事务性回滚;中途失败可能留下部分配置。
- 信任策略检查是字符串包含判断,不能严格确认 Principal、Action 或条件约束。
- 该技能依赖本地 AWS CLI、有效凭据和可访问的 AWS 服务;未提供中国大陆网络可达性或中文操作支持说明。
这个 Skill 能做什么,适合哪些场景?
该技能在创建 SageMaker 端点、模型、训练任务或其他需要执行角色的资源前,先检查角色是否存在且可被 SageMaker 承担。它优先验证用户提供的角色 ARN,再按最近使用时间发现现有角色,必要时才指导创建新角色。技能重点防止 SSO 身份缺少 IAM 写权限时盲目调用 iam:CreateRole。它适合已有 AWS CLI 身份配置、需要可靠 SageMaker 权限预检的部署流程。
运行 Python 辅助脚本检查指定角色或发现 SageMaker 命名模式的现有角色;根据最近使用时间排序,并回退到创建时间;验证角色存在以及信任策略是否允许 sagemaker.amazonaws.com 调用 sts:AssumeRole;成功时输出角色 ARN,失败时通过 stderr 说明原因;在没有可用角色且用户具备权限时调用创建角色脚本,并可将 S3 访问范围限定到模型桶;在 SSO 用户无法创建角色时,明确列出需要管理员提供的角色 ARN 或 IAM 权限。技能还提供使用 AWS CLI 手动执行同等预检的步骤。
- 正在部署 SageMaker 端点但没有提供执行角色 ARN 的开发者,需要先发现可用角色。
- 准备创建 SageMaker 模型或训练任务的机器学习工程师,希望避免部署脚本直接创建 IAM 角色。
- 使用 AWS SSO 且遇到 IAM AccessDenied 的用户,需要判断是缺少角色还是缺少创建权限。
- 账户中存在多个 SageMaker 角色的运维人员,希望优先选择最近使用、可能仍在维护的角色。
- 在 Windows PowerShell、macOS 或 Linux 上运行 AWS CLI 的用户,需要跨平台执行角色预检。
这个 Skill 有哪些优点和局限?
- 明确要求先发现和验证角色,再考虑创建。
- 按最近使用时间选择角色,并在缺少 LastUsedDate 时按创建时间回退。
- 验证 SageMaker 信任策略,能识别常见的执行角色配置问题。
- Python 辅助脚本适用于 Windows、macOS 和 Linux,并提供 AWS CLI 手动回退方案。
- 对 SSO 无 IAM 写权限的失败场景给出具体解锁路径。
- 不会深度检查角色权限,只验证角色存在和 SageMaker 信任策略。
- 依赖本机 Python、AWS CLI、有效凭证链以及可用的 AWS 网络连接。
- 源材料未提供测试套件、版本要求或独立安装包。
- 角色创建仅在用户具备相应 IAM 权限时可行。
如何安装这个 Skill?
从 huggingface/skills 仓库的 skills/ 目录中复制或 symlink 整个 hf-cloud-sagemaker-iam-preflight 文件夹到 Codex 标准的 .agents/skills 位置,例如 $REPO_ROOT/.agents/skills 或 $HOME/.agents/skills。仓库 README 未提供该单个技能的独立安装命令。
如何使用这个 Skill?
在 AWS CLI 已能成功运行 aws sts get-caller-identity 的同一 shell 中运行:python3 scripts/check_role.py "<role-name-or-arn>" 验证指定角色,或运行 python3 scripts/check_role.py 发现现有角色。Windows PowerShell 使用 python scripts/check_role.py。可对编码代理提出:“在创建 SageMaker 训练任务前,使用 SageMaker IAM 预检技能检查并验证执行角色。”若没有可用角色且具备 IAM 权限,可运行 python3 scripts/create_role.py "<role-name>" "<model-bucket>";若使用 SSO 且无创建权限,应停止并请求 AWS 管理员提供角色 ARN或授予必要权限。
这个 Skill 与同类方案有什么区别?
与 Python 辅助脚本相比,技能提供的 Native AWS CLI equivalent 需要用户手动列出角色、读取信任策略并比较使用或创建时间;两者执行的是相同的预检逻辑。