Configurar a conectividade particular para transferências do Snowflake
Este guia mostra como configurar a conectividade privada para criar transferências de dados particulares do Snowflake para o BigQuery. Com as transferências de dados particulares, é possível transferir dados de uma origem para outra em uma rede particular e reduzir os riscos de segurança ao transferir dados pela Internet pública.
As seções a seguir mostram as etapas necessárias para configurar a conectividade privada antes de criar uma transferência do Snowflake.
As transferências particulares são compatíveis com instâncias do Snowflake hospedadas no Amazon Web Services (AWS), no Microsoft Azure e no Google Cloud.

Criar um link privado para o Snowflake
Crie um link privado que conecte sua conta do Snowflake ao provedor de nuvem. Para mais informações, selecione uma das seguintes opções:
AWS
Configure o AWS PrivateLink para conectar sua conta do Snowflake à conta da AWS. Sua conta da AWS precisa ter o bucket de preparação do Amazon S3 necessário para uma transferência do Snowflake.
Azure
Configure o Azure Private Link para conectar sua rede virtual do Azure (VNet) à VNet do Snowflake no Azure. Sua conta do Azure precisa conter o bucket de preparo de blob necessário para uma transferência do Snowflake.
Google Cloud
Configure Google Cloud o Private Service Connect para conectar sua sub-rede da rede de nuvem privada virtual (VPC) à sua conta do Snowflake hospedada em Google Cloud. Seu Google Cloud precisa ter um bucket de preparo do Cloud Storage necessário para uma transferência do Snowflake.
Configurar o Interconexão entre nuvens ou a VPN de alta disponibilidade
Configure o Interconexão entre nuvens ou a VPN de alta disponibilidade na AWS ou no Azure. Essa etapa não é necessária para contas do Snowflake hospedadas peloGoogle Cloud.
AWS
Com uma VPN de alta disponibilidade, é possível transferir dados por um túnel de VPN criptografado. Para usar uma VPN de alta disponibilidade na sua transferência privada do Snowflake, consulte Criar conexões de VPN de alta disponibilidade entre Google Cloud e a AWS.
Uma conexão Cross-Cloud Interconnect cria um link privado dedicado entre provedores de nuvem e é adequada para grandes transferências de dados com requisitos de baixa latência. Para usar Interconexão entre nuvens na sua transferência privada do Snowflake, consulte Conectar à AWS.
Azure
Com uma VPN de alta disponibilidade, é possível transferir dados por um túnel de VPN criptografado. Para usar uma VPN de alta disponibilidade na sua transferência privada do Snowflake, consulte Criar conexões de VPN de alta disponibilidade entre Google Cloud e o Azure.
Uma conexão Cross-Cloud Interconnect cria um link privado dedicado entre provedores de nuvem e é adequada para grandes transferências de dados com requisitos de baixa latência. Para usar Interconexão entre nuvens na sua transferência privada do Snowflake, consulte Conectar ao Azure.
Criar VM de proxy
Para concluir uma conexão particular, uma VM proxy é necessária para concluir a conexão entre suas fontes de dados sem que eles cheguem à Internet pública. Essa etapa é necessária para instâncias do Snowflake hospedadas na AWS, no Azure ou no Google Cloud.
Para criar e configurar uma VM proxy para uma transferência privada do Snowflake, faça o seguinte:
- Crie uma ou mais instâncias de VM do Compute Engine na rede VPC do consumidor.
- Faça o download de um software de proxy TCP, como HAProxy ou Nginx, e configure o seguinte:
- Especifique uma porta. Por exemplo,
443 - Encaminhe todo o tráfego TCP de entrada para o nome do host e a porta particulares na instância do Snowflake.
- Especifique uma porta. Por exemplo,
- Configure as VMs para resolver o nome de host particular do Snowflake pelo DNS configurado na rede VPC do consumidor.
- Configure um balanceador de carga de passagem interna fazendo o seguinte:
Criar anexo de serviço
Use o Private Service Connect para criar um anexo de rede e publicar o serviço. Essa etapa é necessária para instâncias do Snowflake hospedadas na AWS, no Azure ou no Google Cloud.
O anexo de serviço precisa estar na mesma região que o conjunto de dados do BigQuery.
Se o serviço usar aprovação explícita (connection-preference definido como
ACCEPT_MANUAL), a conta de serviço usada na transferência
privada de dados do Snowflake precisará ter as seguintes permissões do IAM:
compute.serviceAttachments.getcompute.serviceAttachments.updatecompute.regionOperations.get
Depois de criar o anexo de serviço, anote o URI dele. Você vai precisar desse URI ao criar a configuração de transferência do Snowflake.
Criar endpoint
Crie um endpoint na sua conta da AWS ou do Azure. Essa etapa não é necessária para contas do Snowflake hospedadas peloGoogle Cloud.
AWS
Na AWS, crie um endpoint da VPC que se conecte ao Amazon S3. Para mais informações, consulte Acessar um serviço da AWS usando um endpoint de VPC de interface.
Azure
Configure um endpoint particular na conta de armazenamento no Azure. Para mais informações, consulte Usar endpoints particulares para o Azure Storage.
O Serviço de transferência do Cloud Storage exige o endpoint *.blob.core.microsoft.net. O endpoint
*.dfs.core.microsoft.net não é compatível.
Depois de criado, anote o endereço IP do endpoint. Você precisará especificar o endereço IP ao criar o balanceador de carga na seção a seguir.
Crie um balanceador de carga de rede
Configure um balanceador de carga de rede (NLB) de proxy interno regional com conectividade híbrida. É possível criar o balanceador de carga para rotear o tráfego para os endpoints da VPC do Amazon S3 ou os endpoints particulares do Azure Storage criados na seção anterior. Para mais informações, consulte Configurar um balanceador de carga de rede de proxy interno regional com conectividade híbrida.
Registrar seu NLB
Depois de criar o NLB de rede, registre-o no Diretório de serviços no Serviço de transferência do Cloud Storage. Para mais informações, consulte Registrar seu NLB no Service Directory.
Anote o link para o diretório de serviços. Você vai precisar do autolink para o serviço ao criar a configuração de transferência do Snowflake.
Preparar o bucket de staging
Para concluir uma transferência de dados do Snowflake, crie um bucket de preparação e configure-o para permitir acesso de gravação do Snowflake.
Selecione uma das seguintes opções:
AWS
Para contas do Snowflake hospedadas na AWS, crie um bucket do Amazon S3 para armazenar os dados do Snowflake antes de serem carregados no BigQuery.
Crie e configure um objeto de integração de armazenamento do Snowflake para permitir que o Snowflake grave dados no bucket do Amazon S3 como um estágio externo.
Para permitir o acesso de leitura ao bucket do Amazon S3, faça o seguinte:
Crie um usuário do IAM da Amazon dedicado e conceda a ele a política
AmazonS3ReadOnlyAccess.Crie um par de chaves de acesso da Amazon para o usuário do IAM.
Azure
Para contas do Snowflake hospedadas no Azure, crie um contêiner do Armazenamento de Blobs do Azure para organizar os dados do Snowflake antes de serem carregados no BigQuery.
- Crie uma conta de armazenamento do Azure e um contêiner de armazenamento nela.
- Crie e configure um objeto de integração de armazenamento do Snowflake para permitir que o Snowflake grave dados no contêiner de armazenamento do Azure como um estágio externo. Você pode pular as etapas para criar um estágio externo, já que isso não é necessário.
Para permitir o acesso de leitura no seu contêiner do Azure, gere um token SAS para ele.
Google Cloud
Para contas do Snowflake hospedadas no Google Cloud, crie um bucket do Cloud Storage para organizar os dados do Snowflake antes de serem carregados no BigQuery.
- Crie um bucket do Cloud Storage.
- Crie e configure um objeto de integração de armazenamento do Snowflake para permitir que o Snowflake grave dados no bucket do Cloud Storage como um estágio externo.
Para permitir o acesso ao bucket de staging, conceda ao agente de serviço do DTS o papel
roles/storage.objectViewercom o seguinte 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
Criar uma configuração de transferência privada do Snowflake
Crie a transferência do Snowflake. Ao configurar a configuração de transferência, faça o seguinte:
Console
- Em Usar rede particular, selecione Verdadeiro.
- Em Anexo de serviço do PSC, insira o URI do anexo de serviço. Para informações sobre como encontrar o URI do anexo de serviço, consulte Ver detalhes de um serviço publicado.
O URI do anexo de serviço está no formato
projects/PROJECT_ID/regions/REGION/serviceAttachments/SERVICE_ATTACHMENT. - Para o Private Network Service, insira o self-link do serviço NLB.
Ele usa o formato
projects/PROJECT_ID/locations/LOCATION/namespaces/NAMESPACE/services/SERVICE_NAME. - O URI do bucket de preparo que você quer usar para a transferência:
- Para uma conta do Snowflake hospedada na AWS, é necessário um URI de bucket do Amazon S3 e credenciais de acesso.
- Para um Snowflake hospedado no Azure, é necessário ter uma conta e um contêiner do Armazenamento de Blobs do Azure.
- Para uma conta do Snowflake hospedada no Google Cloud, é necessário um URI do bucket do Cloud Storage.
Em Provedor de nuvem, selecione
AWS,AZUREouGCP, dependendo de qual provedor de nuvem está hospedando sua conta do Snowflake.AWS
- Em URI do Amazon S3, insira o URI do bucket do Amazon S3 que será usado como um bucket de preparo.
- Em ID da chave de acesso e Chave de acesso secreta, insira o par de chaves de acesso.
Azure
- Em Nome da conta do Armazenamento do Azure e O contêiner na conta do Armazenamento do Azure, insira o nome da conta de armazenamento e do contêiner do Armazenamento de Blobs do Azure para usar como um bucket de staging.
- Em Token SAS, insira o token SAS gerado para o contêiner.
Google Cloud
- Em URI do GCS, insira o URI do Cloud Storage para usar como um bucket de preparo.
bq
- Para o parâmetro
use_private_network, defina comoTRUE. - Para o parâmetro
service_attachment, especifique o URI do anexo de serviço. Para informações sobre como encontrar o URI do anexo de serviço, consulte Ver detalhes de um serviço publicado. O URI do anexo de serviço está no formatoprojects/PROJECT_ID/regions/REGION/serviceAttachments/SERVICE_ATTACHMENT. - Para o parâmetro
private_network_service, forneça o autovínculo do serviço NLB. Ele usa o formatoprojects/PROJECT_ID/locations/LOCATION/namespaces/NAMESPACE/services/SERVICE_NAME. cloud_provider: insiraAWS,AZUREouGCP, dependendo de qual provedor de nuvem está hospedando sua conta do Snowflake.staging_s3_uri: insira o URI do bucket do S3 para usar como um bucket de preparo. Obrigatório apenas quando seucloud_provideréAWS.aws_access_key_id: insira o par de chaves de acesso. Obrigatório apenas quando seucloud_provideréAWS.aws_secret_access_key: insira o par de chaves de acesso. Obrigatório apenas quando seucloud_provideréAWS.azure_storage_account: insira o nome da conta de armazenamento para usar como um bucket de staging. Obrigatório apenas quando seucloud_provideréAZURE.staging_azure_container: insira o contêiner no Armazenamento de Blobs do Azure para usar como um bucket de staging. Obrigatório apenas quando seucloud_provideréAZURE.azure_sas_token: insira o token SAS. Obrigatório apenas quando seucloud_provideréAZURE.staging_gcs_uri: insira o URI do Cloud Storage para usar como um bucket de staging. Obrigatório apenas quando seucloud_provideréGCP.