如何移除本地已assume的IAM角色并切回原本地AWS凭证
切回原有AWS本地凭证的解决步骤
你之前的操作未生效,核心原因是assume-role生成的临时凭证还存在于优先级更高的本地加载路径中,按以下顺序处理即可:
1. 清空当前Shell的AWS相关环境变量
绝大多数人执行aws sts assume-role后,会直接把返回的三个临时凭证参数设置为当前Shell的环境变量,这类环境变量的优先级高于~/.aws目录下的本地配置,删除缓存、控制台撤销会话都不会自动清除这些变量:
- 执行以下命令清空所有AWS相关的临时环境变量:
unset AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN AWS_PROFILE
- 执行后用
aws sts get-caller-identity验证当前调用身份,正常就已经切回本地默认配置的凭证了。
2. 检查本地凭证/配置文件的修改
如果清空环境变量后仍未生效,说明你可能手动把临时凭证写入了本地配置文件:
- 打开
~/.aws/credentials文件,检查[default]配置块,删除临时生成的aws_access_key_id、aws_secret_access_key、aws_session_token三个参数,恢复你原本的凭证即可 - 如果你是用指定profile关联的assume角色配置,确认没有手动把
AWS_PROFILE环境变量固定为该角色对应的profile。
额外说明
控制台的「Revoke Active Sessions」操作只会阻断旧临时凭证的后续请求,不会自动清除你本地已经存储的临时凭证,所以操作后你本地还是会优先用已有的凭证发起请求,才会出现操作未生效的错觉。
内容的提问来源于stack exchange,提问作者Red Bottle
相关产品推荐
相关产品推荐

