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

使用Boto3读取AWS凭证时遭遇NameError错误求助

修复Boto3读取AWS凭证时的NameError: name 'config' is not defined错误

嘿,这个错误原因很直白——你代码里直接调用了config.get(),但config这个变量根本没被定义和初始化,Python自然不知道它是什么!咱们来一步步解决这个问题,同时给你几个符合AWS最佳实践的凭证读取方案:

方案1:用configparser读取本地配置文件

如果你是打算从配置文件里读取凭证,得先初始化configparser对象并加载配置文件才行:

首先创建一个config.ini配置文件(和你的Python脚本同目录):

[aws]
aws_access_key_id = 你的AWS访问密钥ID
aws_secret_access_key = 你的AWS秘密访问密钥

然后修改你的Python代码:

import boto3
import configparser  # 别忘了导入这个库

# 初始化configparser并加载配置文件
config = configparser.ConfigParser()
config.read('config.ini')

# 从[aws]区块读取凭证
aws_key = config.get('aws', 'aws_access_key_id')
aws_sec = config.get('aws', 'aws_secret_access_key')

client = boto3.client(
    's3',
    aws_access_key_id=aws_key,
    aws_secret_access_key=aws_sec
)

方案2:使用环境变量(推荐)

这种方式不需要在代码里硬编码或读取配置文件,Boto3会自动识别环境变量里的凭证:

Windows系统临时设置(命令行)

set AWS_ACCESS_KEY_ID=你的AWS访问密钥ID
set AWS_SECRET_ACCESS_KEY=你的AWS秘密访问密钥

或者在Python代码里临时设置

import os
import boto3

# 设置环境变量(仅当前脚本运行时生效)
os.environ['AWS_ACCESS_KEY_ID'] = '你的AWS访问密钥ID'
os.environ['AWS_SECRET_ACCESS_KEY'] = '你的AWS秘密访问密钥'

# Boto3会自动读取环境变量,无需手动传入参数
client = boto3.client('s3')

方案3:使用AWS默认凭证链(生产环境首选)

这是AWS官方最推荐的方式,你只需要在本地配置凭证文件,Boto3会自动读取:

在Windows系统中,创建C:\Users\<你的用户名>\.aws\credentials文件,内容如下:

[default]
aws_access_key_id = 你的AWS访问密钥ID
aws_secret_access_key = 你的AWS秘密访问密钥

然后代码可以简化成这样:

import boto3

# Boto3会自动从默认凭证链读取凭证,无需额外配置
client = boto3.client('s3')

小提醒

尽量避免在代码里硬编码凭证,也不要把配置文件提交到版本控制系统里,这会带来安全风险。环境变量或默认凭证链的方式更安全可靠哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:18:19