红移连接的粘合作业:“无法找到合适的安全组”
Posted
技术标签:
【中文标题】红移连接的粘合作业:“无法找到合适的安全组”【英文标题】:glue job for redshift connection: "Unable to find suitable security group" 【发布时间】:2017-10-02 18:30:23 【问题描述】:我正在尝试设置 AWS Glue 作业并连接到 Redshift。
将连接类型设置为 Redshift 时出现错误:
“无法找到合适的安全组。将连接类型更改为 JDBC 并重试添加您的连接。”
按照here in these forums 所说的内容,我为角色AWSGlueServiceRoleDefault
向我的IAM 帐户添加了权限:
然后我使用匹配的 IAM 角色 AWSGlueServiceRoleDefault
设置作业:
我需要将 Glue 数据存储在 Redshift DB 中,所以我选择了 JDBC 然后添加了一个连接:
我一选择Redshift
,它就抱怨找不到合适的安全组。这是为什么呢?
【问题讨论】:
【参考方案1】:我在尝试将 Glue 与 Amazon RDS (mysql) 连接时发现了同样的问题,并按照 AWS Glue 指南解决了这个问题 -> Setting Up a VPC to Connect to JDBC Data Stores。
简而言之,您应该检查与您的 RedShift 集群关联的安全组是否允许自引用流量。
-
转到 RedShift 控制台并选择 集群
查看集群属性部分,了解与集群关联的安全组的 ID(例如 sg-957be3ef)。
单击安全组名称以跳转到 EC2 控制台 -> 安全组部分。选择组并修改入站和出站规则,添加自引用规则以允许 AWS Glue 组件进行通信。
入站规则:选择 Type=All TCP,保留默认值并在 Source 字段中输入安全组(即本例中的 sg-957be3ef)。
出站规则:与入站规则相同。
希望有效!
【讨论】:
设置自引用规则后,我在 SSH 到我的端点时遇到问题,最终需要从 0.0.0.0/0 开放到 22 的端口。 同样的问题,这个解决方案成功了!谢谢楼主?? 我正在尝试为 postgres 数据库做同样的事情,但是当尝试从入站规则的源字段中添加安全组时,我收到以下消息:You may not specify a referenced group id for an existing IPv4 CIDR rule.
我非常感谢您帮助。【参考方案2】:
你必须创建一个:
1)AWSGlueServiceRole
角色并附加s3FullAccess,GlueServiceRole
和RedshiftFullAccess
策略。
2) 检查您是否有 vpc 端点,如果没有,请创建一个 VPC 端点并确保将子网添加到路由表中。 3)创建自引用安全组。
现在使用 JDBC 连接,
jdbc:type://xxxx:port/databasename
类型是redshift/postgresql/etc
...
xxxx: server name
数据库所在的位置。
【讨论】:
【参考方案3】:改用 JDBC 连接来连接到您的 Redshift。只需确保相应的 VPC 定义了端点即可。
【讨论】:
以上是关于红移连接的粘合作业:“无法找到合适的安全组”的主要内容,如果未能解决你的问题,请参考以下文章