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.

Creare un collegamento privato a Snowflake
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:
- Crea una o più istanze VM Compute Engine nella rete VPC consumer.
- Scarica un software proxy TCP, come HAProxy o Nginx, e configura quanto segue:
- Specifica una porta. Ad esempio,
443. - Inoltra tutto il traffico TCP in entrata al nome host e alla porta privati dell'istanza Snowflake.
- Specifica una porta. Ad esempio,
- Configura le VM in modo che risolvano il nome host privato di Snowflake tramite il DNS configurato nella rete VPC consumer.
- Configura un bilanciatore del carico passthrough interno:
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.getcompute.serviceAttachments.updatecompute.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.
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:
Crea un utente Amazon IAM dedicato e concedigli la policy
AmazonS3ReadOnlyAccess.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.
- Crea un account di archiviazione Azure e un container di archiviazione al suo interno.
- 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.
- Crea un bucket Cloud Storage.
- 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.
Per consentire l'accesso al bucket di gestione temporanea, concedi all'agente di servizio DTS il ruolo
roles/storage.objectViewercon 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
- In Usa rete privata, seleziona True.
- In Collegamento al servizio PSC, inserisci 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. - In Servizio di rete privata, inserisci il self-link del servizio NLB.
Utilizza il formato
projects/PROJECT_ID/locations/LOCATION/namespaces/NAMESPACE/services/SERVICE_NAME. - L'URI del bucket di gestione temporanea che vuoi utilizzare per il trasferimento:
- Per un account Snowflake ospitato su AWS, è necessario un URI del bucket Amazon S3 insieme alle credenziali di accesso.
- Per un account Snowflake ospitato su Azure, è necessario un account e un container Azure Blob Storage.
- Per un account Snowflake ospitato su Google Cloud, è necessario un URI del bucket Cloud Storage.
In Cloud Provider, seleziona
AWSoAZUREoGCPa seconda del cloud provider che ospita il tuo account Snowflake.AWS
- In URI Amazon S3, inserisci l'URI del bucket Amazon S3 da utilizzare come bucket di gestione temporanea.
- In ID chiave di accesso e Chiave di accesso segreta, inserisci la coppia di chiavi di accesso.
Azure
- In Nome account Azure Storage e Il container nell'account di archiviazione Azure, inserisci il nome dell'account di archiviazione e del container di Azure Blob Storage da utilizzare come bucket di gestione temporanea.
- In Token SAS, inserisci il token SAS generato per il container.
Google Cloud
- In URI GCS, inserisci l'URI di Cloud Storage da utilizzare come bucket di gestione temporanea.
bq
- Per il parametro
use_private_network, impostaTRUE. - 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 formatoprojects/PROJECT_ID/regions/REGION/serviceAttachments/SERVICE_ATTACHMENT. - Per il parametro
private_network_service, fornisci il self-link del servizio NLB. Utilizza il formatoprojects/PROJECT_ID/locations/LOCATION/namespaces/NAMESPACE/services/SERVICE_NAME. cloud_provider: inserisciAWSoAZUREoGCPa 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 quandocloud_providerèAWS.aws_access_key_id: inserisci la coppia di chiavi di accesso. Obbligatorio solo quandocloud_providerèAWS.aws_secret_access_key: inserisci la coppia di chiavi di accesso. Obbligatorio solo quandocloud_providerèAWS.azure_storage_account: inserisci il nome dell'account di archiviazione da utilizzare come bucket di gestione temporanea. Obbligatorio solo quandocloud_providerèAZURE.staging_azure_container: inserisci il container in Azure Blob Storage da utilizzare come bucket di gestione temporanea. Obbligatorio solo quandocloud_providerèAZURE.azure_sas_token: inserisci il token SAS. Obbligatorio solo quandocloud_providerèAZURE.staging_gcs_uri: inserisci l'URI di Cloud Storage da utilizzare come bucket di gestione temporanea. Obbligatorio solo quandocloud_providerèGCP.