办理AWS EC2实例无法使用IAM脚色登录AWS CLI

[复制链接]
发表于 2025-10-19 19:39:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
标题配景

偶尔,我们渴望一台AWS EC2实例,即云服务器,可以或许使用AWS CLI访问AWS管理控制台资源。
比方,这里,我们想让它可以或许列出全部IAM用户组。
  1. aws iam list-groups
复制代码
于是,我们使用下面的下令,在AWS CLI中添加某位用户的访问秘钥,作为访问时的认证根据。
  1. aws configure
复制代码
然而,这并非最佳方法。最佳方法应是给要访问控制台的实例分配一个IAM脚色。否则将会有许多标题,比方,当前使用的访问秘钥能直接被以明文列出。
  1. cat ~/.aws/credentials
复制代码
于是,我们新建一个具有我们要分配的权限的IAM脚色,并把它分配给这个实例。


标题形貌

之后我们在控制台里删除原来使用的访问秘钥。然而,此时,新分配的脚色好像并没有起作用。
  1. [ec2-user@ip-172-31-6-134 ~]$ aws iam list-groups
  2. An error occurred (InvalidClientTokenId) when calling the ListGroups operation: The security token included in the request is invalid.
复制代码
故障排查

我们猜疑AWS CLI好像还在实验使用原来的秘钥举行认证。然而,由于这对秘钥已经从控制台内被删除,以是天然而然,认证失败。
办理方法

毕竟确实云云。当一个EC2实例被分配了一个IAM脚色时,并不会自动抹除之前使用aws configure
设置的访问秘钥根据。不但云云,当IAM脚色根据和访问秘钥根据同时存在时,后者具有更高优先级,也就是说AWS CLI会优先使用它们。
既然云云,移除原来使用的访问秘钥应该就能欺压AWS CLI使用脚色举行认证。直接删除储存秘钥的文本文件credentials。
  1. rm ~/.aws/credentials
复制代码
有人发起再抹除一些情况变量,但实验下来好像并不须要。
  1. for var in AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN AWS_SECURITY_TOKEN ; do eval unset $var ; done
复制代码
删除完成后,再次实验从CLI访问AWS管理控制台。
乐成。
  1. [ec2-user@ip-172-31-6-134 ~]$ aws iam list-groups
复制代码
  1. {
  2.     "Groups": [
  3.         {
  4.             "Path": "/",
  5. --snip--
复制代码
而且,我们还能确认,我们当前确着实用脚色作为根据访问。
  1. [ec2-user@ip-172-31-6-134 ~]$ aws sts get-caller-identity
复制代码
  1. {
  2.     "UserId": "AR...KI:i-0f54eeba8022361ec",
  3.     "Account": "5...2",
  4.     "Arn": "arn:aws:sts::5...2:assumed-role/IAMReaderRole/i-0f54eeba8022361ec"
  5. }
复制代码
  1. [ec2-user@ip-172-31-6-134 ~]$ aws configure
  2. list      Name                    Value             Type    Location      ----                    -----             ----    --------   profile                <not set>             None    Noneaccess_key     ****************6TVT         iam-role    secret_key     ****************RnOE         iam-role        region           ap-southeast-1             imds    [ec2-user@ip-172-31-6-134 ~]$
复制代码
标题办理。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表