首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用AssumeRole操作时出错(InvalidClientTokenId):请求中包含的安全令牌无效

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

Stack Overflow用户
提问于 2017-10-31 20:00:15
回答 8查看 35.7K关注 0票数 14

我经常收到这样的错误:

代码语言:javascript
复制
An error occurred (InvalidClientTokenId) when calling the AssumeRole operation: The security token included in the request is invalid.

当我运行此假设角色命令时:

代码语言:javascript
复制
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>

这是以前的工作,所以我不确定有什么可以改变。并且不知道如何调试它。

有什么建议吗?

EN

回答 8

Stack Overflow用户

发布于 2019-02-09 05:30:09

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

代码语言:javascript
复制
unset AWS_SECRET_ACCESS_KEY
unset AWS_SECRET_KEY
unset AWS_SESSION_TOKEN

然后是你的命令:

代码语言:javascript
复制
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>

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

代码语言:javascript
复制
export AWS_ACCESS_KEY_ID=<access key>
export AWS_SECRET_ACCESS_KEY=<secret access key>
export AWS_SESSION_TOKEN=<session token>

我希望它能有所帮助!

票数 14
EN

Stack Overflow用户

发布于 2020-07-13 20:16:39

如果您是第一次运行STS命令,那么您需要在运行STS命令的环境中执行aws configure并设置AWS access key和secret key。STS命令使用该数据验证身份,并检查您是否有权限执行STS assume role。

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

票数 3
EN

Stack Overflow用户

发布于 2021-07-23 08:23:58

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

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

对我很管用。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47034903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档