

# 在 VPC 中连接到 JDBC 数据存储
<a name="connection-JDBC-VPC"></a>

通常，您在 Amazon Virtual Private Cloud（Amazon VPC）内部创建资源，以便这些资源不能通过公共 Internet 访问。默认情况下，AWS Glue 无法访问 VPC 中的资源。要让 AWS Glue 能够访问 VPC 中的资源，您必须提供包括 VPC 子网 ID 和安全组 ID 在内的其他 VPC 特定的配置信息。AWS Glue 使用此信息设置[弹性网络接口](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ElasticNetworkInterfaces.html)，此接口可让您的函数安全连接到私有 VPC 中的其他资源。

 使用 VPC 端点时，请将其添加到您的路由表中。有关更多信息，请参阅 [Creating an interface VPC endpoint for AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/vpc-interface-endpoints.html#vpc-endpoint-create) 和 [先决条件](connection-S3-VPC.md#connection-S3-VPC-prerequisites)。

 在 Data Catalog 中使用加密时，请创建 KMS 接口端点并将其添加到您的路由表中。有关更多信息，请参阅 [Creating a VPC endpoint for AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/kms-vpc-endpoint.html#vpce-create-endpoint)。

## 使用弹性网络接口访问 VPC 数据
<a name="connection-JDBC-VPC-ENI"></a>

当 AWS Glue 连接到 VPC 中的 JDBC 数据存储时，AWS Glue 会在您的账户中创建弹性网络接口（使用前缀 `Glue_`）以访问您的 VPC 数据。只要此网络接口连接到 AWS Glue，您就不能删除它。作为创建弹性网络接口的一部分，AWS Glue 将一个或多个安全组关联到它。要使 AWS Glue 创建网络接口，与该资源关联的安全组必须允许具有源规则的入站访问。此规则包含与资源相关联的安全组。这将为具有相同安全组的数据存储提供弹性网络接口访问。

要允许 AWS Glue 与其组件通信，请为所有 TCP 端口指定一个具有自引用入站规则的安全组。通过创建自引用规则，您可以将源限制为 VPC 中的同一安全组，而不将其对所有网络打开。VPC 的默认安全组可能已经为 `ALL Traffic` 设置了自引用入站规则。

您可以在 Amazon VPC 控制台中创建规则。要通过 AWS 管理控制台 更新规则设置，请导航到 VPC 控制台（[https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)），然后选择相应的安全组。为 `ALL TCP` 指定入站规则，使其源具有相同的安全组名称。有关组规则的更多信息，请参阅[您的 VPC 的安全组](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)。

每个弹性网络接口都会从您指定子网中的 IP 地址范围分到一个私有 IP 地址。网络接口不会分到任何公有 IP 地址。AWS Glue 需要 Internet 访问（例如，访问没有 VPC 终端节点的 AWS 服务）。您可以在 VPC 中配置网络地址转换（NAT）实例，也可以使用 Amazon VPC NAT 网关。有关更多信息，请参阅《Amazon VPC 用户指南》**中的 [NAT 网关](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html)。您不能直接使用连接到 VPC 的 Internet 网关作为子网路由表中的路由，因为这需要网络接口具有公有 IP 地址。

VPC 网络属性 `enableDnsHostnames` 和 `enableDnsSupport` 必须设置为 true。有关更多信息，请参阅[将 DNS 与您的 VPC 一起使用](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html)。



**重要**  
不要将数据存储在未接入 Internet 的公有子网或私有子网中。相反，仅通过 NAT 实例或 Amazon VPC NAT 网关将它附加到接入了 Internet 的私有子网。

## 弹性网络接口属性
<a name="connection-JDBC-VPC-ENI-properties"></a>

要创建弹性网络接口时，您必须提供以下属性：

**VPC**  
包含您的数据存储的 VPC 的名称。

**子网**  
包含您的数据存储的 VPC 中的子网。

**安全组**  
与您的数据存储关联的安全组。AWS Glue 将这些安全组与连接到您的 VPC 的子网的弹性网络接口关联。要允许 AWS Glue 组件进行通信并阻止来自其他网络的访问，则至少必须有一个选定的安全组指定针对所有 TCP 端口的自引用入站规则。

有关使用 Amazon Redshift 管理 VPC 的信息，请参阅[在 Amazon Virtual Private Cloud（VPC）中管理集群](https://docs.aws.amazon.com/redshift/latest/mgmt/managing-clusters-vpc.html)。

有关使用 Amazon Relational Database Service（Amazon RDS）管理 VPC 的信息，请参阅[在 VPC 中使用 Amazon RDS 数据库实例](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html)。