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

使用AWS CLI获取会话令牌遇ExpiredToken错误求助

解决AWS CLI执行get-session-token时的ExpiredToken错误
  • 清理过期的现有凭证
    当前CLI缓存的过期凭证会干扰get-session-token请求,先排查并清除:

    • 执行aws configure list查看当前生效的凭证信息,确认是否存在过期的aws_access_key_id、aws_secret_access_key或aws_session_token。
    • 删除对应配置文件中的过期条目:Linux/macOS路径为~/.aws/credentials,Windows路径为C:\Users\<你的用户名>\.aws\credentials,直接移除相关的凭证行即可。
  • 使用IAM长期密钥执行命令
    get-session-token必须依赖IAM用户的长期访问密钥(而非临时会话凭证)调用,确保当前CLI使用的是有效长期密钥:

    • 重新配置长期密钥:执行aws configure,输入有效的aws_access_key_id和aws_secret_access_key(无需输入session token),完成后再运行目标命令。
    • 临时测试可直接在命令中指定长期密钥(不推荐长期使用):
      aws sts get-session-token --serial-number arn:aws:iam::<Account>:mfa/**** --token-code <MFA CODE> --aws-access-key-id <你的长期Access Key> --aws-secret-access-key <你的长期Secret Key>
      
  • 校验MFA相关参数有效性

    • 确认MFA设备ARN正确:替换命令中的<Account>为你的AWS账号ID,****为实际的MFA设备名称(通常是你的IAM用户名)。
    • 确保<MFA CODE>是当前30秒内的有效令牌,避免输入已过期的6位验证码。
  • 检查环境变量中的过期凭证
    AWS CLI会优先读取环境变量中的凭证,若之前设置过AWS_SESSION_TOKEN且已过期,会直接导致请求失败:

    • Linux/macOS下执行echo $AWS_SESSION_TOKEN,若有输出则用unset AWS_SESSION_TOKEN清除。
    • Windows命令提示符下执行set AWS_SESSION_TOKEN=清除该环境变量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 04:19:54