当前位置: 首页 > news >正文

解决AWS EC2实例无法使用IAM角色登录AWS CLI

问题背景

有时,我们希望一台AWS EC2实例,即云服务器,能够使用AWS CLI访问AWS管理控制台资源。
例如,这里,我们想让它能够列出所有IAM用户组。

aws iam list-groups

于是,我们使用下面的命令,在AWS CLI中添加某位用户的访问秘钥,作为访问时的认证凭据。

aws configure

然而,这并非最佳方法。最佳方法应是给要访问控制台的实例分配一个IAM角色。否则将会有很多问题,例如,当前使用的访问秘钥能直接被以明文列出。

cat ~/.aws/credentials

于是,我们新建一个具有我们要分配的权限的IAM角色,并把它分配给这个实例。
在这里插入图片描述
在这里插入图片描述

问题描述

之后我们在控制台里删除原来使用的访问秘钥。然而,此时,新分配的角色似乎并没有起作用。

 [ec2-user@ip-172-31-6-134 ~]$ aws iam list-groups
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

rm ~/.aws/credentials

有人建议再抹除一些环境变量,但尝试下来似乎并不必要。

for var in AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN AWS_SECURITY_TOKEN ; do eval unset $var ; done

删除完成后,再次尝试从CLI访问AWS管理控制台。
成功。

