我尝试设置AWS Glue作业并建立与Redshift的连接。
当我将连接类型设置为Redshift时,我收到错误:
"无法找到合适的安全组。将连接类型更改为 JDBC并重试添加连接。"
根据here in these forums所说的内容,我为角色AWSGlueServiceRoleDefault
的IAM帐户添加了权限:
然后我使用匹配的IAM角色AWSGlueServiceRoleDefault
设置作业:
我需要将Glue数据存储在Redshift DB中,所以我选择了JDBC然后添加了一个连接:
一旦我选择Redshift
,就会抱怨它无法找到合适的安全组。这是为什么?
答案 0 :(得分:7)
我在尝试将Glue与Amazon RDS(MySQL)连接时发现了同样的问题,并按照AWS Glue指南解决了这个问题 - > Setting Up a VPC to Connect to JDBC Data Stores
简而言之,您应该检查与RedShift群集关联的安全组是否允许自引用流量。
希望有效!
答案 1 :(得分:1)
使用JDBC连接代替连接到Redshift。只需确保相应的VPC定义了一个终点。
答案 2 :(得分:0)
您必须创建一个:
1)AWSGlueServiceRole
角色,并附加s3FullAccess,GlueServiceRole
和RedshiftFullAccess
策略。
2)检查是否具有vpc端点,如果没有,请创建一个VPC端点,并确保将子网添加到路由表中。 3)创建自引用安全组。
现在使用JDBC连接进行连接
jdbc:type://xxxx:port/databasename
类型为redshift/postgresql/etc
...
xxxx: server name
托管数据库的地方。