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

如何解决AWS CLI调用get-session-token时的AccessDenied错误?

排查方向整理
  • 确认当前凭证类型
    你当前的ARN是arn:aws:sts:XXXXX:assumed-role/YYYYYY/botoscore-session-ZZZZ,说明正在使用角色临时会话凭证,而aws sts get-session-token仅支持使用IAM用户的长期访问凭证(Access Key ID + Secret Access Key)调用。执行aws sts get-caller-identity验证当前凭证类型,若返回的Arn以assumed-role开头,就会触发这个错误。

  • 切换至IAM用户长期凭证
    需要切换到对应IAM用户的基础凭证配置(而非角色临时凭证),再执行get-session-token命令。如果之前是通过aws sts assume-role获取的临时凭证,需先恢复到用户级别的凭证配置(比如修改~/.aws/credentials文件,切换到对应的用户配置段)。

  • 校验MFA参数正确性
    确保--serial-number参数对应的是IAM用户的MFA设备ARN(格式应为arn:aws:iam::你的账号ID:mfa/用户名),而非角色相关的ARN。同时确认输入的--token-code是当前MFA设备生成的有效验证码。

  • 检查IAM用户权限
    确认该IAM用户已被授予sts:GetSessionToken权限,且没有附加拒绝该操作的权限策略。可以查看用户的权限策略,确保包含类似以下的允许语句:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "sts:GetSessionToken",
                "Resource": "*"
            }
        ]
    }
    
  • 修正命令格式
    原命令中输出文件的写法有误,应使用重定向符号指定输出:

    aws sts get-session-token \
    --duration-seconds $DURATION \
    --serial-number $AWS_SERIAL \
    --token-code $AWS_MFA \
    --output json > ~/.aws/cli/cache/session.json
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 21:10:07