Mengonfigurasi konektivitas pribadi untuk transfer Snowflake

Panduan ini menunjukkan cara mengonfigurasi konektivitas pribadi untuk membuat transfer data pribadi dari Snowflake ke BigQuery. Transfer data pribadi memungkinkan Anda mentransfer data dari satu sumber ke sumber lain dalam jaringan pribadi, dan memungkinkan Anda menurunkan risiko keamanan saat mentransfer data melalui internet publik.

Bagian berikut menunjukkan langkah-langkah yang diperlukan untuk mengonfigurasi konektivitas pribadi sebelum Anda dapat membuat transfer Snowflake.

Transfer pribadi didukung untuk instance Snowflake yang dihosting di Amazon Web Services (AWS), Microsoft Azure, dan Google Cloud.

Transfer Data Pribadi dari akun Snowflake yang dihosting di AWS atau Azure atau Google Cloudke BigQuery

Buat link pribadi yang menghubungkan akun Snowflake Anda ke penyedia cloud Anda. Untuk mengetahui informasi selengkapnya, pilih salah satu opsi berikut:

AWS

Konfigurasi AWS PrivateLink untuk menghubungkan akun Snowflake Anda ke akun AWS Anda. Akun AWS Anda harus berisi bucket staging Amazon S3 yang diperlukan untuk transfer Snowflake.

Azure

Konfigurasi Azure Private Link untuk menghubungkan Azure Virtual Network (VNet) Anda ke Snowflake VNet di Azure. Akun Azure Anda harus berisi bucket staging Blob yang diperlukan untuk transfer Snowflake.

Google Cloud

Konfigurasi Google Cloud Private Service Connect untuk menghubungkan subnet jaringan Virtual Private Cloud (VPC) Anda ke akun Snowflake Anda yang dihosting di Google Cloud. Anda Google Cloud harus memiliki bucket staging Cloud Storage yang diperlukan untuk transfer Snowflake.

Menyiapkan Cross-Cloud Interconnect atau HA VPN

Siapkan Cross-Cloud Interconnect atau HA VPN dari AWS atau Azure. Langkah ini tidak diperlukan untuk Google Cloud-akun Snowflake yang dihosting di.

AWS

VPN ketersediaan tinggi memungkinkan Anda mentransfer data melalui tunnel VPN terenkripsi. Untuk menggunakan HA VPN untuk transfer Snowflake pribadi Anda, lihat Membuat koneksi HA VPN antara dan AWS. Google Cloud

Koneksi Cross-Cloud Interconnect membuat link pribadi khusus antara penyedia cloud dan cocok untuk transfer data besar dengan persyaratan latensi rendah. Untuk menggunakan Cross-Cloud Interconnect untuk transfer Snowflake pribadi Anda, lihat Menghubungkan ke AWS.

Azure

VPN ketersediaan tinggi memungkinkan Anda mentransfer data melalui tunnel VPN terenkripsi. Untuk menggunakan HA VPN untuk transfer Snowflake pribadi Anda, lihat Membuat koneksi HA VPN antara Google Cloud dan Azure.

Koneksi Cross-Cloud Interconnect membuat link pribadi khusus antara penyedia cloud dan cocok untuk transfer data besar dengan persyaratan latensi rendah. Untuk menggunakan Cross-Cloud Interconnect untuk transfer Snowflake pribadi Anda, lihat Menghubungkan ke Azure.

Membuat VM proxy

Untuk menyelesaikan koneksi pribadi, VM proxy diperlukan untuk menyelesaikan koneksi antara sumber data Anda tanpa data Anda mencapai internet publik. Langkah ini diperlukan untuk instance Snowflake yang dihosting di AWS, Azure, atau Google Cloud.

Untuk membuat dan mengonfigurasi VM proxy untuk transfer pribadi Snowflake, lakukan hal berikut:

  1. Buat satu atau beberapa instance VM Compute Engine dalam jaringan VPC konsumen.
  2. Download software proxy TCP, seperti HAProxy atau Nginx, dan konfigurasi hal berikut:
    1. Tentukan port. Misalnya, 443.
    2. Teruskan semua traffic TCP yang masuk ke nama host dan port pribadi di instance Snowflake.
  3. Konfigurasi VM untuk me-resolve nama host pribadi Snowflake melalui DNS yang dikonfigurasi di jaringan VPC konsumen.
  4. Siapkan load balancer passthrough internal dengan melakukan hal berikut:
    1. Kelompokkan VM proxy ke dalam grup instance terkelola (MIG).
    2. Siapkan Network Load Balancer passthrough internal dengan backend grup instance VM.

