設定 Snowflake 移轉作業的私人連線

本指南說明如何設定私人連線,從 Snowflake 建立私人資料轉移至 BigQuery。透過私有資料移轉功能,您可以在私有網路中將資料從一個來源移轉至另一個來源,並降低透過公用網際網路移轉資料時的安全性風險。

下列章節說明設定私人連線能力的必要步驟,完成後即可建立 Snowflake 轉移作業

如果 Snowflake 執行個體託管於 Amazon Web Services (AWS)、Microsoft Azure 和 Google Cloud,則支援私密轉移。

建立私人連結,將 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 必須具備 Cloud Storage 暫存值區,才能進行 Snowflake 轉移

設定 Cross-Cloud Interconnect 或高可用性 VPN

從 AWS 或 Azure 設定 Cross-Cloud Interconnect 或高可用性 VPN。如果是Google Cloud代管的 Snowflake 帳戶,則不需要執行這個步驟。

AWS

高可用性 VPN 可讓您透過加密的 VPN 通道傳輸資料。如要使用高可用性 VPN 進行私有 Snowflake 傳輸,請參閱「在 Google Cloud 和 AWS 之間建立高可用性 VPN 連線」。

Cross-Cloud Interconnect 連線會在雲端供應商之間建立專屬的私人連結,適合用於有低延遲需求的大量資料移轉作業。如要使用 Cross-Cloud Interconnect 進行私有 Snowflake 傳輸,請參閱「連線至 AWS」。

Azure

高可用性 VPN 可讓您透過加密的 VPN 通道傳輸資料。如要使用高可用性 VPN 進行私有 Snowflake 傳輸,請參閱「在 Google Cloud 和 Azure 之間建立高可用性 VPN 連線」。

Cross-Cloud Interconnect 連線會在雲端供應商之間建立專屬的私人連結,適合用於有低延遲需求的大量資料移轉作業。如要使用 Cross-Cloud Interconnect 進行私有 Snowflake 傳輸,請參閱「連線至 Azure」。

建立 Proxy VM

如要完成私人連線,您必須使用 Proxy VM 完成資料來源之間的連線,且資料不會傳輸到公開網際網路。如果 Snowflake 執行個體代管於 AWS、Azure 或 Google Cloud,則必須執行這個步驟。

如要為 Snowflake 私人轉移作業建立及設定 Proxy VM,請按照下列步驟操作:

  1. 在消費者虛擬私有雲網路中建立一或多個 Compute Engine VM 執行個體
  2. 下載 TCP Proxy 軟體 (例如 HAProxy 或 Nginx),並設定下列項目:
    1. 指定通訊埠。例如 443
    2. 將所有傳入的 TCP 流量轉送至 Snowflake 執行個體上的私有主機名稱和通訊埠。
  3. 設定 VM,透過消費者虛擬私有雲網路中設定的 DNS 解析 Snowflake 私人主機名稱。
  4. 請按照下列步驟設定內部直通式負載平衡器:
    1. 將 Proxy VM 分組至代管執行個體群組 (MIG)
    2. 設定具有 VM 執行個體群組後端的內部直通式網路負載平衡器

建立服務連結

使用 Private Service Connect 建立網路連結並發布服務。 如果 Snowflake 執行個體代管於 AWS、Azure 或 Google Cloud,則必須執行這個步驟。

服務附件必須與 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 移轉服務需要 *.blob.core.microsoft.net 端點。系統不支援 *.dfs.core.microsoft.net 端點。

建立完成後,請記下端點的 IP 位址。在下一節中建立負載平衡器時,您需要指定 IP 位址。

建立網路負載平衡器

設定具有混合式連線的區域性內部 Proxy 網路負載平衡器 (NLB)。您可以建立負載平衡器,將流量路由至您在上一節中建立的 Amazon S3 虛擬私有雲端端點或 Azure 儲存空間私有端點。詳情請參閱「設定具有混合式連線能力的區域內部 Proxy 網路負載平衡器」。

註冊 NLB

建立網路 NLB 後,請在 Storage 移轉服務 的 Service Directory 中註冊。詳情請參閱「向 Service Directory 註冊 NLB」。

記下 Service Directory 的連結。建立 Snowflake 轉移設定時,您需要服務的自我連結。

建立私有 Snowflake 移轉設定

建立 Snowflake 移轉作業。設定移轉設定時,請按照下列步驟操作:

控制台

  • 在「Use Private Network」(使用私人網路) 部分,選取「True」(是)
  • 在「PSC 服務連結」部分,輸入服務連結 URI。如要瞭解如何找出服務附件 URI,請參閱「查看已發布服務的詳細資料」。服務連結 URI 的格式為 projects/PROJECT_ID/regions/REGION/serviceAttachments/SERVICE_ATTACHMENT
  • 如果是私有網路服務,請輸入 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