設定 Snowflake 移轉作業的私人連線
本指南說明如何設定私人連線,從 Snowflake 建立私人資料轉移至 BigQuery。透過私有資料移轉功能,您可以在私有網路中將資料從一個來源移轉至另一個來源,並降低透過公用網際網路移轉資料時的安全性風險。
下列章節說明設定私人連線能力的必要步驟,完成後即可建立 Snowflake 轉移作業。
如果 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 必須具備 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,請按照下列步驟操作:
- 在消費者虛擬私有雲網路中建立一或多個 Compute Engine VM 執行個體。
- 下載 TCP Proxy 軟體 (例如 HAProxy 或 Nginx),並設定下列項目:
- 指定通訊埠。例如
443。 - 將所有傳入的 TCP 流量轉送至 Snowflake 執行個體上的私有主機名稱和通訊埠。
- 指定通訊埠。例如
- 設定 VM,透過消費者虛擬私有雲網路中設定的 DNS 解析 Snowflake 私人主機名稱。
- 請按照下列步驟設定內部直通式負載平衡器:
建立服務連結
使用 Private Service Connect 建立網路連結並發布服務。 如果 Snowflake 執行個體代管於 AWS、Azure 或 Google Cloud,則必須執行這個步驟。
服務附件必須與 BigQuery 資料集位於同一地區。
如果您的服務使用明確核准 (connection-preference 設為 ACCEPT_MANUAL),則 Snowflake 私人資料移轉中使用的服務帳戶必須具備下列 IAM 權限:
compute.serviceAttachments.getcompute.serviceAttachments.updatecompute.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。