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

使用Boto3创建SageMaker训练作业报访问权限错误问题咨询

问题结论

无法通过调整sm_boto3客户端实例的配置参数解决该权限报错。
boto3客户端的可配置参数仅覆盖连接超时、API重试策略、自定义服务端点、代理配置、签名版本等调用侧行为,不具备为调用身份附加IAM权限的能力,从AWS权限校验逻辑上就不可能通过修改客户端参数绕过权限拦截。

报错根因

你收到的AccessDeniedException是AWS IAM权限层的校验拦截结果:所有AWS API的调用请求到达服务端后,会首先校验发起调用的身份(IAM用户/角色)所绑定的身份策略、资源策略、权限边界、服务控制策略等全链路权限规则,只要没有显式允许目标操作,就会直接拒绝请求,和本地客户端的参数配置无关。
你当前写的客户端初始化代码sm_boto3 = boto3.client("sagemaker")本身没有配置错误,它默认会按照boto3标准凭证链(优先级从高到低:环境变量、本地~/.aws/credentials配置文件、运行环境的实例/容器角色元数据服务)加载调用凭证,报错的本质是这个被加载到的调用身份本身没有sagemaker:CreateTrainingJob的操作授权。

修复步骤
  • 先确认当前环境实际使用的调用身份:在代码运行环境执行aws sts get-caller-identity,核对返回的身份ARN和报错信息中提示的未授权用户ARN完全一致,避免找错需要加权限的身份
  • 为该身份附加包含sagemaker:CreateTrainingJob操作权限的IAM策略,最小权限的策略片段参考:
{
    "Effect": "Allow",
    "Action": "sagemaker:CreateTrainingJob",
    "Resource": "*"
}

提示:如果要做权限收敛,可以将Resource字段替换为指定的SageMaker资源ARN;另外创建SageMaker训练作业通常还需要配套权限:对应S3训练数据/模型输出路径的读写权限、CloudWatch日志写入权限、向SageMaker传递训练执行角色的iam:PassRole权限,否则即使配置了CreateTrainingJob权限,后续调用仍会报其他权限错误。

  • 等待IAM策略生效后,无需修改原有boto3客户端初始化代码,重新运行训练作业创建逻辑即可正常调用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 02:39:23