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

Airflow对接MinIO S3时调用HeadObject操作报403 Forbidden错误

根因定位

该HeadObject 403报错由3处配置错误导致:

  • 端口误用:配置中填写的9001是MinIO Web控制台默认端口,MinIO S3兼容API的默认监听端口为9000,向控制台端口发送S3签名请求会直接被拦截返回403。
  • 连接URI格式错误:当前你将MinIO地址放在查询参数的host字段,@后的主机位错误填写为S3,Airflow无法正确解析服务端点,会默认向官方AWS S3地址发请求,签名与MinIO侧不匹配。
  • S3寻址方式不兼容:botocore SDK默认使用虚拟主机风格寻址(请求域名为<bucket>.<s3服务域名>),但MinIO默认仅支持路径风格寻址(请求路径为/<bucket>/<对象key>),寻址方式错误会导致请求路由异常、签名校验失败。
修复方案
  1. 替换.env文件中的OBJECT_STORE配置为以下内容,将其中的xxxx、xxxxx替换为你实际的MinIO Access Key和Secret Key:
OBJECT_STORE=s3://xxxx:xxxxx@minio1:9000/?endpoint_url=http%3A%2F%2Fminio1%3A9000&config_kwargs=%7B%22s3%22%3A%7B%22addressing_style%22%3A%22path%22%7D%7D

配置说明:URI中config_kwargs为URL编码后的JSON配置,原始值为{"s3": {"addressing_style": "path"}},作用是强制SDK使用路径风格访问MinIO,避免虚拟主机域名解析失败。

  1. 检查docker-compose网络配置,确认Airflow服务与MinIO服务在同一自定义Docker网络下,minio1:9000地址可从Airflow容器内部正常访问。
  2. 重启Airflow的webserver、scheduler、worker组件,确保新的环境变量被加载。
校验方式

服务重启后重新触发测试DAG即可正常读取对象。如果仍有异常,可登录Airflow Web控制台进入Admin > Connections页面查看aws_s3连接的自动解析结果,确认以下配置正确:

  • Host值为minio1,端口为9000
  • Extra配置中包含正确的endpoint_url和路径风格寻址参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 18:14:51