Membuat lampiran layanan

Gunakan Private Service Connect untuk membuat lampiran jaringan dan memublikasikan layanan. Langkah ini diperlukan untuk instance Snowflake yang dihosting di AWS, Azure, atau Google Cloud.

Lampiran layanan Anda harus berada di region yang sama dengan set data BigQuery Anda.

Jika layanan Anda menggunakan persetujuan eksplisit (connection-preference ditetapkan sebagai ACCEPT_MANUAL), akun layanan yang digunakan dalam transfer data pribadi Snowflake Anda harus memiliki izin IAM berikut:

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

Setelah membuat lampiran layanan, catat URI lampiran layanan. Anda akan memerlukan URI ini saat membuat konfigurasi transfer Snowflake.

Membuat endpoint

Buat endpoint di akun AWS atau Azure Anda. Langkah ini tidak diperlukan untuk Google Cloud-akun Snowflake yang dihosting di.

AWS

Di AWS, buat endpoint VPC yang terhubung ke Amazon S3. Untuk mengetahui informasi selengkapnya, lihat Mengakses layanan AWS menggunakan endpoint VPC antarmuka.

Azure

Konfigurasi Endpoint Pribadi di Akun Penyimpanan di Azure. Untuk mengetahui informasi selengkapnya, lihat Menggunakan endpoint pribadi untuk Azure Storage.

Storage Transfer Service memerlukan endpoint *.blob.core.windows.net. Endpoint *.dfs.core.windows.net tidak didukung.

Setelah dibuat, catat alamat IP endpoint. Anda harus menentukan alamat IP saat membuat load balancer di bagian berikut.

Membuat Network Load Balancer

Di Google Cloud, siapkan Network Load Balancer proxy internal regional dengan konektivitas hibrida. Hal ini menyediakan alamat IP internal yang dibatasi untuk klien yang berjalan di jaringan VPC yang sama dengan load balancer, dan yang merutekan traffic ke endpoint VPC S3 atau endpoint pribadi Azure Storage yang Anda buat di bagian sebelumnya.

Anda harus membuat load balancer di project dan jaringan VPC yang sama dengan lampiran VLAN yang berinteraksi dengan Cloud Interconnect. Meskipun interconnect itu sendiri dapat berada di project yang berbeda dalam organisasi yang sama, lampiran harus berada di VPC dan region yang sama dengan load balancer.

Tentukan alamat IP endpoint VPC S3 atau endpoint pribadi Azure Storage saat Anda mencapai langkah yang diberi label Tambahkan endpoint ke NEG konektivitas hibrida.

Catat alamat IP dan port frontend NLB, karena Anda harus menentukannya di bagian berikutnya.

Memvalidasi koneksi

Sebelum melanjutkan, sebaiknya validasi bahwa load balancer dapat terhubung ke endpoint penyimpanan jarak jauh.

Untuk melakukannya:

  1. Buat VM Compute Engine di jaringan VPC yang sama dengan load balancer Anda.
  2. Dari VM, gunakan curl untuk menguji konektivitas ke alamat IP dan port load balancer:

    curl -v --resolve HOSTNAME:PORT:LOAD_BALANCER_IP https://HOSTNAME
    

    Ganti kode berikut:

    • HOSTNAME adalah nama host penyedia penyimpanan sumber Anda.
      • Untuk AWS S3, gunakan endpoint S3 API untuk region bucket Anda, misalnya s3.us-west-1.amazonaws.com.
      • Untuk Azure Storage, gunakan endpoint blob akun penyimpanan Anda, misalnya mystorageaccount.blob.core.windows.net.
    • PORT adalah port yang Anda konfigurasi pada aturan penerusan load balancer, biasanya 443.
    • LOAD_BALANCER_IP adalah alamat IP frontend load balancer Anda.

Respons dari endpoint jarak jauh, bahkan error, menunjukkan bahwa konektivitas berhasil. Waktu tunggu koneksi menunjukkan kesalahan konfigurasi dalam penyiapan jaringan Anda yang harus Anda selesaikan sebelum melanjutkan.

Mendaftarkan NLB

Daftarkan NLB di Direktori Layanan. BigQuery menggunakan Direktori Layanan untuk me-resolve alamat load balancer dan terhubung langsung ke alamat tersebut.

Ikuti petunjuk untuk mendaftarkan load balancer internal. Gunakan alamat IP dan port load balancer yang Anda buat saat menentukan aturan penerusan.

