如何将AWS Glue Job连接至隔离子网中的Aurora Serverless v2 PostgreSQL
Glue Job连接隔离子网Aurora Serverless v2 PostgreSQL方案
一、IAM角色访问数据库的说明
完全可以通过IAM角色实现Glue访问数据库,但仅rds:connect权限不够,必须完成整套IAM认证配置:
- 开启Aurora集群的IAM数据库认证:到RDS控制台找到目标集群,修改配置时勾选「启用IAM数据库认证」
- 创建关联IAM的数据库用户:
登录PostgreSQL执行:CREATE USER glue_iam_user WITH LOGIN; GRANT rds_iam TO glue_iam_user; - 给Glue执行角色添加核心权限:
除基础VPC访问权限外,必须添加rds-db:connect权限,示例政策:
注意替换占位符为实际信息,集群资源ID可在RDS集群详情页找到。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "rds-db:connect", "Resource": "arn:aws:rds-db:你的区域:你的账号ID:dbuser:你的集群资源ID/glue_iam_user" } ] }
二、连接隔离子网Aurora的完整实操步骤
前置注意(隔离子网特性)
Glue Job必须部署在包含目标隔离子网的VPC内,且该子网路由表不能有互联网网关(IGW),同时Aurora集群的子网组要包含相同的隔离子网。
1. 安全组配置
- 给Glue创建专用安全组(SG-Glue):
- 入站规则:添加自引用规则,允许自身所有端口访问(Glue组件间通信需要)
- 出站规则:允许到Aurora默认端口5432的流量,目标指定Aurora的安全组(SG-Aurora)
- 配置Aurora的安全组(SG-Aurora):
- 入站规则:添加允许SG-Glue访问5432端口的规则
2. 创建Glue VPC连接
在Glue控制台新建JDBC连接:
- 驱动选PostgreSQL,填写Aurora集群端点、端口、数据库名
- 网络部分:选择目标VPC、隔离子网、SG-Glue
- 认证方式:若用IAM,选「IAM角色认证」并指定Glue执行角色;用密码则直接填数据库账号密码
3. 配置Glue Job
- 编辑或创建Job时,勾选「使用VPC」,关联刚才创建的Glue连接
- 指定具备对应权限的Glue执行角色(需包含VPC访问、RDS IAM认证权限)
- 若为Spark Job,在作业参数里补充:
- 启用数据目录:
--enable-glue-datacatalog - IAM认证的JDBC URL要加参数:
jdbc:postgresql://集群端点:5432/数据库名?sslmode=require&iam=true
- 启用数据目录:
4. 常见问题排查(针对连接失败)
- 路由表检查:隔离子网无需IGW,但要确保同VPC内Glue和Aurora的路由可达(默认同VPC内路由正常,除非手动修改)
- 安全组验证:SG-Aurora必须放行SG-Glue的5432入站,SG-Glue放行到5432的出站
- IAM权限确认:Glue角色的
rds-db:connect资源ARN必须正确,数据库用户已授予rds_iam角色 - Aurora配置检查:确认IAM数据库认证已开启,否则IAM方式无法连接
内容的提问来源于stack exchange,提问作者aleksandralj
相关产品推荐
相关产品推荐

