如何将AWS Glue连接到VPC并访问私有资源?

时间:2020-05-01 10:38:13

标签: amazon-web-services aws-glue amazon-vpc aws-glue-data-catalog

我正在尝试通过AWS Glue作业连接到VPC(专用子网)中运行的服务和数据库。私有资源不应公开暴露(例如,移至公共子网或设置公共负载平衡器)。

不幸的是,AWS Glue似乎不支持在用户定义的VPC内部运行。 AWS确实提供了称为Glue Database Connections的东西,当与Glue SDK一起使用时,它可以在指定的VPC内神奇地为Glue / Spark工作程序节点设置弹性网络接口。然后,网络接口将流量从Glue传输到VPC内的特定数据库。但是,这需要特定数据库的位置和凭据,尚不清楚是否以及何时通过VPC隧道传输其他流量(例如,对服务的REST调用)。

是否存在建立Glue-> VPC连接的可靠方法,该连接将通过VPC传输所有流量?

2 个答案:

答案 0 :(得分:3)

您可以创建具有 NETWORK 连接类型的数据库连接,并在您的 Glue 作业中使用该连接。它将允许您的工作调用 REST API 或您的 VPC 内的任何其他资源。

enter image description here

https://docs.aws.amazon.com/glue/latest/dg/connection-using.html

<块引用>

网络(指定到 Amazon 内的数据源的连接) 虚拟私有云环境(Amazon VPC))

enter image description here

https://docs.aws.amazon.com/glue/latest/dg/connection-JDBC-VPC.html

<块引用>

要允许 AWS Glue 与其组件通信,请指定一个 具有所有 TCP 端口的自引用入站规则的安全组。 通过创建自引用规则,您可以将源限制为 VPC 中的同一个安全组,并且不对所有网络开放。

enter image description here

答案 1 :(得分:1)

但是,这需要特定位置和凭据 数据库,目前尚不清楚是否还有其他流量(例如REST) 服务调用)通过VPC进行隧道传输。

我同意文档令人困惑,但是根据您链接的页面上的这一段,看来所有流量确实都通过VPC进行了隧道传输,因为您必须具有NAT网关或VPC端点才能允许Glue访问内容在VPC上配置了VPC访问权限后,即可在VPC外部进行访问:

作业访问的所有JDBC数据存储都必须可用 从VPC子网。要从您的VPC内访问Amazon S3,请使用VPC 端点是必需的。如果您的工作需要访问两个VPC资源 和公共互联网,VPC需要有一个网络地址 VPC内部的转换(NAT)网关。