boto3:用 Python 操作 AWS 资源的官方工具

boto3 在 GitHub 上已经拿到 9,829 Star 了。

这是 AWS 官方维护的 Python SDK,用来通过代码操作 AWS 云服务。S3 存储桶、EC2 实例、DynamoDB 表、Lambda 函数、SQS 队列,都可以通过几行 Python 来创建、查询和管理。名字取自亚马逊河里的淡水豚,作者是 Mitch Garnaat。目前由 AWS 官方团队持续维护。

1、 这玩意儿是干嘛的

用 Python 代码代替在 AWS 控制台里点点点。

控制台操作适合偶尔查个状态,但生产环境里没人愿意靠手工点击来管理几十上百个资源。创建 S3 桶、上传对象、启停 EC2 实例、查询 DynamoDB 表数据,这些高频操作如果用 boto3 写成脚本,可以批量跑、可以定时跑、可以嵌进自动化流程里。

最基础的用法很简单:

import boto3
s3 = boto3.resource('s3')
for bucket in s3.buckets.all():
    print(bucket.name)

三行代码列出账号下所有 S3 存储桶。项目提供了 resource 和 client 两种接口风格,resource 更面向对象,适合日常操作;client 更底层更完整,几乎所有 AWS 服务的 API 都有覆盖。两种风格可以在同一份代码里混用。

正文顶部截图

2、 为什么要用它

在 AWS 上干活的人,迟早会遇到重复操作的问题。十几个环境配一遍安全组规则,几十个桶改一遍生命周期策略,控制台点到崩溃。半夜出了故障,需要快速拉起一组资源做应急,手速再快也比不上脚本一分钟跑完。

boto3 把这些操作变成代码,好处是显见的:可以写进 CI/CD 流水线自动执行,可以放进版本控制随时回滚,可以跨账号跨区域复用。一个人写好,整个团队直接用。

覆盖范围也是核心优势。AWS 上新出的服务,官方 SDK 基本同步跟上。文档和 API 签名由 AWS 自己维护,不用依赖第三方库。项目从 2015 年发布到现在一直在更新,Python 版本支持也紧跟官方生命周期,Python 3.9 的支持已于 2026 年 4 月结束。

README区域截图

3、 安装和配置

从 PyPI 直接安装:

pip install boto3

然后配置访问凭证。最简单的方式是在 ~/.aws/credentials 里写:

[default]
aws_access_key_id = YOUR_KEY
aws_secret_access_key = YOUR_SECRET

区域配置放在 ~/.aws/config

[default]
region = us-east-1

部署到 EC2 或 Lambda 时,可以直接挂 IAM 角色,不用在代码里硬编码密钥。本地开发也支持环境变量、实例元数据等多种凭证来源。更复杂的场景还能用临时凭证和跨账号角色,安全性比把密钥写死进代码高得多。

4、 适合哪些人用

  • 用 Python 做 AWS 基础设施自动化、需要批量管理资源的运维工程师
  • 在 AWS 上搭数据处理管线、需要频繁读写 S3 或 DynamoDB 的开发者
  • 做 DevOps 流水线、想把资源部署和配置写进代码的团队
  • 写 AI 应用或后端服务、需要调用 AWS Bedrock 或其他托管服务的开发者

boto3 是 AWS Python 生态的核心工具。只要你在用 Python 对接 AWS,基本绕不开它。

其他托管服务的开发者

boto3 是 AWS Python 生态的核心工具。只要你在用 Python 对接 AWS,基本绕不开它。

更多推荐