You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用SageMaker CreateTrainingJob报无法代入IAM角色错误排查求助

问题说明

调用SageMaker CreateTrainingJob接口创建训练任务时抛出如下报错:

botocore.exceptions.ClientError: An error occurred (ValidationException)
when calling the CreateTrainingJob operation: Could not assume role arn:aws:iam::<'role'>.
 Please ensure that the role exists and allows principal 'sagemaker.amazonaws.com' to assume the role.

对应业务代码如下:

try:
    sagemaker_role = sagemaker.get_execution_role()
except ValueError:
    iam = boto3.client('iam')
    sagemaker_role = iam.get_role(RoleName='<sagemaker-IAM-role-name>')['Role']['Arn']
    
print('role_is', sagemaker_role)
    


training_image = image_uris.retrieve(
    framework="sklearn",
    region='us-east-2',
    version='0.20.0',
    py_version="py3",
    instance_type="ml.c5.xlarge",
)
print(training_image)

sm_boto3 = boto3.client("sagemaker", region_name='us-east-2')
print(sm_boto3)

response = sm_boto3.create_training_job( ....
     )

初步怀疑为botocore配置问题,需要boto3相关参数的正确配置方案。

问题根因

该报错和botocore/boto3本身配置无关,核心原因是传入训练任务的IAM角色无法被SageMaker服务正常代入,常见触发场景:

  • 代码中<sagemaker-IAM-role-name>占位符未替换为实际存在的IAM角色名,获取到的是无效的占位符ARN
  • 目标IAM角色的信任策略未配置sagemaker.amazonaws.com为授信主体,SageMaker没有权限代入该角色
  • 获取到的角色ARN格式错误,存在多余字符、账号ID/角色名和IAM控制台实际资源不匹配的问题
修复步骤
  1. 修正角色获取逻辑
    将代码中RoleName参数的占位符替换为IAM控制台实际创建的SageMaker角色名,运行代码后查看role_is的打印结果,确认ARN格式为标准格式arn:aws:iam::<12位AWS账号ID>:role/<真实角色名>,不存在尖括号、单引号等多余占位字符。
  2. 配置角色信任策略
    进入IAM控制台找到对应角色,编辑信任关系,添加如下允许SageMaker代入角色的策略:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "sagemaker.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

如果该角色需要同时被其他AWS服务调用,可在Service列表中追加对应服务标识即可。
3. 补充角色必要权限
给该角色附加SageMaker训练任务所需的基础权限,包括S3训练数据/模型产物读写权限、CloudWatch日志写入权限,避免任务启动后出现权限阻断。
4. 修正接口传参
调用create_training_job时,RoleArn参数直接传入校验完成的sagemaker_role变量即可,无需额外拼接内容,基础传参参考:

response = sm_boto3.create_training_job(
    TrainingJobName="自定义训练任务名称",
    RoleArn=sagemaker_role,
    # 其余训练镜像、计算资源、输入输出通道等参数按业务需求补充
)

内容的提问来源于stack exchange,提问作者Joon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 22:24:13