[ec2-user@ip-172-31-6-134 ~]$ aws iam list-groups
{"Groups": [{"Path": "/",
--snip--

并且,我们还能确认,我们当前确实在用角色作为凭据访问。

[ec2-user@ip-172-31-6-134 ~]$ aws sts get-caller-identity
{"UserId": "AR...KI:i-0f54eeba8022361ec","Account": "5...2","Arn": "arn:aws:sts::5...2:assumed-role/IAMReaderRole/i-0f54eeba8022361ec"
}
[ec2-user@ip-172-31-6-134 ~]$ aws configure listName                    Value             Type    Location----                    -----             ----    --------profile                <not set>             None    None
access_key     ****************6TVT         iam-role    
secret_key     ****************RnOE         iam-role    region           ap-southeast-1             imds    
[ec2-user@ip-172-31-6-134 ~]$

问题解决。

相关文章:

解决AWS EC2实例无法使用IAM角色登录AWS CLI

问题背景 有时&#xff0c;我们希望一台AWS EC2实例&#xff0c;即云服务器&#xff0c;能够使用AWS CLI访问AWS管理控制台资源。 例如&#xff0c;这里&#xff0c;我们想让它能够列出所有IAM用户组。 aws iam list-groups于是&#xff0c;我们使用下面的命令&#xff0c;在…...

Java核心语法:从变量到控制流

一、变量与数据类型&#xff08;对比Python/C特性&#xff09; 1. 变量声明三要素 // Java&#xff08;强类型语言&#xff0c;需显式声明类型&#xff09; int age 25; String name "CSDN"; // Python&#xff08;动态类型&#xff09; age 25 name …...

manus是什么?能干啥?

Manus哪儿来的&#xff1f; ​ Manus是一款由中国团队Monica.im于2025年3月5日发布的通用型AI代理&#xff08;AI Agent&#xff09;产品&#xff0c;旨在通过自主思考、系统规划和灵活工具调用&#xff0c;帮助用户完成各种复杂任务&#xff0c;从而解放用户的时间与创…...

大型语言模型训练的三个阶段:Pre-Train、Instruction Fine-tuning、RLHF (PPO / DPO / GRPO)

前言 如果你对这篇文章可感兴趣&#xff0c;可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」&#xff0c;查看完整博客分类与对应链接。 当前的大型语言模型训练大致可以分为如下三个阶段&#xff1a; Pre-train&#xff1a;根据大量可获得的文本资料&#…...

Elasticsearch 2025/3/7

高性能分布式搜索引擎。 数据库模糊搜索比较慢&#xff0c;但用搜索引擎快多了。 下面是一些搜索引擎排名 Lucene是一个Java语言的搜索引擎类库&#xff08;一个工具包&#xff09;&#xff0c;apache公司的顶级项目。 优势&#xff1a;易扩展、高性能&#xff08;基于倒排索引…...

发行基础:热销商品榜单

转载自官方文件 ------------------ 热销商品榜单 Steam 在整个商店范围内有各种热销商品榜单&#xff0c;最醒目的莫过于 Steam 主页上的榜单了。 您也可以在浏览单个标签、主题、类型时找到针对某个游戏类别的热销商品榜单。 主页热销商品榜单 该榜单出现在 Steam 主页上…...

实战案例分享:Android WLAN Hal层移植(MTK+QCA6696)

本文将详细介绍基于MTK平台&#xff0c;适配高通&#xff08;Qualcomm&#xff09;QCA6696芯片的Android WLAN HAL层的移植过程&#xff0c;包括HIDL接口定义、Wi-Fi驱动移植以及wpa_supplicant适配过程&#xff0c;涵盖STA与AP模式的常见问题与解决方法。 1. HIDL接口简介 HID…...

物联网系统搭建

实验项目名称 构建物联网系统 实验目的 掌握物联网系统的一般构建方法。 实验要求&#xff1a; 1&#xff0e;构建物联网系统&#xff0c;实现前后端的交互。 实验内容&#xff1a; CS模式MQTT&#xff08;不带数据分析处理功能&#xff09; 实现智能设备与应用客户端的交…...

微前端框架 Qiankun 的应用及问题分析

一、Qiankun 的核心应用场景与优势 多技术栈共存与灵活集成 Qiankun 支持主应用与子应用使用不同技术栈&#xff08;如 Vue、React、Angular 等&#xff09;&#xff0c;通过 HTML Entry 方式接入子应用&#xff0c;无需深度改造子应用即可实现集成&#xff0c;降低了技术迁移成…...

设计模式-结构型模式-适配器模式

概述 适配器模式 : Adapter Pattern 是一种结构型设计模式. 作用 &#xff1a; 使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 实现思路 &#xff1a; 适配器模式通过将一个类的接口转换成客户希望的另外一个接口来实现这一点。 这里的“接口”指的是类所提供的…...

6. 机器人实现远程遥控(具身智能机器人套件)

1. 启动控制脚本 远程作到 Raspberry Pi 中&#xff0c;并运行以下脚本&#xff1a; conda activate lerobotpython lerobot/scripts/control_robot.py \--robot.typelekiwi \--control.typeremote_robot登录笔记本电脑上&#xff0c;同时运行以下脚本&#xff1a; conda ac…...

多模态知识图谱融合

1.Knowledge Graphs Meet Multi-Modal Learning: A Comprehensive Survey 1.1多模态实体对齐 1.2多模态实体链接 研究进展&#...

windows 平台如何点击网页上的url ,会打开远程桌面连接服务器

你可以使用自定义协议方案&#xff08;Protocol Scheme&#xff09;实现网页上点击URL后自动启动远程桌面连接&#xff08;mstsc&#xff09;&#xff0c;参考你提供的C代码思路&#xff0c;如下实现&#xff1a; 第一步&#xff1a;注册自定义协议 使用类似openmstsc://协议…...

基于Spark的热门动漫推荐数据分析与可视化系统的设计与实现(采用Python语言Django框架,Hadoop,spider爬虫等技术实现)

基于Hadoop的热门动漫推荐数据分析与可视化系统 基于Django的热门动漫推荐数据分析与可视化系统 1. 开发工具和实现技术 Pycharm, Python3.7&#xff0c;Django框架&#xff0c;Hadoop&#xff0c;Spark&#xff0c;Hive&#xff0c;spider爬虫&#xff08;爬取动漫之家的动…...

8. 机器人模型训练与评估(具身智能机器人套件)

1. 训练 使用python lerobot/scripts/train.py可以进行机器人控制模型训练&#xff0c;一般需要几个小时&#xff0c;可以在outputs/train/act_lekiwi_test/checkpoints查看锚点数据&#xff0c;下面为一组示例参数&#xff1a; python lerobot/scripts/train.py \--dataset.…...

计算机网络-服务器模型

一.服务器模型 1.支持多客户端访问 //单循环服务器 socket bind listen while(1) { accept while(1) { recv/send } } close 注&#xff1a;该模式remvform为阻塞态&#xff0c;服务器将等待接收数据 2..支持多客户端同时访问 (并发能力) socket…...

DeepSeek大模型 —— 全维度技术解析

DeepSeek大模型 —— 全维度技术解析 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;可以分享一下给大家。点击跳转到网站。 https://www.captainbed.cn/ccc 文章目录 DeepSeek大模型 —— 全维度技术解析一、模型架构全景解析1…...

OSPF网络类型:NBMA与P2MP

一、NBMA网络 NBMA网络的特点 连接方式&#xff1a; 支持多台设备连接到同一个网络段&#xff0c;但网络本身不支持广播或组播。典型例子&#xff1a;帧中继、ATM。 DR/BDR选举&#xff1a; 由于网络不支持广播&#xff0c;OSPF需要手动配置邻居。 仍然会选举DR&#xff08…...

大数定律详解

前言 本文隶属于专栏《机器学习数学通关指南》&#xff0c;该专栏为笔者原创&#xff0c;引用请注明来源&#xff0c;不足和错误之处请在评论区帮忙指出&#xff0c;谢谢&#xff01; 本专栏目录结构和参考文献请见《机器学习数学通关指南》 正文 &#x1f31f; 一、大数定律的…...

2025生物科技革命:AI驱动的基因编辑与合成生物学新纪元

一、基因编辑技术的精准化突破 第三代基因编辑工具CRISPR-Cas12f的研发成功&#xff0c;将编辑精度提升至0.1碱基对级别。中国科学院团队利用该技术在灵长类动物模型中修复遗传性视网膜病变基因&#xff0c;治愈率达到92%。对比传统CRISPR-Cas9技术&#xff0c;新型编辑器脱靶…...

【JavaEE】-- HTTP

1. HTTP是什么&#xff1f; HTTP&#xff08;全称为"超文本传输协议"&#xff09;是一种应用非常广泛的应用层协议&#xff0c;HTTP是基于TCP协议的一种应用层协议。 应用层协议&#xff1a;是计算机网络协议栈中最高层的协议&#xff0c;它定义了运行在不同主机上…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M&#xff1a;百万&#xff08;Million&#xff09; B&#xff1a;十亿&#xff08;Billion&#xff09; 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的&#xff0c;但是一个参数所表示多少字节不一定&#xff0c;需要看这个参数以什么…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡&#xff0c;轻快的音乐在耳边持续回荡&#xff0c;小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下&#xff0c;六一来了。 今天是六一儿童节&#xff0c;小蓝老师为了让大家在节…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

智能AI电话机器人系统的识别能力现状与发展水平

一、引言 随着人工智能技术的飞速发展&#xff0c;AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术&#xff0c;在客户服务、营销推广、信息查询等领域发挥着越来越重要…...

上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式

简介 在我的 QT/C 开发工作中&#xff0c;合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式&#xff1a;工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...

快速排序算法改进:随机快排-荷兰国旗划分详解

随机快速排序-荷兰国旗划分算法详解 一、基础知识回顾1.1 快速排序简介1.2 荷兰国旗问题 二、随机快排 - 荷兰国旗划分原理2.1 随机化枢轴选择2.2 荷兰国旗划分过程2.3 结合随机快排与荷兰国旗划分 三、代码实现3.1 Python实现3.2 Java实现3.3 C实现 四、性能分析4.1 时间复杂度…...

数据库——redis

一、Redis 介绍 1. 概述 Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的、高性能的内存键值数据库系统&#xff0c;具有以下核心特点&#xff1a; 内存存储架构&#xff1a;数据主要存储在内存中&#xff0c;提供微秒级的读写响应 多数据结构支持&…...

[拓扑优化] 1.概述

常见的拓扑优化方法有&#xff1a;均匀化法、变密度法、渐进结构优化法、水平集法、移动可变形组件法等。 常见的数值计算方法有&#xff1a;有限元法、有限差分法、边界元法、离散元法、无网格法、扩展有限元法、等几何分析等。 将上述数值计算方法与拓扑优化方法结合&#…...