Setelah dibuat, catat self-link layanan. Link ini menggunakan format projects/{project_id}/locations/{location}/namespaces/{namespace}/services/{service}. Anda akan memerlukan nilai ini saat membuat tugas transfer.

Menyiapkan bucket staging

Untuk menyelesaikan transfer data Snowflake, Anda harus membuat bucket staging, lalu mengonfigurasinya untuk mengizinkan akses tulis dari Snowflake.

Pilih salah satu opsi berikut:

AWS

Untuk akun Snowflake yang dihosting di AWS, buat bucket Amazon S3 untuk melakukan staging data Snowflake sebelum dimuat ke BigQuery.

  1. Buat bucket Amazon S3.

  2. Buat dan konfigurasi objek integrasi penyimpanan Snowflake untuk mengizinkan Snowflake menulis data ke bucket Amazon S3 sebagai tahap eksternal.

Untuk mengizinkan akses baca di bucket Amazon S3 Anda, Anda juga harus melakukan hal berikut:

  1. Buat pengguna Amazon IAM khusus dan berikan kebijakan AmazonS3ReadOnlyAccess kepadanya.

  2. Buat pasangan kunci akses Amazon untuk pengguna IAM.

Azure

Untuk akun Snowflake yang dihosting di Azure, buat container Azure Blob Storage untuk melakukan staging data Snowflake sebelum dimuat ke BigQuery.

  1. Buat akun penyimpanan Azure dan container penyimpanan di dalamnya.
  2. Buat dan konfigurasi objek integrasi penyimpanan Snowflake untuk mengizinkan Snowflake menulis data ke container penyimpanan Azure sebagai tahap eksternal. Anda dapat melewati langkah-langkah untuk membuat tahap eksternal, karena hal ini tidak diperlukan.

Untuk mengizinkan akses baca di container Azure Anda, buat Token SAS untuknya.

Google Cloud

Untuk akun Snowflake yang dihosting di Google Cloud, buat bucket Cloud Storage untuk melakukan staging data Snowflake sebelum dimuat ke BigQuery.

  1. Buat bucket Cloud Storage.
  2. Buat dan konfigurasi objek integrasi penyimpanan Snowflake untuk mengizinkan Snowflake menulis data ke bucket Cloud Storage sebagai tahap eksternal.
  3. Untuk mengizinkan akses ke bucket staging, Berikan agen layanan DTS peran roles/storage.objectViewer dengan perintah berikut:

    gcloud storage buckets add-iam-policy-binding gs://STAGING_BUCKET_NAME \
      --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com \
      --role=roles/storage.objectViewer

Membuat konfigurasi transfer Snowflake pribadi

Buat transfer Snowflake. Saat menyiapkan konfigurasi transfer, lakukan hal berikut:

Konsol

bq

  • Untuk parameter use_private_network, tetapkan ke TRUE.
  • Untuk parameter service_attachment, tentukan URI lampiran layanan. Untuk mengetahui informasi tentang cara menemukan URI lampiran layanan, lihat Melihat detail untuk layanan yang dipublikasikan. URI lampiran layanan menggunakan format projects/PROJECT_ID/regions/REGION/serviceAttachments/SERVICE_ATTACHMENT.
  • Untuk parameter private_network_service, berikan self-link layanan NLB. Link ini menggunakan format projects/PROJECT_ID/locations/LOCATION/namespaces/NAMESPACE/services/SERVICE_NAME.
  • cloud_provider: masukkan AWS atau AZURE atau GCP bergantung pada penyedia cloud yang menghosting akun Snowflake Anda.
  • staging_s3_uri: masukkan URI bucket S3 yang akan digunakan sebagai bucket staging. Hanya diperlukan jika cloud_provider Anda adalah AWS.
  • aws_access_key_id: masukkan pasangan kunci akses. Hanya diperlukan jika cloud_provider Anda adalah AWS.
  • aws_secret_access_key: masukkan pasangan kunci akses. Hanya diperlukan jika cloud_provider Anda adalah AWS.
  • azure_storage_account: masukkan nama akun penyimpanan yang akan digunakan sebagai bucket staging. Hanya diperlukan jika cloud_provider Anda adalah AZURE.
  • staging_azure_container: masukkan container dalam Azure Blob Storage yang akan digunakan sebagai bucket staging. Hanya diperlukan jika cloud_provider Anda adalah AZURE.
  • azure_sas_token: masukkan token SAS. Hanya diperlukan jika cloud_provider Anda adalah AZURE.
  • staging_gcs_uri : masukkan URI Cloud Storage yang akan digunakan sebagai bucket staging. Hanya diperlukan jika cloud_provider Anda adalah GCP.