调用AssumeRole操作时发生错误(InvalidClientTokenId):请求中包含的安全令牌无效

时间:2017-10-31 12:00:15

标签: amazon-web-services

我不断收到此错误:

An error occurred (InvalidClientTokenId) when calling the AssumeRole operation: The security token included in the request is invalid.

当我运行此Assume Role命令时:

aws sts assume-role --role-arn <arn role i want to assume> --role-session-name dev --serial-number <my arn> --token-code <keyed in token code>

这是以前的工作,所以我不确定会发生什么变化。并且不知道如何调试它。

有什么建议吗?

6 个答案:

答案 0 :(得分:2)

旧帖子,但可能仍然有用。

您可以尝试在环境中设置以下内容并重试:

export AWS_ACCESS_KEY_ID='your access key id here';
export AWS_SECRET_KEY='your secret key here'

答案 1 :(得分:1)

我注意到,当我不得不更改我的 AWS IAM 密码时,我的访问密钥也被删除了。

我必须生成一个新的访问密钥并替换存储在 aws_access_key_id(在 Mac 上)文件中的 aws_secret_access_key~/.aws/credentials

这清除了错误

答案 2 :(得分:0)

我有同样的问题。您可能需要在运行sts命令之前取消设置AWS env变量:

unset AWS_SECRET_ACCESS_KEY
unset AWS_SECRET_KEY
unset AWS_SESSION_TOKEN

然后输入命令:

aws sts assume-role --role-arn <arn role i want to assume> --role-session-name dev --serial-number <my arn> --token-code <keyed in token code>

在这里您将获得新的凭据。然后再次运行导出:

export AWS_ACCESS_KEY_ID=<access key>
export AWS_SECRET_ACCESS_KEY=<secret access key>
export AWS_SESSION_TOKEN=<session token>

希望对您有帮助!

答案 3 :(得分:0)

在这里,您需要重设AWS密钥和ID,例如-

export AWS_ACCESS_KEY_ID='ACCESS_KEYID';
export AWS_SECRET_KEY='SECRET_KEY'

在我的情况下,我在终端机上为aws configure使用了命令cli,它询问访问密钥ID,秘密密钥,区域和输出格式。

答案 4 :(得分:0)

您需要执行aws configure并在第一次运行STS命令的环境上设置AWS访问密钥和秘密密钥。 STS命令使用该数据验证身份,并检查您是否具有执行STS假定角色的权限。

如果您已经配置了现有的访问密钥和秘密密钥,则这些密钥也可能已过期。因此,您可能需要在IAM中为用户生成新密钥,并在运行的环境中对其进行配置。

答案 5 :(得分:0)

检查您的 aws_access_key_idaws_secret_access_key~/.aws/credentials 文件中是否正确。

如果是,那么如果 ~/.aws/credentials 文件包含 aws_session_token,则仅删除文件中的那一行,保存更改并重新运行命令。

为我工作。