Configurare la connettività privata per i trasferimenti Snowflake

Questa guida mostra come configurare la connettività privata per creare trasferimenti di dati privati da Snowflake a BigQuery. I trasferimenti di dati privati consentono di trasferire dati da un'origine a un'altra all'interno di una rete privata e di ridurre i rischi per la sicurezza durante il trasferimento di dati tramite internet pubblico.

Le sezioni seguenti mostrano i passaggi necessari per configurare la connettività privata prima di poter creare un trasferimento Snowflake.

I trasferimenti privati sono supportati per le istanze Snowflake ospitate su Amazon Web Services (AWS), Microsoft Azure e Google Cloud.

Trasferimenti di dati privati da account AWS o Azure o Google Cloudospitati su Snowflake a BigQuery

Crea un collegamento privato che connetta il tuo account Snowflake al tuo cloud provider. Per saperne di più, seleziona una delle seguenti opzioni:

AWS

Configura AWS PrivateLink per connettere il tuo account Snowflake al tuo account AWS account. Il tuo account AWS deve contenere il bucket di gestione temporanea Amazon S3 richiesto per un trasferimento Snowflake.

Azure

Configura Azure Private Link per connettere la tua rete virtuale (VNet) di Azure alla VNet Snowflake in Azure. Il tuo account Azure deve contenere il bucket di gestione temporanea Blob richiesto per un trasferimento Snowflake.

Google Cloud

Configura Google Cloud Private Service Connect per connettere la subnet della rete Virtual Private Cloud (VPC) al tuo account Snowflake ospitato su Google Cloud. Devi disporre di un bucket di gestione temporanea Cloud Storage richiesto per un trasferimento Snowflake.Google Cloud

Configurare Cross-Cloud Interconnect o VPN ad alta disponibilità

Configura Cross-Cloud Interconnect o la VPN ad alta disponibilità da AWS o Azure. Questo passaggio non è obbligatorio per gli account Snowflake ospitati su Google Cloud.

AWS

Una VPN ad alta disponibilità consente di trasferire i dati tramite un tunnel VPN criptato. Per utilizzare una VPN ad alta disponibilità per il trasferimento privato di Snowflake, consulta Creare connessioni VPN ad alta disponibilità tra Google Cloud e AWS.

Una connessione Cross-Cloud Interconnect crea un collegamento privato dedicato tra i cloud provider ed è adatta per trasferimenti di dati di grandi dimensioni con requisiti di bassa latenza. Per utilizzare Cross-Cloud Interconnect per il trasferimento privato di Snowflake, consulta Connettersi ad AWS.

Azure

Una VPN ad alta disponibilità consente di trasferire i dati tramite un tunnel VPN criptato. Per utilizzare una VPN ad alta disponibilità per il trasferimento privato di Snowflake, consulta Creare connessioni VPN ad alta disponibilità tra Google Cloud e Azure.

Una connessione Cross-Cloud Interconnect crea un collegamento privato dedicato tra i cloud provider ed è adatta per trasferimenti di dati di grandi dimensioni con requisiti di bassa latenza. Per utilizzare Cross-Cloud Interconnect per il trasferimento privato di Snowflake, consulta Connettersi ad Azure.

Creare una VM proxy

Per completare una connessione privata, è necessaria una VM proxy per completare la connessione tra le origini dati senza che i dati raggiungano la rete internet pubblica. Questo passaggio è obbligatorio per le istanze Snowflake ospitate su AWS, Azure o Google Cloud.

Per creare e configurare una VM proxy per un trasferimento privato di Snowflake:

  1. Crea una o più istanze VM Compute Engine nella rete VPC consumer.
  2. Scarica un software proxy TCP, come HAProxy o Nginx, e configura quanto segue:
    1. Specifica una porta. Ad esempio, 443.
    2. Inoltra tutto il traffico TCP in entrata al nome host e alla porta privati dell'istanza Snowflake.
  3. Configura le VM in modo che risolvano il nome host privato di Snowflake tramite il DNS configurato nella rete VPC consumer.
  4. Configura un bilanciatore del carico passthrough interno:
    1. Raggruppa le VM proxy in un gruppo di istanze gestite (MIG).
    2. Configura un bilanciatore del carico di rete passthrough interno con backend di gruppi di istanze VM.

Creare un collegamento al servizio

Utilizza Private Service Connect per creare un collegamento di rete e pubblicare il servizio. Questo passaggio è obbligatorio per le istanze Snowflake ospitate su AWS, Azure o Google Cloud.

Il collegamento al servizio deve trovarsi nella stessa regione del set di dati BigQuery.

Se il tuo servizio utilizza l'approvazione esplicita (connection-preference è impostato su ACCEPT_MANUAL), il account di servizio utilizzato nel trasferimento di dati privati di Snowflake deve disporre delle seguenti autorizzazioni IAM:

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

Dopo aver creato il collegamento al servizio, prendi nota dell'URI del collegamento al servizio. Avrai bisogno di questo URI quando crei la configurazione del trasferimento Snowflake.

Creare un endpoint

Crea un endpoint nel tuo account AWS o Azure. Questo passaggio non è obbligatorio per gli account Snowflake ospitati su Google Cloud.

AWS

In AWS, crea un endpoint VPC che si connetta ad Amazon S3. Per saperne di più, consulta Accedere a un servizio AWS utilizzando un endpoint VPC di interfaccia endpoint.

