news 2026/9/24 13:04:02

Windows 10下AWS CLI安装配置全攻略(含IAM用户创建与密钥管理)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Windows 10下AWS CLI安装配置全攻略(含IAM用户创建与密钥管理)

Windows 10下AWS CLI安装配置全攻略(含IAM用户创建与密钥管理)

最近在帮几个刚接触云服务的朋友搭建本地开发环境,发现不少人在Windows 10上配置AWS命令行工具时,总会卡在权限和密钥管理这一步。AWS CLI确实是管理云端资源的利器,但它的安装和初始配置,尤其是涉及IAM用户和访问密钥的部分,如果理解不到位,要么配置失败,要么会埋下安全隐患。这篇文章,我就结合自己多次在Windows平台部署的经验,从头到尾梳理一遍,不仅告诉你每一步怎么做,更会解释清楚背后的逻辑,让你真正掌握这套工具链。

1. 环境准备与AWS CLI安装

在Windows 10上开始使用AWS服务,第一步自然是把命令行工具请到你的电脑里。AWS CLI是一个用Python编写的工具,它提供了直接与AWS服务API交互的统一接口。对于开发者来说,这意味着你可以用脚本自动化几乎所有在AWS控制台上能完成的操作,从启动EC2实例到管理S3存储桶,效率提升不是一星半点。

目前,AWS官方为Windows用户提供了两种主要的安装方式:使用MSI安装包,或者通过Python的包管理工具pip安装。对于绝大多数用户,尤其是新手,我强烈推荐使用MSI安装包。它是最简单、最“傻瓜式”的方法,会自动处理路径配置和依赖问题,几乎不会出错。

安装步骤简述如下:

  1. 访问官方下载页面:打开浏览器,前往AWS命令行界面官方下载页。务必认准aws.amazon.com/cli这个域名,避免从第三方渠道下载,确保安全。

  2. 选择Windows安装包:在页面上找到针对Windows系统的MSI安装程序链接,通常会有64-bit32-bit两个版本。如果你的系统是64位的Windows 10(绝大多数都是),就选择64位版本下载。

  3. 运行安装向导:双击下载好的.msi文件,按照提示一步步进行。安装过程基本就是一路点击“Next”,你可以选择为所有用户安装还是仅为当前用户安装。

  4. 验证安装:安装完成后,需要确认CLI是否已正确加入系统路径。打开命令提示符(CMD)或者PowerShell,输入以下命令并回车:

    aws --version

    如果安装成功,你会看到类似下面的输出,其中包含了CLI版本、Python版本以及你的系统信息:

    aws-cli/2.15.44 Python/3.11.8 Windows/10 exe/AMD64 prompt/off

注意:如果系统提示“aws 不是内部或外部命令”,说明安装路径可能没有被自动添加到系统环境变量PATH中。这时你可以尝试重新启动终端,或者手动将AWS CLI的安装目录(通常是C:\Program Files\Amazon\AWSCLIV2\)添加到用户环境变量中。

看到版本信息,恭喜你,AWS CLI已经成功入驻你的Windows系统。但这仅仅是拿到了工具,要安全、有效地使用它,我们还需要获得进入AWS账户的“钥匙”和“权限”,这就是接下来要重点讲的IAM部分。

2. 理解IAM:用户、组与权限策略

在配置aws configure之前,我们必须先解决身份和权限的问题。AWS Identity and Access Management (IAM) 是AWS安全体系的基石。直接使用根账户(即注册AWS时用的邮箱和密码)来配置CLI是极其危险的做法。根账户拥有账户的完全控制权,一旦其访问密钥泄露,你的整个AWS账户将面临被清空的风险。因此,最佳实践永远是:为每一个需要访问AWS的人或程序,创建独立的IAM用户,并仅授予其完成任务所必需的最小权限。

这个过程主要涉及三个核心概念:

  • IAM用户:代表一个具体的人或应用程序,是进行身份验证的实体。我们将为这个用户创建专属的访问密钥(Access Key),用于CLI的配置。
  • IAM组:一个权限的集合。我们可以将具有相同权限需求的多个用户放入同一个组,然后通过给组附加策略来统一管理权限,这比给每个用户单独分配策略要高效得多。
  • IAM策略:以JSON格式定义的文档,明确规定允许或拒绝哪些用户/组对哪些AWS资源执行哪些操作。策略是权限的载体。

为了清晰对比,我将这三个概念的核心作用整理如下:

