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

一文讲透亚马逊云命令行使用

从配置开始

学习使用亚马逊云,自然免不了使用命令行工具,首先我们从下载和配置开始:

现在都使用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

  1. 命令行选项: 覆盖任何其他位置的设置,例如 --region、–output 和 --profile 参数,比如在没有显示指定region的情况下,可以使用—region 指定区域,使用-- profile 指定配置文件中其他的身份。

  2. 环境变量:环境变量中读取aws_access_key_id/aws_secret_access_key/region,对于临时凭证来说,还需要aws_session_token。这里还有一个技巧,使用AWS_PROFILE来指定配置时候profile的名字也可以达到一样的效果。只是对于不同的编程语言来说,这个环境变量大小写的要求不尽相同。

  3. AssumeRole:其他账户使用assume-role切换过来的角色,主要是为了跨账户操作,分为以下三种:

    1. AssumeRole:aws sts assume-role 切换的凭证
    2. AssumeRoleWithWebIdentity:OIDC 联合登陆
    3. AssumeRole with sso:使用IAM Identity Center 联合登陆
  4. 配置文件

    1. ~/.aws/credentials文件: 一般这里存放AK/SK切换信息
    2. 自定义流程文件
    3. ~/.aws/config文件:一般存放region和format
  5. 实例凭证

    1. 容器凭证:在同一机器的每个容器都有各自不同权限,优先级大于EC2实例凭证
    2. 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

  1. 安装或更新到最新版本的 AWS CLI - AWS Command Line Interface ↩︎

  2. 配置 AWS CLI - AWS Command Line Interface ↩︎

  3. 使用 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 代码&#xff0c;需要先安装 libpython3 的 dev 依赖库&#xff08;不同的 ubuntu 版本下&#xff0c; python 版本 可能会有差异&#xff0c; 比如ubuntu 22.04 里是 libpython3.10-dev &#xff09…...

微信小程序登录流程

文章目录 1. 用户触发登录操作2. 获取临时登录凭证3. 发送登录凭证到服务器4. 后端使用 code 获取 session_key 和 openid5. 后端保存 session_key 和 openid 返回token6. 前端保存登录态 1. 用户触发登录操作 用户在小程序内部点击登录按钮或进行需要登录权限的操作&#xff…...

FPGA + 图像处理(三)生成3x3像素矩阵

前言 生成NxN的像素矩阵是对图像进行各类滤波操作的基本前提&#xff0c;本文介绍一种通过bram生成3x3矩阵的方法。 程序 生成bram核 因为本文介绍的是基于bram生成的3x3像素矩阵&#xff0c;所以要先生成两个bram核&#xff0c;用于缓存前两行图像数据 在 IP catalog中选…...

Redis安装说明2

Redis安装说明 1.3.2.指定配置启动 如果要让Redis以后台方式启动&#xff0c;则必须修改Redis配置文件&#xff0c;就在我们之前解压的redis安装包下&#xff08;/usr/local/src/redis-6.2.6&#xff09;&#xff0c;名字叫redis.conf&#xff1a; 我们先将这个配置文件备份一…...

ArcGIS10.8保姆式安装教程

ArcGIS 10.8是一款非常强大的地理信息系统软件&#xff0c;用于创建、管理、分析和可视化地理数据。以下是ArcGIS 10.8的详细安装教程&#xff1a; 确保系统满足安装要求 在开始安装之前&#xff0c;请确保您的计算机满足以下系统要求&#xff1a; 操作系统&#xff1a;Windo…...

设计原则、设计模式、设计模式项目实战

设计原则 封装、继承、多态、抽象分别可以解决哪些编程问题 封装&#xff1a;也叫做信息隐藏或数据保护访问。数据 通过暴露有限的访问接口&#xff0c;授权外部仅能通过类提供接口访问&#xff0c;对内的类private私有化属性&#xff0c;通过封装简化操作&#xff0c;让用户更…...

【Redis】解决List类型的消息可靠性问题

前言 平时做后端开发时&#xff0c;如果需要用到消息队列功能&#xff0c;但公司的IT环境又没有提供专业的队列软件&#xff08;RabitMQ/Kafka…&#xff09;&#xff0c;那么在简单且要求不高的场景下&#xff0c;可以使用 Redis 的List数据类型来做消息队列。 但List类型有…...

挑战30天C++基本入门(DAY8--树)[part 3](速通哦~)

#上一章我们把搜索二叉树的知识给传授完毕&#xff0c;如果认真的看下去并且手打了几遍&#xff0c;基本上内部的逻辑还是可以理解的&#xff0c;那我们现在就截至继续学习树的一些重要知识啦~~ 树高怎么求呀&#xff1f;如果用上一次学的层次遍历来求树高&#xff0c;有点小题…...

在虚拟机尝试一次用启动盘重装系统

在虚拟机尝试一次用启动盘重装系统 没有自己重装过系统&#xff0c;也不敢对自己的笔记本下手&#xff0c;用虚拟机重装玩玩试试。 先设置成u盘启动 从boot中选择相应的创建的硬盘即可&#xff08;刚刚突然发现图片不能上传了&#xff0c;经过乱七八糟的尝试后&#xff0c;开一…...

力扣347. 前 K 个高频元素

思路&#xff1a;记录元素出现的次数用map&#xff1b; 要维护前k个元素&#xff0c;不至于把所有元素都排序再取前k个&#xff0c;而是新建一个堆&#xff0c;用小根堆存放前k个最大的数。 为什么是小根堆&#xff1f;因为堆每次出数据时只出堆顶&#xff0c;每次把当前最小的…...

