调用AWS SageMaker get_execution_role()遇ExpiredToken错误求助
解决AWS SageMaker中
get_execution_role()报ExpiredToken错误的问题 这个错误的核心原因是AWS临时安全令牌过期,get_execution_role()函数会调用AWS STS(安全令牌服务)的GetCallerIdentity接口验证身份,过期的令牌无法通过验证,因此抛出该错误。
以下是具体解决步骤:
重启SageMaker Notebook实例
如果你的Notebook运行在AWS托管的SageMaker实例上,直接登录AWS控制台,找到对应的Notebook实例,点击「重启」按钮。实例重启后会自动从关联的IAM角色获取新的临时安全令牌,重新运行代码即可正常执行。手动刷新AWS凭证(本地/自定义环境)
若你在本地或非托管环境运行Notebook,需要手动更新有效凭证:- 若是使用长期访问密钥,打开AWS CLI执行
aws configure,重新输入有效的访问密钥ID和秘密访问密钥; - 若是使用临时凭证(如IAM角色、AWS SSO),执行对应刷新命令:比如SSO用户运行
aws sso login重新登录获取新令牌。
- 若是使用长期访问密钥,打开AWS CLI执行
验证IAM角色权限(可选排查)
虽然这个错误大概率是令牌过期导致,但如果重启/刷新凭证后仍报错,可检查关联的IAM角色是否包含sts:GetCallerIdentity权限——该权限是get_execution_role()正常运行的基础,确保角色的权限策略中允许此操作。
临时安全令牌默认有效期为12小时,因此隔天后运行代码出现过期错误属于正常情况,重启托管实例是最便捷的解决方式。
内容的提问来源于stack exchange,提问作者James
相关产品推荐
相关产品推荐

