本地终端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 的包管理器),这是最简单的方法。

  1. 打开你的 MacBook 终端(Applications -> Utilities -> Terminal)。
  2. 运行以下命令来安装 AWS CLI:
1
brew install awscli

  1. 如果 awscli 已经安装,可以使用以下命令来更新到最新版本:
1
brew upgrade awscli

方法二:使用 pip (Python 包管理器)

如果你安装了 Python 和 pip (通常 macOS 自带 Python,或者你可以通过 brew install python 安装最新版 Python)。

  1. 打开终端。
  2. 运行以下命令:
1
pip install awscli --upgrade --user

或者,如果你使用的是 Python 3:

1
pip3 install awscli --upgrade --user

**–user **选项会将 AWS CLI 安装在用户目录下,这样通常不需要管理员权限。安装完成后,确保 $HOME/.local/bin (Linux/macOS) 或 $HOME/Library/Python//bin(macOS) 目录已添加到你的系统 PATH 环境变量中。如果 aws 命令仍然不可用,你可能需要手动配置 PATH

验证安装:
安装完成后,运行以下命令来检查 AWS CLI 版本,确认安装成功:

1
aws --version

如果显示了版本号,说明安装成功。

第二步:配置 AWS CLI 凭证

安装完成后,你需要配置 AWS CLI,让它知道你的 AWS 身份(Access Key ID 和 Secret Access Key)以及默认的操作区域。

  1. 在终端中运行以下命令:
1
aws configure
  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 用户后,点击右上角,下拉点击**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
aws s3 ls
  • 列出 EC2 实例(在默认配置的区域):
1
aws ec2 describe-instances
  • 列出特定区域的 EC2 实例:
1
aws ec2 describe-instances --region us-west-2
  • 以表格格式显示 Lambda 函数:
1
aws lambda list-functions --output table

通过以上步骤,你就可以在 MacBook 的本地终端中方便高效地使用 AWS CLI 了,而无需每次都打开网页登录。

第四步:使用 AWS 链接 EKS

由于我用的是亚马逊的 EKS (Elastic Kubernetes Service) 服务,所以这里需要连接到 EKS 集群上去,使用以下命令进行连接

1
aws eks update-kubeconfig --region <your-region> --name <your-cluster-name>

连接成功后,就可以使用执行 kubernetes 相关的命令进行 Pods 容器查看了(下篇文章会再继续讲下终端 kubernetes 常用的一些命令以及如何使用软链接快速执行)

1
kubectl get pods -n <your-name-space>

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

出现以上错误表示 IAM 用户 需要 ****eks:DescribeCluster 权限。

  1. 登录 AWS Management Console
  2. 导航到 IAM 服务。
  3. 找到你的 IAM 用户(例如:SunnyZ@xxxx.com)。
  4. 在用户的 “Permissions” (权限) 标签页下,点击 “Add permissions” (添加权限)。
  5. 选择 “Attach existing policies directly” (直接附加现有策略)。
  6. 在搜索框中输入 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 权限。

本地终端AWS CLI连接AWS喂饭级教程!再也不用频繁开启AWS网页,出海开发必看!
http://example.com/2025/10/25/后端技术互联/本地终端AWS CLI连接AWS喂饭级教程!再也不用频繁开启AWS网页,出海开发必看!/
作者
技术Z先生
发布于
2025年10月25日
许可协议