概念角色主要作用类比
IAM用户执行者代表一个人或服务,拥有独立的登录凭证(密码或访问密钥)。公司里的一个具体员工,有自己的工牌。
IAM组权限容器将多个用户组织在一起,方便批量分配相同的权限集。公司的“开发部”或“运维部”,部门成员享有相同的职权范围。
IAM策略权限规则定义具体的操作(如s3:ListBucket)、资源(如某个S3桶)和生效条件。公司的规章制度或岗位说明书,明确规定员工可以做什么、不能做什么。

理解了这些,我们的操作路径就清晰了:先创建一个定义了权限范围的组,然后创建一个用户并将其加入该组,最后为用户生成用于编程访问的密钥。接下来,我们就进入AWS控制台,一步步完成这些设置。

3. 实战:在AWS控制台创建IAM用户与密钥

现在,我们登录AWS管理控制台,开始实操。请全程在us-east-1(弗吉尼亚北部)或其他你常用的区域进行操作,IAM服务是全球性的,不受区域限制。

3.1 创建用户组并分配权限

首先,我们创建一个组,并赋予它一个基础的权限策略。对于刚开始学习和进行日常管理的用户,我建议从一个权限较高的策略开始,例如AdministratorAccess,以便能无障碍地体验所有服务。但在生产环境中,务必遵循最小权限原则

  1. 在控制台顶部的服务搜索框中输入“IAM”并进入。
  2. 在左侧导航栏,点击“用户组”,然后点击蓝色的“创建组”按钮。
  3. 填写组名:输入一个具有描述性的名称,例如CLI-Administrators
  4. 附加权限策略:在权限策略列表的搜索框中,输入AdministratorAccess。勾选搜索结果中出现的“AdministratorAccess”策略(这是一个AWS托管策略,提供了对账户的完全管理权限,等同于根用户权限,但仅限于该用户或组)。
  5. 点击“创建组”完成组的创建。

提示:对于更具体的场景,你可以搜索并附加更细粒度的策略,如AmazonS3FullAccess(仅管理S3)、AmazonEC2FullAccess(仅管理EC2)等。将多个策略附加到一个组,其权限是叠加的。

3.2 创建IAM用户并加入组

组创建好后,我们来创建具体的用户。

  1. 在IAM左侧导航栏,点击“用户”,然后点击“创建用户”。
  2. 指定用户详细信息
    • 用户名称:输入一个名字,例如cli-admin-user
    • 选择凭证类型:这里我们只勾选“访问密钥 - 编程访问”。因为我们是为CLI配置创建用户,不需要AWS控制台登录密码。
  3. 点击“下一步:权限”。
  4. 设置权限:选择“将用户添加到组”。在列表中找到并勾选我们刚刚创建的CLI-Administrators组。
  5. 继续点击“下一步”,直到“审核”页面,确认信息无误后,点击“创建用户”。

3.3 生成并安全保存访问密钥

这是最关键也最需要谨慎的一步。访问密钥一旦创建,其“秘密访问密钥”只在此刻显示一次,关闭页面后将无法再次查看。你必须立即妥善保存。

  1. 用户创建成功后,页面会直接显示成功消息,并包含一个“下载.csv文件”的选项。请务必立即点击下载。这个CSV文件包含了:
    • Access key ID
    • Secret access key
  2. 将这个CSV文件保存到一个绝对安全的位置,例如使用密码管理器加密存储。切勿将此文件通过邮件发送、上传到公开的代码仓库或存储在未加密的共享磁盘中。
  3. 你也可以手动复制这两个密钥值,但同样要确保粘贴到安全的地方。

注意:如果错过了下载,或者密钥不慎泄露,你唯一的选择就是立即进入该IAM用户的“安全凭证”标签页,将旧的访问密钥禁用删除,然后创建一对新的密钥。一个IAM用户最多可以同时拥有两对访问密钥。

至此,我们在云端已经准备好了具备权限的身份。接下来,我们回到本地的Windows命令行,用这对密钥来“激活”刚刚安装好的AWS CLI。

4. 配置、验证与高级管理

拿到密钥后,配置过程本身非常简单,但理解配置背后的机制和掌握验证、管理技巧,才能让你用得更踏实。

4.1 运行 aws configure 进行基础配置

打开你的命令提示符或PowerShell,输入以下命令:

aws configure

系统会交互式地提示你输入四项信息:

  1. AWS Access Key ID: 粘贴你刚才保存的Access key ID,它通常以AKIA开头。
  2. AWS Secret Access Key: 粘贴对应的Secret access key。输入时不会有任何显示(星号也没有),这是正常的,直接粘贴后回车即可。
  3. Default region name: 输入默认区域代码,例如us-east-1(弗吉尼亚北部)、ap-southeast-1(新加坡)或cn-north-1(北京)。这决定了你后续命令默认操作哪个区域的资源。
  4. Default output format: 选择默认的输出格式。我推荐json,因为它结构清晰,易于被其他程序解析。其他选项还有text(表格)、yamlyaml-stream等。