SCP 从Linux快速下载文件到Windows本地

需求&#xff1a;通过mobaxterm将大文件拖动到windows本地速度太慢。 环境&#xff1a;本地是Windows&#xff0c;安装了Git。 操作&#xff1a;进入文件夹内&#xff0c;鼠标右键&#xff0c;点击Git Bash here&#xff0c;然后输入命令即可。这样的话&#xff0c;其实自己本…...

plasmo内容UI组件层级过高导致页面展示错乱

我使用plasmo写了一个行内样式的UI组件&#xff0c;但是放到页面上之后&#xff0c;会和下拉组件出现层级错乱&#xff0c;看了一下样式&#xff0c;吓我一跳&#xff1a;层级竟然设置的如此之高 所以就需要将层级设置低一点&#xff1a; #plasmo-shadow-container {z-index: …...

《QT实用小工具·十一》Echart图表JS交互之仪表盘

1、概述 源码放在文章末尾 该项目为Echart图表JS交互之炫酷的仪表盘&#xff0c;可以用鼠标实时改变仪表盘的读数。 下面为demo演示&#xff1a; 该项目部分代码如下&#xff1a; #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对象 想象一个场景…...

Pandoc:5步掌握全能文档转换的极简工作流

Pandoc&#xff1a;5步掌握全能文档转换的极简工作流 【免费下载链接】pandoc Universal markup converter 项目地址: https://gitcode.com/gh_mirrors/pa/pandoc 价值定位&#xff1a;为什么每个开发者都需要一款"格式翻译官" 当你需要将Markdown笔记转换为…...

Spring Boot 3.2项目实战:5分钟搞定Tomcat虚拟线程配置,让你的接口吞吐量翻倍

Spring Boot 3.2虚拟线程实战&#xff1a;Tomcat配置优化与性能飞跃指南 当你的电商大促接口突然面临每秒上万请求&#xff0c;或者文件上传服务在高并发下响应缓慢时&#xff0c;传统线程池往往成为性能瓶颈。Spring Boot 3.2与Java 21的虚拟线程组合&#xff0c;正在重新定义…...

5分钟快速上手:Rufus打造专业级USB启动盘的终极指南

5分钟快速上手&#xff1a;Rufus打造专业级USB启动盘的终极指南 【免费下载链接】rufus The Reliable USB Formatting Utility 项目地址: https://gitcode.com/GitHub_Trending/ru/rufus 还在为系统安装、数据恢复或系统维护而烦恼吗&#xff1f;Rufus&#xff08;可靠U…...

SELF-REFINE in Action: Enhancing LLM Outputs Through Iterative Self-Feedback

1. 什么是SELF-REFINE&#xff1f;为什么LLM需要自我迭代&#xff1f; 想象一下你正在写一封重要邮件。第一稿可能直接了当但缺乏礼貌&#xff0c;经过几次修改后&#xff0c;措辞变得更加得体。这就是人类通过自我反馈不断完善的过程。现在&#xff0c;大型语言模型&#xff0…...

从零上手Neo4j Desktop:CSV数据导入与核心Cypher操作指南

1. Neo4j Desktop环境准备与数据导入 第一次打开Neo4j Desktop时可能会被它的界面搞得有点懵&#xff0c;别担心&#xff0c;我刚开始用的时候也这样。这个工具把数据库管理、浏览器界面和插件都集成在了一起&#xff0c;特别适合新手快速上手。安装过程我就不赘述了&#xff0…...

3步在Mac上免费运行Stable Diffusion的终极指南

3步在Mac上免费运行Stable Diffusion的终极指南 【免费下载链接】MochiDiffusion Run Stable Diffusion on Mac natively 项目地址: https://gitcode.com/gh_mirrors/mo/MochiDiffusion 还在为寻找合适的Mac AI绘画工具而烦恼吗&#xff1f;想要完全离线生成惊艳的AI艺术…...

美国是如何对GEO进行监管的?

一、GEO投毒并不是中国独有 2026年央视“315”晚会首次把“GEO投毒”这一灰色产业链推到台前。所谓“投毒”&#xff0c;说白了&#xff0c;就是有人通过批量制造虚假信息、污染训练或检索数据&#xff0c;去干扰AI的推荐和回答结果&#xff0c;最后把一些虚假、低质甚至根本不…...

告别PS!用WPS宏批量改图片尺寸的隐藏技巧(附JSA API避坑指南)

告别PS&#xff01;用WPS宏批量改图片尺寸的隐藏技巧&#xff08;附JSA API避坑指南&#xff09; 在电商运营、教育培训等日常工作中&#xff0c;批量处理图片是刚需。传统做法要么依赖Photoshop等专业软件&#xff08;学习成本高&#xff09;&#xff0c;要么手动逐个调整&…...

终极风扇控制指南:如何用FanControl 264版彻底告别电脑噪音烦恼

终极风扇控制指南&#xff1a;如何用FanControl 264版彻底告别电脑噪音烦恼 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Tr…...

Phi-4-Reasoning-Vision行业落地:工业质检图像逻辑推理与缺陷归因分析

Phi-4-Reasoning-Vision行业落地&#xff1a;工业质检图像逻辑推理与缺陷归因分析 1. 工业质检的智能化升级需求 在现代制造业中&#xff0c;产品质量检测一直是保证产品一致性和可靠性的关键环节。传统工业质检主要依赖人工目检或简单的图像识别算法&#xff0c;存在效率低、…...