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

Cloud Composer通过私有IP连接Cloud SQL Postgres:权限问题排查

问题排查与解决方案

1. 核心判断:网络连通性无问题

连接测试正常说明Composer与Cloud SQL的私有网络连通性是通的,问题不在网络配置环节,重点排查权限、身份验证或Airflow执行上下文差异。

2. 数据库用户权限排查

  • 确认Airflow连接使用的数据库账号,拥有DAG执行所需的最小权限(如SELECT/INSERT/UPDATE等,取决于具体SQL操作)。建议创建专属服务账号而非用默认postgres账号:
    CREATE USER airflow_service WITH PASSWORD 'your_secure_password';
    GRANT SELECT, INSERT ON ALL TABLES IN SCHEMA public TO airflow_service;
    -- 为新创建的表自动授予权限
    ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT ON TABLES TO airflow_service;
    
  • 若手动设置过Cloud SQL的IP白名单,需确保Composer工作节点的子网IP段在允许列表内(测试连接正常则此环节大概率没问题)。

3. Airflow连接上下文差异排查

  • Airflow WebUI的测试连接用的是Webserver进程的上下文,而DAG运行用的是Worker节点的上下文:检查Worker节点是否存在AIRFLOW_CONN_*环境变量,这类变量优先级高于WebUI配置的连接,会覆盖你的设置。
  • 核对连接配置细节:确认连接类型为Postgres,主机是Cloud SQL私有IP、端口5432、数据库名、账号密码均与Cloud SQL端一致。

4. IAM数据库认证排查(若使用该方式)

  • 若未用密码认证而是IAM认证:
    1. 给Composer默认服务账号(格式为<环境名>@<项目ID>.iam.gserviceaccount.com)授予Cloud SQL Client角色;
    2. 在Cloud SQL绑定IAM账号到数据库用户:
      CREATE USER airflow_iam_user WITH LOGIN PASSWORD NULL;
      GRANT airflow_iam_user TO "composer-service-account@your-project.iam.gserviceaccount.com";
      
    3. Airflow连接的Extra字段需添加{"iam": true},且密码留空。

5. 防火墙规则二次确认

  • 检查Composer子网的出站规则:允许访问5432端口;
  • 检查Cloud SQL所在VPC的入站规则:允许来自Composer子网的5432端口流量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 03:03:29