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

Sno*_*ash 7 amazon-web-services

我经常收到这个错误:

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

当我运行此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>
Run Code Online (Sandbox Code Playgroud)

这在以前工作,所以我不确定什么可以改变.并且不知道如何调试这个.

有什么建议?

Leo*_*nkv 13

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

unset AWS_SECRET_ACCESS_KEY
unset AWS_SECRET_KEY
unset AWS_SESSION_TOKEN
Run Code Online (Sandbox Code Playgroud)

然后你的命令:

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>
Run Code Online (Sandbox Code Playgroud)

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

export AWS_ACCESS_KEY_ID=<access key>
export AWS_SECRET_ACCESS_KEY=<secret access key>
export AWS_SESSION_TOKEN=<session token>
Run Code Online (Sandbox Code Playgroud)

我希望它有帮助!

  • 只需对这些值使用“unset”和“export”就解决了我的问题。谢谢 (2认同)

小智 10

检查文件中的aws_access_key_id和aws_secret_access_key是否正确~/.aws/credentials。

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

为我工作。


小智 6

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

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

这清除了错误


Sup*_*pra 2

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

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

export AWS_ACCESS_KEY_ID='your access key id here';
export AWS_SECRET_KEY='your secret key here'
Run Code Online (Sandbox Code Playgroud)