Agent Skills
返回列表
🔒

SageMaker IAM 预检

IT 运维与安全 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/hf-cloud-sagemaker-iam-preflight。

技能介绍

部署 SageMaker 时 IAM 执行角色为什么总踩坑

每个 SageMaker 资源都需要执行角色:服务用该 IAM 角色从 S3 读模型工件、从 ECR 拉容器、写 CloudWatch 日志。常见失败模式是脚本先尝试创建新角色,却没有先查账户里是否已有可用角色;更糟的是调用者是 SSO 主体时,iam:CreateRole 一类操作会直接失败,只留下模糊的「权限被拒绝」。

技能在做什么

此技能把流程固定为:发现 → 验证 → 仅在必要时创建。

  • 步骤 1:若用户已指定角色名,用 check_role.py 校验是否存在,且信任策略允许 sagemaker.amazonaws.com 执行 sts:AssumeRole;失败时在 stderr 说明原因,不静默「修」坏角色。
  • 步骤 2:自动列出符合常见命名模式的角色(如 AmazonSageMaker-ExecutionRole-*),按最近使用时间排序(无 RoleLastUsed 时回退到创建时间),逐个验证信任策略,返回第一个可用 ARN。
  • 步骤 3:仅当发现无结果且调用者有 IAM 权限时才创建;create_role.py 可将 S3 范围限定到指定存储桶。若无法创建(SSO),技能会明确停止并给出向管理员索取 ARN 或申请权限集的具体指引。

辅助脚本是跨平台 Python,应在 aws sts get-caller-identity 已成功的同一 shell 中运行,以继承区域、SSO 会话与凭据链。

边界与注意

「已验证」指角色存在且信任策略正确;不做全量 iam:SimulatePrincipalPolicy 权限审计——部署阶段的拒绝信息通常更准。最小权限模板见技能内 references/minimum-permissions.json;若 Python 脚本无法看到身份,可按文档中的原生 AWS CLI 等效命令手动预检。

使用场景

  • 在 PowerShell 或本机终端里跑 SageMaker 部署脚本前,先确认账户里是否已有可 Assume 的执行角色 ARN
  • 公司 SSO 登录 AWS,脚本自动建角色报 Access Denied,需要列出并按最近使用选出可用角色或拿到管理员指引
  • 用户只提供了角色名,部署前要验证信任策略是否允许 sagemaker.amazonaws.com 承担该角色
  • 有 IAM 权限但不想用 FullAccess,需为新建执行角色把 S3 策略限定到存放模型工件的存储桶

适合人员

  • 在 AWS 上发布 SageMaker 端点或训练作业、常被执行角色或 SSO 权限挡住的 ML 工程师
  • 维护 SageMaker 部署流水线,希望把 IAM 预检写进 Runbook 的平台或 DevOps 工程师
  • 仅有业务账号 SSO、不能自行 CreateRole,却要在文档里写清该向谁要什么 ARN 的数据/算法同学
  • 负责收紧 SageMaker 执行角色策略、对照最小权限 JSON 调整 S3/ECR 权限的云安全或 IAM 管理员