为 Snowflake 转移配置专用连接

本指南介绍了如何配置专用连接,以创建从 Snowflake 到 BigQuery 的专用数据传输。借助私密数据传输,您可以在专用网络中将数据从一个来源传输到另一个来源,并降低通过公共互联网传输数据时的安全风险。

以下部分介绍了在创建 Snowflake 转移作业之前配置专用连接所需的步骤。

对于托管在 Amazon Web Services (AWS)、Microsoft Azure 和 Google Cloud上的 Snowflake 实例,支持私密转移。

创建将 Snowflake 账号连接到云提供商的专用链接。如需了解详情,请选择以下选项之一:

AWS

配置 AWS PrivateLink,以将 Snowflake 账号连接到 AWS 账号。您的 AWS 账号必须包含 Snowflake 转移所需的 Amazon S3 临时存储桶

Azure

配置 Azure Private Link,将您的 Azure 虚拟网络 (VNet) 连接到 Azure 中的 Snowflake VNet。您的 Azure 账号必须包含 Snowflake 转移所需的 Blob 暂存存储桶

Google Cloud

配置 Google Cloud Private Service Connect,将您的虚拟私有云 (VPC) 网络子网连接到托管在 Google Cloud上的 Snowflake 账号。您的Google Cloud 必须具有 Snowflake 转移所需的 Cloud Storage 暂存桶

设置跨云互连或高可用性 VPN

从 AWS 或 Azure 设置跨云互连或高可用性 VPN。Google Cloud托管的 Snowflake 账号不需要执行此步骤。

AWS

高可用性 VPN 可让您通过加密的 VPN 隧道传输数据。如需使用高可用性 VPN 进行私密 Snowflake 传输,请参阅在 Google Cloud 和 AWS 之间创建高可用性 VPN 连接

Cross-Cloud Interconnect 连接可在云提供商之间创建专用私有链路,适合需要低延迟的大规模数据传输。如需使用跨云互连进行私有 Snowflake 传输,请参阅连接到 AWS

Azure

高可用性 VPN 可让您通过加密的 VPN 隧道传输数据。如需使用高可用性 VPN 进行私密 Snowflake 传输,请参阅在 Google Cloud 和 Azure 之间创建高可用性 VPN 连接

Cross-Cloud Interconnect 连接可在云提供商之间创建专用私有链路,适合需要低延迟的大规模数据传输。如需使用跨云互连进行私有 Snowflake 传输,请参阅连接到 Azure

创建代理虚拟机

如需完成专用连接,需要使用代理虚拟机来完成数据源之间的连接,而无需让数据到达公共互联网。对于托管在 AWS、Azure 或 Google Cloud上的 Snowflake 实例,此步骤是必需的。

如需为 Snowflake 私有转移创建和配置代理虚拟机,请执行以下操作:

  1. 在使用方 VPC 网络中创建一个或多个 Compute Engine 虚拟机实例
  2. 下载 TCP 代理软件(例如 HAProxy 或 Nginx),然后配置以下内容:
    1. 指定端口。例如 443
    2. 将所有传入的 TCP 流量转发到 Snowflake 实例上的专用主机名和端口。
  3. 将虚拟机配置为通过使用方 VPC 网络中配置的 DNS 解析 Snowflake 专用主机名。
  4. 通过执行以下操作来设置内部直通式负载均衡器:
    1. 将代理虚拟机分组到托管式实例组 (MIG) 中
    2. 设置具有虚拟机实例组后端的内部直通式网络负载平衡器

创建服务连接

使用 Private Service Connect 创建网络连接并发布服务。 对于托管在 AWS、Azure 或 Google Cloud上的 Snowflake 实例,此步骤是必需的。

服务附件必须与 BigQuery 数据集位于同一区域。

如果您的服务使用明确审批(connection-preference 设置为 ACCEPT_MANUAL),则在 Snowflake 私密数据传输中使用的服务账号必须具有以下 IAM 权限:

  • compute.serviceAttachments.get
  • compute.serviceAttachments.update
  • compute.regionOperations.get

创建服务连接后,请记下服务连接 URI。创建 Snowflake 转移作业配置时,您需要此 URI。

创建端点

在您的 AWS 或 Azure 账号中创建端点。 Google Cloud托管的 Snowflake 账号不需要执行此步骤。

AWS

在 AWS 中,创建一个连接到 Amazon S3 的 VPC 端点。如需了解详情,请参阅使用接口 VPC 端点访问 AWS 服务

Azure

在 Azure 中为存储账号配置专用端点。如需了解详情,请参阅使用 Azure 存储的专用端点

Storage Transfer Service 需要 *.blob.core.microsoft.net 端点。不支持 *.dfs.core.microsoft.net 端点。

创建后,记下端点的 IP 地址。您需要在下一部分中创建负载均衡器时指定 IP 地址。

创建网络负载均衡器

设置具有混合连接的区域级内部代理网络负载均衡器 (NLB)。您可以创建负载均衡器,以将流量路由到您在上一个部分中创建的 Amazon S3 VPC 端点或 Azure 存储专用端点。如需了解详情,请参阅设置具有混合连接的区域级内部代理网络负载平衡器

注册 NLB

创建网络 NLB 后,在 Storage Transfer Service 的 Service Directory 中注册该 NLB。如需了解详情,请参阅向 Service Directory 注册 NLB

记下指向服务目录的链接。创建 Snowflake 转移配置时,您需要使用该服务的自链接。

创建私有 Snowflake 转移配置

创建 Snowflake 转移作业。设置转移配置时,请执行以下操作:

控制台

  • 对于使用专用网络,请选择 True
  • 对于 PSC 服务连接,输入服务连接 URI。如需了解如何查找服务连接 URI,请参阅查看已发布服务的详细信息。服务连接 URI 的格式为 projects/PROJECT_ID/regions/REGION/serviceAttachments/SERVICE_ATTACHMENT
  • 对于 Private Network Service,请输入 NLB 服务的自链接。 其格式为 projects/PROJECT_ID/locations/LOCATION/namespaces/NAMESPACE/services/SERVICE_NAME

bq

  • 对于 use_private_network 参数,请设置为 TRUE
  • 对于 service_attachment 参数,请指定服务连接 URI。如需了解如何查找服务连接 URI,请参阅查看已发布服务的详细信息。服务连接 URI 的格式为 projects/PROJECT_ID/regions/REGION/serviceAttachments/SERVICE_ATTACHMENT
  • 对于 private_network_service 参数,请提供 NLB 服务的自链接。 其格式为 projects/PROJECT_ID/locations/LOCATION/namespaces/NAMESPACE/services/SERVICE_NAME