一文讲透亚马逊云命令行使用
从配置开始
学习使用亚马逊云,自然免不了使用命令行工具,首先我们从下载和配置开始:
现在都使用V2版本的命令行工具,可以从官网下载最新的二进制安装包。1
首先是配置凭证:
aws configure
输入之后会提示输入AK/SK,region以及输入的格式信息,对于输出格式一般使用json,也可以选择text,table,yaml,yaml-stream ,比如在后边加上–output table。
AWS Access Key ID [None]:
AWS Secret Access Key [None]:
Default region name [None]:
Default output format [None]:
如果需要多个凭证共存,可以使用–profile 来指定别名,然后每次在后边加上–profile dev即可。
aws configure --profile dev
配置好了可以使用如下命令进行查看:
aws configure list --profile dev
Name Value Type Location
profile dev manual --profile
access_key ****************ABCC shared-credentials-file
secret_key ****************1234 shared-credentials-file
region cn-north-1 config-file ~/.aws/config
从结果可以看出来,我们的凭证文件都存在credentials和config文件中。这两个文件都存在Home的.aws文件夹中,其中凭证存在credentials, 配置信息存在config中。
cat ~/.aws/credentials [default]
aws_access_key_id = ****************ABCC
aws_secret_access_key = ****************ABCC
[dev]
aws_access_key_id = ****************ABCC
aws_secret_access_key = ****************ABCCcat ~/.aws/config [default]
region = cn-north-1
output = json
[profile dev]
region = cn-north-1
output = json
如果不想查看配置文件,那么也可以使用如下命令来查看当前使用的身份:
aws sts get-caller-identity --output
结果如下:
{"UserId": "ACBGGHLPJLJKJOKKHJ","Account": "your account id","Arn": "your user/role arn"
}
多个凭证调用顺序
除了使用AK/SK之外,亚逊云更加推荐使用IAM role的身份,这样的好处是可以每次获取短暂的临时凭证,能够极大减少凭证泄漏的风险。
我们可以把IAM Role绑定在EC2 实例上,这样EC2就可以使用这个Role的身份了。如果一台机器上同时配置了AK/SK和Role,那么就会遵循无如下的优先级:2
-
命令行选项: 覆盖任何其他位置的设置,例如 --region、–output 和 --profile 参数,比如在没有显示指定region的情况下,可以使用—region 指定区域,使用-- profile 指定配置文件中其他的身份。
-
环境变量:环境变量中读取aws_access_key_id/aws_secret_access_key/region,对于临时凭证来说,还需要aws_session_token。这里还有一个技巧,使用AWS_PROFILE来指定配置时候profile的名字也可以达到一样的效果。只是对于不同的编程语言来说,这个环境变量大小写的要求不尽相同。
-
AssumeRole:其他账户使用assume-role切换过来的角色,主要是为了跨账户操作,分为以下三种:
- AssumeRole:aws sts assume-role 切换的凭证
- AssumeRoleWithWebIdentity:OIDC 联合登陆
- AssumeRole with sso:使用IAM Identity Center 联合登陆
-
配置文件:
- ~/.aws/credentials文件: 一般这里存放AK/SK切换信息
- 自定义流程文件
- ~/.aws/config文件:一般存放region和format
-
实例凭证:
- 容器凭证:在同一机器的每个容器都有各自不同权限,优先级大于EC2实例凭证
- EC2 实例凭证:优先级最低,开发时候也最常使用
总结下来:命令行选项 > 环境变量 > 切换身份 > 配置文件 > 实例凭证
而配置文件和实例凭证恰恰是我们最常用的做法。
凭证切换
前面提到了AssumeRole,我们所知IAM Role是一种权限的集合,也常常用来实现跨账户访问以及联合登陆。前提需要配置好信任关系,一下信任关系表示该Role可以同时被指定IAM 身份和相同账户下的EC2访问。
{"Version": "2012-10-17","Statement": [{"Effect": "Allow","Principal": {"AWS": "your IAM ARN", "Service": "ec2.amazonaws.com.cn"},"Action": "sts:AssumeRole"}]
}
从用户切换到Role:
[profile prod]
role_arn = arn:aws:iam::123456789012:role/prod
source_profile = dev
这个命令的作用是使用dev身份切换到123456789012账户的prod,命令行会自动查找dev配置文件的凭证并且在后台使用 sts:AssumeRole 操作来切换到Prod身份。
从EC2 切换到Role
[profile prod]
role_arn = arn:aws:iam::123456789012:role/prod
credential_source = Ec2InstanceMetadata (是不是不关联也可以?)
这个一般用户AK/SK与IAM 共存的情况,这里credential_source可以是Ec2InstanceMetadata,Environment,EcsContainer。
我们先看来跨账户访问,配置如下:
[profile prod]
role_arn = arn:aws:iam::1234567890123:role/prod
source_profile = default
role_session_name = Session_Maria_Garcia
如果没有设置role_session_name,那么缺省值为userid:botocore-session-unix timestamps的形式,如下:
aws sts get-caller-identity --profile xu --region cn-north-1
{
“UserId”: “userid:botocore-session-unix timestamps”,
“Account”: “your account ”,
“Arn”: “arn:aws-cn:sts::your account:assumed-role/prod/botocore-session-unix timestamps”
}
反之,
{
“UserId”: “userid:botocore-session-Session_Maria_Garcia”,
“Account”: “your account ”,
“Arn”: “arn:aws-cn:sts::your account:assumed-role/prod/Session_Maria_Garcia”
}
代理相关
由于命令行是基于botocore进行开发的,那么可以安装Python方式来加代理。3
export HTTP_PROXY=http://10.15.20.25:1234
export HTTP_PROXY=http://proxy.example.com:1234
export HTTPS_PROXY=http://10.15.20.25:5678
export HTTPS_PROXY=http://proxy.example.com:5678
代理使用验证的方式如下:
export HTTP_PROXY=http://username:password@proxy.example.com:1234
export HTTPS_PROXY=http://username:password@proxy.example.com:5678
当然如果是全局代理,那么会影响命令行访问的内部通讯, 如有必要排除元数据地址:
export NO_PROXY=169.254.169.254
安装或更新到最新版本的 AWS CLI - AWS Command Line Interface ↩︎
配置 AWS CLI - AWS Command Line Interface ↩︎
使用 HTTP 代理 - AWS Command Line Interface ↩︎
相关文章:
一文讲透亚马逊云命令行使用
从配置开始 学习使用亚马逊云,自然免不了使用命令行工具,首先我们从下载和配置开始: 现在都使用V2版本的命令行工具,可以从官网下载最新的二进制安装包。1 首先是配置凭证: aws configure 输入之后会提示输入AK/SK…...
感染了后缀为.jayy勒索病毒如何应对?数据能够恢复吗?
导言: 在当今数字化的世界中,网络安全已经成为了每个人都需要关注的重要议题。而勒索病毒作为网络安全领域中的一大威胁,不断地演变和升级,给个人和组织带来了严重的损失和困扰。近期,一种名为.jayy的勒索病毒引起了广…...
一键快速彻底卸载:Mac软件轻松删除,瞬间释放磁盘空间
在接手使用前任员工遗留的Mac电脑时,经常面临的一个问题是内置了大量的非必要软件,这些软件不仅侵占了硬盘资源,还可能影响电脑整体性能。因此,迅速有效地删除这些冗余软件,以达成设备清爽、高效的初始化状态极其重要。…...
(React Hooks)前端八股文修炼Day9
一 对 React Hook 的理解,它的实现原理是什么 React Hooks是React 16.8版本中引入的一个特性,它允许你在不编写类组件的情况下,使用state以及其他的React特性。Hooks的出现主要是为了解决类组件的一些问题,如复杂组件难以理解、难…...
工厂方法模式:灵活的创建对象实例
在软件开发中,我们经常需要创建对象,但直接new一个实例可能会导致代码的耦合性增加,降低了代码的灵活性和可维护性。工厂方法模式(Factory Method Pattern)是一种创建型设计模式,它提供了一种创建对象的接口…...
vue-codeirror编辑器vue3中的使用
vue-codeirror编辑器vue3中的使用 <script lang"ts" setup> import { ref,reactive } from vue; import { Codemirror } from "vue-codemirror"; import { oneDark } from "codemirror/theme-one-dark"; import { json } from codemirror/…...
搭建python编译环境
目录 1.安装依赖包 2.安装失败进行换源 3. 更新系统 通过C 语言调用 Python 代码,需要先安装 libpython3 的 dev 依赖库(不同的 ubuntu 版本下, python 版本 可能会有差异, 比如ubuntu 22.04 里是 libpython3.10-dev )…...
微信小程序登录流程
文章目录 1. 用户触发登录操作2. 获取临时登录凭证3. 发送登录凭证到服务器4. 后端使用 code 获取 session_key 和 openid5. 后端保存 session_key 和 openid 返回token6. 前端保存登录态 1. 用户触发登录操作 用户在小程序内部点击登录按钮或进行需要登录权限的操作ÿ…...
FPGA + 图像处理(三)生成3x3像素矩阵
前言 生成NxN的像素矩阵是对图像进行各类滤波操作的基本前提,本文介绍一种通过bram生成3x3矩阵的方法。 程序 生成bram核 因为本文介绍的是基于bram生成的3x3像素矩阵,所以要先生成两个bram核,用于缓存前两行图像数据 在 IP catalog中选…...
Redis安装说明2
Redis安装说明 1.3.2.指定配置启动 如果要让Redis以后台方式启动,则必须修改Redis配置文件,就在我们之前解压的redis安装包下(/usr/local/src/redis-6.2.6),名字叫redis.conf: 我们先将这个配置文件备份一…...
ArcGIS10.8保姆式安装教程
ArcGIS 10.8是一款非常强大的地理信息系统软件,用于创建、管理、分析和可视化地理数据。以下是ArcGIS 10.8的详细安装教程: 确保系统满足安装要求 在开始安装之前,请确保您的计算机满足以下系统要求: 操作系统:Windo…...
设计原则、设计模式、设计模式项目实战
设计原则 封装、继承、多态、抽象分别可以解决哪些编程问题 封装:也叫做信息隐藏或数据保护访问。数据 通过暴露有限的访问接口,授权外部仅能通过类提供接口访问,对内的类private私有化属性,通过封装简化操作,让用户更…...
【Redis】解决List类型的消息可靠性问题
前言 平时做后端开发时,如果需要用到消息队列功能,但公司的IT环境又没有提供专业的队列软件(RabitMQ/Kafka…),那么在简单且要求不高的场景下,可以使用 Redis 的List数据类型来做消息队列。 但List类型有…...
挑战30天C++基本入门(DAY8--树)[part 3](速通哦~)
#上一章我们把搜索二叉树的知识给传授完毕,如果认真的看下去并且手打了几遍,基本上内部的逻辑还是可以理解的,那我们现在就截至继续学习树的一些重要知识啦~~ 树高怎么求呀?如果用上一次学的层次遍历来求树高,有点小题…...
在虚拟机尝试一次用启动盘重装系统
在虚拟机尝试一次用启动盘重装系统 没有自己重装过系统,也不敢对自己的笔记本下手,用虚拟机重装玩玩试试。 先设置成u盘启动 从boot中选择相应的创建的硬盘即可(刚刚突然发现图片不能上传了,经过乱七八糟的尝试后,开一…...
力扣347. 前 K 个高频元素
思路:记录元素出现的次数用map; 要维护前k个元素,不至于把所有元素都排序再取前k个,而是新建一个堆,用小根堆存放前k个最大的数。 为什么是小根堆?因为堆每次出数据时只出堆顶,每次把当前最小的…...
SCP 从Linux快速下载文件到Windows本地
需求:通过mobaxterm将大文件拖动到windows本地速度太慢。 环境:本地是Windows,安装了Git。 操作:进入文件夹内,鼠标右键,点击Git Bash here,然后输入命令即可。这样的话,其实自己本…...
plasmo内容UI组件层级过高导致页面展示错乱
我使用plasmo写了一个行内样式的UI组件,但是放到页面上之后,会和下拉组件出现层级错乱,看了一下样式,吓我一跳:层级竟然设置的如此之高 所以就需要将层级设置低一点: #plasmo-shadow-container {z-index: …...
《QT实用小工具·十一》Echart图表JS交互之仪表盘
1、概述 源码放在文章末尾 该项目为Echart图表JS交互之炫酷的仪表盘,可以用鼠标实时改变仪表盘的读数。 下面为demo演示: 该项目部分代码如下: #include "widget.h" #include "ui_widget.h" #include "qurl.h&q…...
深入浅出理解ArrayBuffer对象TypedArray和DataView视图
目录 举例理解 1. ArrayBuffer对象 2. TypedArray 3. DataView 总结 具体讲解 1. ArrayBuffer对象 2. TypedArray 3. DataView 注意事项 举例理解 先举个简单的例子理解ArrayBuffer对象TypedArray和DataView视图的概念和之间的关系 1. ArrayBuffer对象 想象一个场景…...
人工智能 - 服务于谁?
人工智能服务于谁? 人工智能服务于生存,其最终就是服务于战争(热战、技术战、经济战) 反正就是为了活着而战的决策。 既然人工智能所有结果,来自大数据的分挖掘(分析)也就是数据的应用&#x…...
软考高级架构师:嵌入式系统的内核架构
作者:明明如月学长, CSDN 博客专家,大厂高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《Effective Java》独家解析》专栏作者。 热门文章推荐&am…...
分布式锁实战
4、分布式锁 4.1 、基本原理和实现方式对比 分布式锁:满足分布式系统或集群模式下多进程可见并且互斥的锁。 分布式锁的核心思想就是让大家都使用同一把锁,只要大家使用的是同一把锁,那么我们就能锁住线程,不让线程进行&#x…...
【VMware Workstation】启动虚拟机报错“此主机支持 AMD-V,但 AMD-V 处于禁用状态”
问题出现步骤: 打开虚拟机: 然后报错: “此主机支持 AMD-V,但 AMD-V 处于禁用状态。 如果已在 BIOS/固件设置中禁用 AMD-V,或主机自更改此设置后从未重新启动,则 AMD-V 可能被禁用。 (1) 确认 BIOS/固件设…...
非关系型数据库(缓存数据库)redis的基础认知与安装
目录 一.关系型数据库和非关系型数据库 关系型数据库 非关系型数据库 关系数据库与非关系型数据库的区别 ①非关系数据 关系型数据库 非关系型数据库产生背景 数据存储流向 非关系型数据库 关系数据库 二.redis的简介 1.概念 2.Redis 具有以下几个优点: 3.Redi…...
Go语言如何处理文件
1.文件的重要性 文件不过是硬盘中的数据,看起来好像没什么了不起,但实际上,文件能够让程序员管理配置、存储程序的状态乃至从底层操作系统中读取数据。 UNIX型操作系统的一个重要特征是,将一切都视为文件。这意味着在操作系统看来,从键盘到打印机的所有东西都可像文件那样…...
Java基础知识总结(42)
(1)Java关键字的相关知识进行了复习 考试过程中“main”是主方法名,而不是Java关键字 (2)类型转换 当一个算术表达式中包含多个基本类型的值时,整个算术表达式的数据类型将发生自动提升,所有的b…...
C++ | Leetcode C++题解之第6题Z字形变换
题目: 题解: class Solution { public:string convert(string s, int numRows) {int n s.length(), r numRows;if (r 1 || r > n) {return s;}string ans;int t r * 2 - 2;for (int i 0; i < r; i) { // 枚举矩阵的行for (int j 0; j i &l…...
JavaEE——手把手教你实现简单的 servlet 项目
文章目录 一、什么是 Servlet二、创建一个简单的 Servlet 程序1. 创建项目2.引入依赖3. 创建目录4.编写代码5. 打包程序6. 部署7.验证整体过程总结 三、使用 Smart Tomcat 插件简化项目创建四、创建项目时可能遇到的几个问题。 一、什么是 Servlet Servlet 是一种实现 动态页面…...
X年后,ChatGPT会替代底层程序员吗?
能不能替代,真的很难说,因为机器换掉人,这其实是一个伦理问题。 其实说白了,任何行业在未来都会被AI或多或少的冲击到,因为ChatGPT做为一个可以持续提升智能的AI,在某些方面的智能程度超过人类并不是什么难…...
wordpress高亮插件/企业网站管理
F12查看加载不蒜子的js时404,是因为不蒜子统计的域名过期了,而js的引用就会有问题,果断在浏览器按下ctrlu查看博客网页源码!确实是域名的问题。 解决方法: 找到问题之后解决方法就好说了。 首先需要先找到NexT下引用…...
网站留言板怎么做php/江门seo网站推广
请到本人淘宝店http://15-1688.taobao.com购买同时还供应ubuntu镜像...
长春市长春网站建设/宁波核心关键词seo收费
《数值分析》实验报告 班级 学号 姓名实验室 设备编号 日期实验题目 编写高斯消去方法的MATLAB 主程序并用逆矩阵解方程组的方法验算编写列主元素消去方法的MATLAB 主程序并用逆矩阵解方程组的方法验算1、实验目的:通过编程实现高斯消去方法和列主元素消去方法&…...
传奇私服网站怎么做/在线生成个人网站免费
【编者按】本文作者为资深 Web 开发者 TJ VanToll, TJ 专注于移动端 Web 应用及其性能,是《jQuery UI 实践》 一书的作者。 本文系 OneAPM 工程师编译呈现,以下为正文的第二部分。点此阅读第一部分。 本地移动 apps 在2015年,出现了一种新的基…...
网站制作价格明细/宁波seo入门教程
概述与市面上常见的机器人虚拟仿真软件一样,安川机器人虚拟仿真软件MotoSimEG-VRC中也是可以制作外围设备模型的运动机构,只是它的制作方法有些特殊,是通过编写模型脚本实现的,并且能够实现的运动形式也比较少,但是常用…...
昆明seo网站建设费用/宣传推广方式有哪些
🔰 学习视频 🔰 尚硅谷SpringCloud框架开发教程(SpringCloudAlibaba微服务分布式架构丨Spring Cloud) 集数:15—27 🔰 学习格言 🔰 不在能知,乃在能行。 🔰 学习笔记 🔰 【Java】…...