Azure

Configura un endpoint privato nell'account di archiviazione in Azure. Per saperne di più, consulta Utilizzare gli endpoint privati per Azure Storage.

Storage Transfer Service richiede l'endpoint *.blob.core.windows.net. L'endpoint *.dfs.core.windows.net non è supportato.

Una volta creato, prendi nota dell'indirizzo IP dell'endpoint. Dovrai specificare l'indirizzo IP quando crei il bilanciatore del carico nella sezione seguente.

Creare un bilanciatore del carico di rete

Configura un bilanciatore del carico di rete (NLB) proxy interno regionale con connettività ibrida. Puoi creare il bilanciatore del carico per instradare il traffico agli endpoint VPC di Amazon S3 o agli endpoint privati di Azure Storage creati nella sezione precedente. Per saperne di più, consulta Configurare un bilanciatore del carico di rete proxy interno regionale con connettività ibrida.

Registrare l'NLB

Dopo aver creato l'NLB di rete, registralo in Service Directory in Storage Transfer Service. Per saperne di più, consulta Registrare l'NLB con Service Directory.

Prendi nota del link a Service Directory. Avrai bisogno del self-link al servizio quando crei la configurazione del trasferimento Snowflake.

Preparare il bucket di gestione temporanea

Per completare un trasferimento di dati Snowflake, devi creare un bucket di gestione temporanea e configurarlo in modo da consentire l'accesso in scrittura da Snowflake.

Seleziona una delle seguenti opzioni:

AWS

Per gli account Snowflake ospitati su AWS, crea un bucket Amazon S3 per gestire temporaneamente i dati Snowflake prima che vengano caricati in BigQuery.

  1. Crea un bucket Amazon S3.

  2. Crea e configura un oggetto di integrazione dell'archiviazione Snowflake per consentire a Snowflake di scrivere i dati nel bucket Amazon S3 come fase esterna.

Per consentire l'accesso in lettura al bucket Amazon S3, devi anche:

  1. Crea un utente Amazon IAM dedicato e concedigli la policy AmazonS3ReadOnlyAccess.

  2. Crea una coppia di chiavi di accesso Amazon per l'utente IAM.

Azure

Per gli account Snowflake ospitati su Azure, crea un container Azure Blob Storage per gestire temporaneamente i dati Snowflake prima che vengano caricati in BigQuery.

  1. Crea un account di archiviazione Azure e un container di archiviazione al suo interno.
  2. Crea e configura un oggetto di integrazione dell'archiviazione Snowflake per consentire a Snowflake di scrivere i dati nel container di archiviazione Azure come fase esterna. Puoi saltare i passaggi per creare una fase esterna, perché non è obbligatorio.

Per consentire l'accesso in lettura al container Azure, genera un token SAS.

Google Cloud

Per gli account Snowflake ospitati su Google Cloud, crea un bucket Cloud Storage per gestire temporaneamente i dati Snowflake prima che vengano caricati in BigQuery.

  1. Crea un bucket Cloud Storage.
  2. Crea e configura un oggetto di integrazione dell'archiviazione Snowflake per consentire a Snowflake di scrivere i dati nel bucket Cloud Storage come fase esterna.
  3. Per consentire l'accesso al bucket di gestione temporanea, concedi all'agente di servizio DTS il ruolo roles/storage.objectViewer con il seguente comando:

    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

Creare una configurazione di trasferimento Snowflake privata

Crea il trasferimento Snowflake. Quando configuri il trasferimento, esegui le seguenti operazioni:

Console

bq

  • Per il parametro use_private_network, imposta TRUE.
  • Per il parametro service_attachment, specifica l'URI del collegamento al servizio. Per informazioni su come trovare l'URI del collegamento al servizio, consulta Visualizzare i dettagli di un servizio pubblicato. L'URI del collegamento al servizio ha il formato projects/PROJECT_ID/regions/REGION/serviceAttachments/SERVICE_ATTACHMENT.
  • Per il parametro private_network_service, fornisci il self-link del servizio NLB. Utilizza il formato projects/PROJECT_ID/locations/LOCATION/namespaces/NAMESPACE/services/SERVICE_NAME.
  • cloud_provider: inserisci AWS o AZURE o GCP a seconda del cloud provider che ospita il tuo account Snowflake.
  • staging_s3_uri: inserisci l'URI del bucket S3 da utilizzare come bucket di gestione temporanea. Obbligatorio solo quando cloud_provider è AWS.
  • aws_access_key_id: inserisci la coppia di chiavi di accesso. Obbligatorio solo quando cloud_provider è AWS.
  • aws_secret_access_key: inserisci la coppia di chiavi di accesso. Obbligatorio solo quando cloud_provider è AWS.
  • azure_storage_account: inserisci il nome dell'account di archiviazione da utilizzare come bucket di gestione temporanea. Obbligatorio solo quando cloud_provider è AZURE.
  • staging_azure_container: inserisci il container in Azure Blob Storage da utilizzare come bucket di gestione temporanea. Obbligatorio solo quando cloud_provider è AZURE.
  • azure_sas_token: inserisci il token SAS. Obbligatorio solo quando cloud_provider è AZURE.
  • staging_gcs_uri : inserisci l'URI di Cloud Storage da utilizzare come bucket di gestione temporanea. Obbligatorio solo quando cloud_provider è GCP.