本地终端AWS CLI连接AWS喂饭级教程!再也不用频繁开启AWS网页,出海开发必看!
最近一段时间在做海外业务开发,出于风险及安全考虑,客户要求全部服务都使用 AWS 服务及相关组件,所以本次微服务部署使用了 AWS 的 EKS (**Elastic Kubernetes Service)服务,组件使用了 Parameter Store(主要用于存储微服务里的配置,国内业务一般用的是 Nacos、Apollo、ZooKeeper 等)、Secrets Manager(用于密钥管理,存储 db 和 redis 等账号和密码**)和 S3(等效于阿里云的 OSS,用于存储文件、图片等)存储,因 Kubernetes 本身容器之间调度自带了 Service 负载均衡功能,所以不需要再使用注册中心了(国内业务微服务一般注册中心会使用:Nacos、Eureka 和 Zookeeper)。
今天这篇文章先和大家分享下如何通过本地 AWS CLI 连接亚马逊的 EKS (**Elastic Kubernetes Service**)服务,后面会再和大家陆续分享如何搭建一套标准的基于 AWS 的 kubernetes 的 Java 微服务!
其实 AWS 网页登录后自带了 CloudShell 页面,但是这玩意不是很好用,因防火墙的原因每次访问页面速度慢,而且经常稍微离开页面一会,就断开连接了!所以想要高效查看远程服务器日志本次终端使用 AWS CLI 连接是非常必要的!

在 MacBook 的本地终端直接使用 AWS CLI 是一个非常常见且高效的工作方式,可以让你无需登录 AWS Management Console 网页,直接通过命令行与 AWS 服务进行交互。这比通过网页界面操作要快得多,尤其适合自动化任务和脚本编写。
以下是详细的步骤:
第一步:安装 AWS CLI
在 macOS 上安装 AWS CLI 有几种推荐的方法:
方法一:使用 Homebrew (推荐)
如果你已经安装了 Homebrew (macOS 的包管理器),这是最简单的方法。
- 打开你的 MacBook 终端(Applications -> Utilities -> Terminal)。
- 运行以下命令来安装 AWS CLI:
1 | |

- 如果
awscli已经安装,可以使用以下命令来更新到最新版本:
1 | |
方法二:使用 pip (Python 包管理器)
如果你安装了 Python 和 pip (通常 macOS 自带 Python,或者你可以通过 brew install python 安装最新版 Python)。
- 打开终端。
- 运行以下命令:
1 | |
或者,如果你使用的是 Python 3:
1 | |
**–user **选项会将 AWS CLI 安装在用户目录下,这样通常不需要管理员权限。安装完成后,确保 $HOME/.local/bin (Linux/macOS) 或 $HOME/Library/Python/
验证安装:
安装完成后,运行以下命令来检查 AWS CLI 版本,确认安装成功:
1 | |

如果显示了版本号,说明安装成功。
第二步:配置 AWS CLI 凭证
安装完成后,你需要配置 AWS CLI,让它知道你的 AWS 身份(Access Key ID 和 Secret Access Key)以及默认的操作区域。
- 在终端中运行以下命令:
1 | |
- 系统会提示你输入以下信息:
- **AWS Access Key ID [None]**:
- 如何获取: 你需要一个 IAM (Identity and Access Management) 用户,并为其生成访问密钥。
- 登录到 AWS Management Console。
- 导航到 IAM 服务。
- 创建一个新的 IAM 用户(强烈建议不要使用你的 AWS 根账户凭证,而是创建一个具有所需最小权限的 IAM 用户)。
- 为该 IAM 用户生成访问密钥(Access Key ID 和 Secret Access Key)。
- 如何获取: 你需要一个 IAM (Identity and Access Management) 用户,并为其生成访问密钥。
- **AWS Access Key ID [None]**:
登录 IAM 用户后,点击右上角,下拉点击**Security credentials**

拉到最底下,点击 Create access key

选择 AccessKey 的使用场景,点击 Next

给 Key 的使用场景打个标签(这一步可选)

拷贝Access key 和Secret access key,存放到本地,点击 Done 完成

