Configura 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 i dati da un'origine a un'altra all'interno di una rete privata e di ridurre i rischi per la sicurezza durante il trasferimento dei dati su 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.

Crea un link privato a Snowflake
Crea un link privato che colleghi il tuo account Snowflake al tuo fornitore di servizi cloud. Per saperne di più, seleziona una delle seguenti opzioni:
AWS
Configura AWS PrivateLink per connettere il tuo account Snowflake al tuo account AWS. Il tuo account AWS deve contenere il bucket di staging Amazon S3 necessario per un trasferimento Snowflake.
Azure
Configura Azure Private Link per connettere la tua rete virtuale di Azure (VNet) alla VNet di Snowflake in Azure. Il tuo account Azure deve contenere il bucket di gestione temporanea dei blob richiesto per un trasferimento Snowflake.
Google Cloud
Configura Google Cloud Private Service Connect per connettere la subnet della tua rete Virtual Private Cloud (VPC) al tuo account Snowflake ospitato su Google Cloud. Il tuo Google Cloud deve avere un bucket di staging Cloud Storage richiesto per un trasferimento Snowflake.
Configura Cross-Cloud Interconnect o la VPN ad alta disponibilità
Configura Cross-Cloud Interconnect o la VPN ad alta disponibilità da AWS o Azure. Questo passaggio non è richiesto per gli account Snowflake ospitati suGoogle Cloud.
AWS
Una VPN ad alta disponibilità ti consente di trasferire i dati attraverso 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 provider cloud ed è adatta per trasferimenti di grandi quantità di dati 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à ti consente di trasferire i dati attraverso 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 provider cloud ed è adatta per trasferimenti di grandi quantità di dati con requisiti di bassa latenza. Per utilizzare Cross-Cloud Interconnect per il trasferimento privato di Snowflake, vedi Connettersi ad Azure.
Crea la 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 è necessario 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 di Compute Engine all'interno della rete VPC consumer.
- Scarica un software proxy TCP, ad esempio HAProxy o Nginx, e configura quanto segue:
- Specifica una porta. Ad esempio,
443. - Inoltra tutto il traffico TCP in entrata all'hostname e alla porta privati dell'istanza Snowflake.
- Specifica una porta. Ad esempio,
- Configura le VM per risolvere il nome host privato Snowflake tramite il DNS configurato nella rete VPC consumer.
- Configura un bilanciatore del carico passthrough interno nel seguente modo:
Crea collegamento al servizio
Utilizza Private Service Connect per creare un collegamento di rete e pubblicare il servizio. Questo passaggio è necessario per le istanze Snowflake ospitate su AWS, Azure o Google Cloud.
Il collegamento del servizio deve trovarsi nella stessa regione del set di dati BigQuery.
Se il tuo servizio utilizza l'approvazione esplicita (connection-preference è impostato come
ACCEPT_MANUAL), ilaccount di serviziot utilizzato nel trasferimento privato dei dati di Snowflake
deve disporre delle seguenti autorizzazioni IAM:
compute.serviceAttachments.getcompute.serviceAttachments.updatecompute.regionOperations.get
Dopo aver creato il collegamento al servizio, prendi nota del relativo URI. Ti servirà questo URI quando crei la configurazione del trasferimento Snowflake.
Crea endpoint
Crea un endpoint nel tuo account AWS o Azure. Questo passaggio non è richiesto per gli account Snowflake ospitati suGoogle Cloud.
AWS
In AWS, crea un endpoint VPC che si connette ad Amazon S3. Per saperne di più, consulta Accedere a un servizio AWS utilizzando un endpoint VPC di interfaccia.
Azure
Configura un endpoint privato nell'account di archiviazione in Azure. Per saperne di più, consulta Utilizzare 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.
Crea un bilanciatore del carico di rete
In Google Cloud, configura un bilanciatore del carico di rete proxy interno regionale con connettività ibrida. In questo modo viene fornito un indirizzo IP interno limitato ai client in esecuzione nella stessa rete VPC del bilanciatore del carico e che instrada il traffico agli endpoint VPC S3 o agli endpoint privati di Azure Storage creati nella sezione precedente.
Devi creare il bilanciatore del carico nello stesso progetto e nella stessa rete VPC del collegamento VLAN che si interfaccia con Cloud Interconnect. Anche se l'interconnessione stessa può trovarsi in un progetto diverso all'interno della stessa organizzazione, l'allegato deve trovarsi nello stesso VPC e nella stessa regione del bilanciatore del carico.
Specifica l'indirizzo IP dell'endpoint VPC S3 o dell'endpoint privato di Azure Storage quando raggiungi i passaggi etichettati Aggiungi endpoint al NEG di connettività ibrida.
Prendi nota dell'indirizzo IP e della porta frontend del bilanciatore del carico di rete, poiché dovrai specificarli nella sezione successiva.
Convalidare la connessione
Prima di procedere, ti consigliamo di verificare che il bilanciatore del carico possa connettersi all'endpoint di archiviazione remota.
Ecco come fare:
- Crea una VM di Compute Engine nella stessa rete VPC del bilanciatore del carico.
Dalla VM, utilizza
curlper testare la connettività all'indirizzo IP e alla porta del bilanciatore del carico:curl -v --resolve HOSTNAME:PORT:LOAD_BALANCER_IP https://HOSTNAMESostituisci quanto segue:
- HOSTNAME è il nome host del tuo fornitore di spazio di archiviazione di origine.
- Per AWS S3, utilizza l'endpoint API S3 per la regione del tuo bucket, ad esempio
s3.us-west-1.amazonaws.com. - Per Azure Storage, utilizza l'endpoint blob del tuo account di archiviazione, ad esempio
mystorageaccount.blob.core.windows.net.
- Per AWS S3, utilizza l'endpoint API S3 per la regione del tuo bucket, ad esempio
- PORT è la porta che hai configurato nella regola di forwarding del bilanciatore del carico, in genere
443. - LOAD_BALANCER_IP è l'indirizzo IP di frontend del bilanciatore del carico.
- HOSTNAME è il nome host del tuo fornitore di spazio di archiviazione di origine.
Una risposta dall'endpoint remoto, anche un errore, indica che la connettività è riuscita. Un timeout della connessione indica una configurazione errata della rete che devi risolvere prima di continuare.
Registra il tuo bilanciamento del carico di rete
Registra il bilanciamento del carico di rete in Service Directory. BigQuery utilizza Service Directory per risolvere l'indirizzo del bilanciatore del carico e connettersi direttamente.
Segui le istruzioni per registrare un bilanciatore del carico interno. Utilizza l'indirizzo IP e la porta del bilanciatore del carico che hai creato quando specifichi la regola di forwarding.
Una volta creato, annota il self-link del servizio. Utilizza il formato
projects/{project_id}/locations/{location}/namespaces/{namespace}/services/{service}.
Questo valore ti servirà quando creerai il job di trasferimento.
Prepara il bucket di gestione temporanea
Per completare un trasferimento di dati Snowflake, devi creare un bucket di staging e configurarlo per 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 preparare 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 dati nel bucket Amazon S3 come stage esterno.
Per consentire l'accesso in lettura al tuo 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 preparare i dati Snowflake prima che vengano caricati in BigQuery.
- Crea un account di archiviazione Azure e un contenitore di archiviazione al suo interno.
- Crea e configura un oggetto di integrazione dell'archiviazione Snowflake per consentire a Snowflake di scrivere dati nel container di archiviazione Azure come area di gestione temporanea esterna. Puoi saltare i passaggi per creare un palco esterno, in quanto non è obbligatorio.
Per consentire l'accesso in lettura al tuo contenitore Azure, genera un token SAS.
Google Cloud
Per gli account Snowflake ospitati da Google Cloud, crea un bucket Cloud Storage per preparare 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 dati nel bucket Cloud Storage come area di staging esterna.
Per consentire l'accesso al bucket di staging, 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
Crea una configurazione di trasferimento Snowflake privata
Crea il trasferimento Snowflake. Quando configuri la configurazione del trasferimento, esegui le seguenti operazioni:
Console
- Per Usa rete privata, seleziona True.
- In Collegamento del servizio PSC, inserisci l'URI del collegamento al servizio. Per informazioni su come trovare l'URI dell'allegato di servizio, consulta Visualizzare i dettagli di un servizio pubblicato.
L'URI del collegamento al servizio è nel formato
projects/PROJECT_ID/regions/REGION/serviceAttachments/SERVICE_ATTACHMENT. - Per Private Network Service, 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 staging che vuoi utilizzare per il trasferimento:
- Per un account Snowflake ospitato su AWS, è necessario un URI bucket Amazon S3 insieme alle credenziali di accesso.
- Per un'istanza di Snowflake ospitata su Azure, è necessario un account e un contenitore Azure Blob Storage.
- Per un account Snowflake ospitato su Google Cloud, è richiesto un URI bucket Cloud Storage.
Per 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 staging.
- Per ID chiave di accesso e Chiave di accesso segreta, inserisci la coppia di chiavi di accesso.
Azure
- Per Nome account Azure Storage e Il contenitore nell'account Azure Storage, inserisci il nome dell'account di archiviazione e del contenitore di Azure Blob Storage da utilizzare come bucket di staging.
- Per Token SAS, inserisci il token SAS generato per il contenitore.
Google Cloud
- In URI GCS, inserisci l'URI di Cloud Storage da utilizzare come bucket di staging.
bq
- Per il parametro
use_private_network, impostaTRUE. - Per il parametro
service_attachment, specifica l'URI del collegamento di servizio. Per informazioni su come trovare l'URI dell'allegato di servizio, consulta Visualizzare i dettagli di un servizio pubblicato. L'URI del collegamento al servizio è nel formatoprojects/PROJECT_ID/regions/REGION/serviceAttachments/SERVICE_ATTACHMENT. - Per il parametro
private_network_service, fornisci l'autocollegamento del servizio NLB. Utilizza il formatoprojects/PROJECT_ID/locations/LOCATION/namespaces/NAMESPACE/services/SERVICE_NAME. cloud_provider: inserisciAWS,AZUREoGCPa seconda del provider di servizi cloud che ospita il tuo account Snowflake.staging_s3_uri: inserisci l'URI del bucket S3 da utilizzare come bucket di staging. 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 staging. Obbligatorio solo quandocloud_providerèAZURE.staging_azure_container: inserisci il container in Azure Blob Storage da utilizzare come bucket di staging. 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 staging. Obbligatorio solo quandocloud_providerèGCP.