You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何导入AWS凭证使Python S3遍历脚本正常运行?

解决boto3连接S3的凭证导入问题

这个报错本质是boto3无法获取有效的AWS身份凭证,另外注意你报错里的区域写的是aws-east-2,这是无效的,正确的区域标识应该是us-east-2(俄亥俄区域),先修正区域问题,再来看几种靠谱的凭证导入方案:

方案一:使用AWS CLI配置(推荐生产/日常使用)

这是最安全且易维护的方式,boto3会自动读取CLI配置的凭证:

  1. 先安装AWS CLI(如果没装的话)
  2. 在终端运行命令:
    aws configure
    
  3. 按照提示依次输入:
    • AWS Access Key ID:你的AWS访问密钥ID
    • AWS Secret Access Key:你的AWS秘密访问密钥
    • Default region name:输入us-east-2(或者你实际使用的区域)
    • Default output format:可以输入json或直接留空

配置完成后,你的原脚本不需要做任何修改,直接运行就能正常获取存储桶列表了。

方案二:在脚本中直接指定凭证(仅测试用,不推荐生产)

这种方式虽然简单,但绝对不要在生产环境或公开代码中使用,因为会直接泄露敏感凭证:

import boto3
s3 = boto3.resource(
    's3',
    aws_access_key_id='你的Access Key ID',
    aws_secret_access_key='你的Secret Access Key',
    region_name='us-east-2'
)
for bucket in s3.buckets.all(): 
    print(bucket.name)

方案三:通过环境变量传递凭证

在运行脚本前,先设置环境变量(不同系统命令略有区别):

Linux/macOS终端:

export AWS_ACCESS_KEY_ID="你的Access Key ID"
export AWS_SECRET_ACCESS_KEY="你的Secret Access Key"
export AWS_DEFAULT_REGION="us-east-2"

设置完成后直接运行你的Python脚本即可。

Windows命令提示符:

set AWS_ACCESS_KEY_ID=你的Access Key ID
set AWS_SECRET_ACCESS_KEY=你的Secret Access Key
set AWS_DEFAULT_REGION=us-east-2

方案四:使用本地凭证文件

在你的用户目录下创建.aws文件夹(Windows是C:\Users\你的用户名\.aws,Linux/macOS是~/.aws),然后创建两个文件:

  1. credentials文件,内容如下:
    [default]
    aws_access_key_id = 你的Access Key ID
    aws_secret_access_key = 你的Secret Access Key
    
  2. config文件,内容如下:
    [default]
    region = us-east-2
    

创建完成后,boto3会自动读取这些文件的配置,原脚本无需修改。

最后再提醒下:确保你的AWS凭证拥有s3:ListAllMyBuckets权限,否则即使凭证正确,也会返回权限不足的错误哦。

内容的提问来源于stack exchange,提问作者Ganesh Shinde

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:20:09