配置完成后,AWS CLI会在你的用户目录下(C:\Users\<你的用户名>\.aws\)自动创建两个隐藏的文本文件:

  • credentials: 明文存储你的访问密钥(Access Key ID和Secret Access Key)。请务必保护好这个目录。
  • config: 存储区域和输出格式等配置信息。

4.2 验证配置是否生效

配置好了,怎么知道是否成功呢?最好的方法就是执行一个简单的、只读的API调用进行测试。这里推荐两个命令:

测试S3服务(列出存储桶)

aws s3 ls

如果配置正确且用户有S3的读取权限,这个命令会列出你账户在该默认区域下的所有S3存储桶。如果没有任何存储桶,它会安静地返回,没有错误即表示权限和连接正常。

测试EC2服务(描述实例)

aws ec2 describe-instances

这个命令会以JSON格式返回该区域下所有EC2实例的详细信息。如果当前没有运行任何实例,返回的"Reservations"数组会是空的,这同样是正常的。

如果出现类似“Unable to locate credentials”“An error occurred (UnauthorizedOperation)”的错误,请依次检查:

  1. 密钥是否输入错误(特别是Secret Key)。
  2. 对应用户是否确实附加了相应的权限策略(例如S3的读取权限)。
  3. 网络连接是否正常。

4.3 多配置集与密钥轮换管理

在实际工作中,你很可能需要管理多个AWS账户(如开发、测试、生产),或者在同一个账户下使用不同权限的用户。AWS CLI支持多配置集,这非常方便。

你可以在~/.aws/config文件中定义多个配置集。例如:

[default] region = us-east-1 output = json [profile dev-admin] region = us-west-2 output = json [profile prod-readonly] region = eu-central-1 output = table

对应的~/.aws/credentials文件则为每个配置集存储不同的密钥:

[default] aws_access_key_id = AKIA... aws_secret_access_key = ... [dev-admin] aws_access_key_id = AKIA... aws_secret_access_key = ... [prod-readonly] aws_access_key_id = AKIA... aws_secret_access_key = ...

使用时,通过--profile参数指定配置集:

aws s3 ls --profile dev-admin aws ec2 describe-instances --profile prod-readonly

关于密钥安全,一个重要的最佳实践是定期轮换访问密钥。我建议每90天执行一次以下操作:

  1. 为IAM用户创建第二对访问密钥。
  2. 更新所有使用旧密钥的应用程序和脚本,改用新密钥。
  3. 将旧的访问密钥设置为“非活动”状态,观察一段时间确保所有服务运行正常。
  4. 最后,删除旧的访问密钥。

这个习惯能极大降低因密钥长期暴露而带来的潜在风险。在Windows上,你只需要用新的密钥重新运行aws configure --profile <profile-name>即可更新指定配置集的凭证。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/20 10:44:29

从原理到代码:用Python手写DWA算法实现扫地机器人路径规划

从零手写DWA&#xff1a;用Python为扫地机器人打造一个“聪明”的导航大脑 想象一下&#xff0c;你家里的扫地机器人正慢悠悠地穿过客厅&#xff0c;突然&#xff0c;一只拖鞋、一个玩具车或者一根充电线出现在它的行进路线上。一个“笨拙”的机器人可能会径直撞上去&#xff0…

作者头像 李华
网站建设 2026/9/23 19:47:23

DDR3信号完整性实战:ODT功能详解与PCB设计避坑指南

DDR3信号完整性实战&#xff1a;ODT功能详解与PCB设计避坑指南 在高速数字电路设计中&#xff0c;DDR3内存接口的信号完整性&#xff08;SI&#xff09;问题&#xff0c;往往是硬件工程师通往稳定量产路上最棘手的“拦路虎”。信号反射、串扰、时序错乱&#xff0c;这些现象在数…

作者头像 李华
网站建设 2026/9/17 1:55:16

Qwen3-ASR语音识别快速体验:5分钟部署,轻松测试多语言识别

Qwen3-ASR语音识别快速体验&#xff1a;5分钟部署&#xff0c;轻松测试多语言识别 1. 引言&#xff1a;你的私人多语言翻译官 想象一下&#xff0c;你有一段包含普通话、粤语和英语的会议录音&#xff0c;或者一段带有浓重四川口音的采访视频&#xff0c;想把它们快速转成文字…

作者头像 李华