用途:SageMaker 的每个资源都需要一个执行角色,供 SageMaker 代入以从 S3 读取模型产物、从 ECR 拉取容器并写日志。多数部署失败是因为脚本未检查是否已有可用角色就直接创建,又因调用方是 SSO 主体而失败。该技能固化正确顺序:发现、验证、仅在必要时创建。
主要能力:check_role.py 在传入角色名或 ARN 时验证该角色,成功将 ARN 打印到 stdout(退出 0),失败在 stderr 记录原因;不传参时列出匹配常见 SageMaker 模式(如 AmazonSageMaker-ExecutionRole-、SageMakerExecutionRole)的角色,按最近使用时间排序并依次验证信任策略,返回首个可用 ARN。若 IAM 未报告 RoleLastUsed,则按最新创建日期回退。create_role.py 仅在发现阶段无结果且用户有创建权限时使用,第二个参数将 S3 访问限定到指定桶,省略则警告并稍后可更新策略。
用法:在 AWS CLI 可用的同一 shell 中运行(即 aws sts get-caller-identity 成功处)。命令:python3 scripts/check_role.py(macOS/Linux)、python scripts/check_role.py(Windows)。验证指定角色:python3 scripts/check_role.py "<role-name-or-arn>"。创建:python3 scripts/create_role.py "<role-name>" "<model-bucket>"。Windows 上不要通过 WSL、Git Bash、MSYS 等 Bash 垫片调用,这些环境常不共享 Windows 的 AWS 配置、凭证、SSO 会话、环境变量或代理。
限制:"验证"仅检查角色存在且信任策略允许 sagemaker.amazonaws.com 执行 sts:AssumeRole,不做深入权限分析。若为 SSO 主体无法创建角色,应停止并明确说明,请管理员提供 ARN 或授予 iam:CreateRole、iam:AttachRolePolicy、iam:PutRolePolicy 权限。其余平台、收费与效果信息暂未提供。