至少一个安全组必须打开所有入口端口。 AWS Glue 连接到 RDS

Posted

技术标签:

【中文标题】至少一个安全组必须打开所有入口端口。 AWS Glue 连接到 RDS【英文标题】:At least one security group must open all ingress ports. AWS Glue connecting to RDS 【发布时间】:2018-12-24 17:44:25 【问题描述】:

我仍在开始使用 AWS Glue,我正在尝试将其连接到托管在 RDS Aurora 上的可公开访问的 mysql 数据库以获取其数据。

所以我首先创建一个爬虫,然后在数据存储中创建一个新连接,如下面的屏幕截图所示:

我完成了剩下的工作并最终尝试运行爬虫,但出现以下错误:At least one security group must open all ingress ports.To limit traffic, the source security group in your inbound rule can be restricted to the same security group

我不确定我需要在附加到 RDS 的安全组中进行哪些更改,但这是我现在对入站规则所做的:

你会注意到我有一个指向同一个安全组的自引用规则。

出站规则将针对所有流量。

知道我做错了什么吗?

【问题讨论】:

【参考方案1】:

入站规则(Glue Connection 安全组)设置为允许 TCP 端口 0 允许流量。相反,它应该允许所有流量。编辑您的规则,在下拉菜单中显示“自定义 TCP 规则”,然后将其更改为“所有 TCP”。

documentation 解释了如何设置安全组

【讨论】:

谢谢,虽然我仍然收到错误,但我认为这与爬虫的输出更相关:VPC S3 endpoint validation failed for SubnetId: subnet-1944ab40. VPC: vpc-c8605bad. Reason: Could not find S3 endpoint or NAT gateway for subnetId: subnet-1944ab40 in Vpc vpc-c8605bad 是的,这是一个不同的问题,您可能需要创建一个单独的问题。我相信这与在您的 VPC / 子网中设置所谓的“S3 网关端点”的需要有关。 第二个问题解决了吗?遇到同样的问题【参考方案2】:

您需要在附加到您定义的数据库实例的安全组中设置新规则:

类型:所有 TCP 协议:TCP 范围:0 - 65535 来源:Custom sg-(the 此/自我安全组的 ID) 描述:随心所欲

【讨论】:

【参考方案3】:

解决上面提到的 cmets 中的第二个错误(VPC S3 端点验证失败,用于 SubnetId: subnet-1944ab40。VPC: vpc-c8605bad。原因:在 Vpc 中找不到用于子网 ID:subnet-1944ab40 的 S3 端点或 NAT 网关vpc-c8605bad),您必须为 Amazon S3 创建一个 Amazon VPC 终端节点。 https://docs.aws.amazon.com/glue/latest/dg/vpc-endpoints-s3.html

【讨论】:

【参考方案4】:

我发现@David I. Rock 解决方案正在运行,但不便通过 SQL 客户端停止连接。

除此之外,我还添加了入站规则:

类型:MYSQL / Aurora 协议:TCP(自动生成) 端口范围:3306(自动生成) 来源:My IP(或适应您的要求)

【讨论】:

以上是关于至少一个安全组必须打开所有入口端口。 AWS Glue 连接到 RDS的主要内容,如果未能解决你的问题,请参考以下文章

AWS CLI;撤销默认安全组入口规则会导致错误

适用于 RDS 的 AWS 安全组 - 出站规则

网络负载均衡器的AWS EC2安全组权限

AWS 安全组难题

安全组定义中不允许自引用

运行 AWS opsworks 实例所需的基本安全组端口