Docker中运行Airflow时无法定位AWS凭证问题求助
问题排查与解决
未指定AWS配置文件:boto3默认仅读取
[default]配置段,你的凭证存储在[some_profile]中,需显式指定配置文件:sts_client = boto3.client('sts', profile_name='some_profile')也可在Airflow容器环境中设置环境变量
AWS_PROFILE=some_profile,让boto3自动加载该配置。环境变量覆盖:检查容器内是否存在
AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY这类环境变量,若为空或无效,会覆盖配置文件中的凭证。可在容器内执行echo $AWS_ACCESS_KEY_ID验证。文件权限与归属:确认容器内
/usr/local/airflow/.aws目录及文件的所有者为Airflow运行用户(通常是airflow用户)。执行docker exec <你的worker容器名> ls -l /usr/local/airflow/.aws查看,若权限不符,需调整本地文件权限或在容器内修改归属。boto3加载顺序冲突:boto3优先读取环境变量,其次是IAM角色(云容器服务场景),最后才是本地配置文件。若Airflow部署在ECS/EKS等云容器服务中,需确认是否存在自动挂载的IAM角色干扰凭证加载。
配置文件格式错误:检查容器内
credentials文件格式,确保[some_profile]下的aws_access_key_id和aws_secret_access_key键名无拼写错误,且无多余空格或语法问题。
内容的提问来源于stack exchange,提问作者processadd
相关产品推荐
相关产品推荐