* **输入:** 将你生成的 Access Key ID 复制粘贴到这里,然后按 Enter。
- **<font style="color:#DF2A3F;">AWS Secret Access Key [None]</font>**:
* **输入:** 将你生成的 Secret Access Key 复制粘贴到这里,然后按 Enter。
- **<font style="color:#DF2A3F;">Default region name [None]</font>**:
* 这是你最常操作的 AWS 区域。例如:**<font style="color:#DF2A3F;">us-east-1 </font>**(美国东部 N.Virginia), **<font style="color:#DF2A3F;">us-west-2 </font>**(美国西部 Oregon), **<font style="color:#DF2A3F;">eu-central-1</font>**(欧洲中部 Frankfurt), **<font style="color:#DF2A3F;">ap-southeast-2</font>** (亚太新加坡) 等。

* **输入:** 输入你选择的区域代码,然后按 Enter。
- **<font style="color:#DF2A3F;">Default output format [None]:</font>**
* 指定命令输出的格式。常用选项有:
+ **<font style="color:#DF2A3F;">json</font>**(默认,最常用,机器可读)
+ **<font style="color:#DF2A3F;">text</font>**(纯文本)
+ **<font style="color:#DF2A3F;">table</font>**(表格,易于人类阅读)
* **输入:** 通常输入 **<font style="color:#DF2A3F;">json</font>**或 **<font style="color:#DF2A3F;">table</font>**,然后按 Enter。

配置文件的保存位置:
这些配置信息会被保存在你的用户主目录下的一个隐藏文件中:**/.aws/credentials **(用于存储 Access Key ID 和 Secret Access Key) 和 **/.aws/config** (用于存储默认区域和输出格式)。

安全提示:
- 永远不要使用你的 AWS 根账户凭证。 创建一个具有最小必要权限的 IAM 用户。
- 保护好你的 Secret Access Key。 **~/.aws/credentials **文件应保持私密。
- 使用命名配置集 (Named Profiles) 进行多账户管理: 如果你需要管理多个 AWS 账户,可以在 **aws configure**后,使用 **aws configure –profile
**来为其他账户创建独立的配置集。然后在使用命令时通过 **–profile **参数指定,例如 **aws s3 ls –profile work-account **。
第三步:开始使用 AWS CLI
配置完成后,你就可以在 MacBook 的终端中直接运行 AWS CLI 命令了。
示例:
- 列出 S3 存储桶:
1 | |
- 列出 EC2 实例(在默认配置的区域):
1 | |
- 列出特定区域的 EC2 实例:
1 | |
- 以表格格式显示 Lambda 函数:
1 | |
通过以上步骤,你就可以在 MacBook 的本地终端中方便高效地使用 AWS CLI 了,而无需每次都打开网页登录。
第四步:使用 AWS 链接 EKS
由于我用的是亚马逊的 EKS (Elastic Kubernetes Service) 服务,所以这里需要连接到 EKS 集群上去,使用以下命令进行连接
1 | |
连接成功后,就可以使用执行 kubernetes 相关的命令进行 Pods 容器查看了(下篇文章会再继续讲下终端 kubernetes 常用的一些命令以及如何使用软链接快速执行)
1 | |

注意:上面使用 AWS CLI 连接 EKS 需要开通 IAM 账号对应权限才能执行成功,否则会出现如下异常

出现以上错误表示 IAM 用户 需要 ****eks:DescribeCluster 权限。
- 登录 AWS Management Console。
- 导航到 IAM 服务。
- 找到你的 IAM 用户(例如:SunnyZ@xxxx.com)。
- 在用户的 “Permissions” (权限) 标签页下,点击 “Add permissions” (添加权限)。
- 选择 “Attach existing policies directly” (直接附加现有策略)。
- 在搜索框中输入 AmazonEKSClusterPolicy,勾选它,然后点击 “Add permissions”。
- AmazonEKSClusterPolicy提供了查看 EKS 集群信息(包括 eks:DescribeCluster)的权限,这是 aws eks update-kubeconfig命令所必需的。
- 更广泛的权限: 如果你还需要用 kubectl来管理 EKS 集群内的资源(如 Pods, Services 等),你的 IAM 用户(或 IAM Role,如果使用 worker nodes 或其他 AWS 服务)还需要被添加到 EKS 集群的 aws-auth ConfigMap 中,并且可能需要其他 EKS 相关的权限(如 eks:ListClusters, eks:DescribeNodegroup等)。但 update-kubeconfig本身主要依赖 IAM 权限。