Configura la conectividad privada para las transferencias de Snowflake

En esta guía, se muestra cómo configurar la conectividad privada para crear transferencias de datos privadas de Snowflake a BigQuery. Las transferencias de datos privadas te permiten transferir datos de una fuente a otra dentro de una red privada y reducir los riesgos de seguridad cuando transfieres datos a través de Internet público.

En las siguientes secciones, se muestran los pasos necesarios para configurar la conectividad privada antes de que puedas crear una transferencia de Snowflake.

Las transferencias privadas son compatibles con las instancias de Snowflake alojadas en Amazon Web Services (AWS), Microsoft Azure y Cloud de Confiance by S3NS.

Transferencias de datos privados desde cuentas de AWS o Azure o Cloud de Confiancealojadas en Snowflake a BigQuery

Crea un vínculo privado que conecte tu cuenta de Snowflake a tu proveedor de servicios en la nube. Para obtener más información, selecciona una de las siguientes opciones:

AWS

Configura AWS PrivateLink para conectar tu cuenta de Snowflake a tu cuenta de AWS account. Tu cuenta de AWS debe contener el bucket de etapa de pruebas de Amazon S3 que se requiere para una transferencia de Snowflake.

Azure

Configura Azure Private Link para conectar tu Azure Virtual Network (VNet) a la VNet de Snowflake en Azure. Tu cuenta de Azure debe contener el bucket de etapa de pruebas de Blob que se requiere para una transferencia de Snowflake.

Cloud de Confiance

Configura Cloud de Confiance by S3NS Private Service Connect para conectar la subred de tu red de nube privada virtual (VPC) a tu cuenta de Snowflake alojada en Cloud de Confiance by S3NS. Debes tener un Cloud de Confiance by S3NS bucket de etapa de pruebas de Cloud Storage que se requiere para una transferencia de Snowflake.

Configura Cross‑Cloud Interconnect o VPN con alta disponibilidad

Configura Cross‑Cloud Interconnect o VPN con alta disponibilidad desde AWS o Azure. Este paso no es obligatorio para las cuentas de Snowflake alojadas en Cloud de Confiance.

AWS

Una VPN con alta disponibilidad te permite transferir datos a través de un túnel VPN encriptado. Para usar una VPN con alta disponibilidad para tu transferencia privada de Snowflake, consulta Crea conexiones de VPN con alta disponibilidad entrey AWS. Cloud de Confiance

Una conexión de Cross-Cloud Interconnect crea un vínculo privado dedicado entre proveedores de servicios en la nube y es adecuada para transferencias de datos grandes con requisitos de baja latencia. Para usar Cross‑Cloud Interconnect para tu transferencia privada de Snowflake, consulta Conéctate a AWS.

Azure

Una VPN con alta disponibilidad te permite transferir datos a través de un túnel VPN encriptado. Para usar una VPN con alta disponibilidad para tu transferencia privada de Snowflake, consulta Crea conexiones de VPN con alta disponibilidad entrey Azure. Cloud de Confiance

Una conexión de Cross-Cloud Interconnect crea un vínculo privado dedicado entre proveedores de servicios en la nube y es adecuada para transferencias de datos grandes con requisitos de baja latencia. Para usar Cross‑Cloud Interconnect para tu transferencia privada de Snowflake, consulta Conéctate a Azure.

Crea una VM del proxy

Para completar una conexión privada, se requiere una VM del proxy para completar la conexión entre tus fuentes de datos sin que tus datos lleguen a Internet público. Este paso es obligatorio para las instancias de Snowflake alojadas en AWS, Azure o Cloud de Confiance.

Para crear y configurar una VM del proxy para una transferencia privada de Snowflake, haz lo siguiente:

  1. Crea una o más instancias de VM de Compute Engine dentro de la red de VPC del consumidor.
  2. Descarga un software de proxy TCP, como HAProxy o Nginx, y configura lo siguiente:
    1. Especifica un puerto. Por ejemplo, 443.
    2. Reenvía todo el tráfico TCP entrante al nombre de host y al puerto privados en la instancia de Snowflake.
  3. Configura las VMs para resolver el nombre de host privado de Snowflake a través del DNS configurado en la red de VPC del consumidor.
  4. Configura un balanceador de cargas de transferencia interno haciendo lo siguiente:
    1. Agrupa las VMs del proxy en un grupo de instancias administrado (MIG).
    2. Configura un balanceador de cargas de red de transferencia interno con backends de grupos de instancias de VM.

Crea un adjunto de servicio

Usa Private Service Connect para crear un adjunto de red y publicar el servicio. Este paso es obligatorio para las instancias de Snowflake alojadas en AWS, Azure o Cloud de Confiance.

Tu adjunto de servicio debe estar en la misma región que tu conjunto de datos de BigQuery.

Si tu servicio usa aprobación explícita (connection-preference se establece como ACCEPT_MANUAL), la cuenta de servicio que se usa en tu transferencia de datos privada de Snowflake debe tener los siguientes permisos de IAM:

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

Una vez que hayas creado el adjunto de servicio, toma nota del URI del adjunto de servicio. Necesitarás este URI cuando crees tu configuración de transferencia de Snowflake.

Crear extremo

Crea un extremo en tu cuenta de AWS o Azure. Este paso no es obligatorio para las cuentas de Snowflake alojadas en Cloud de Confiance.

AWS

En AWS, crea un extremo de VPC que se conecte a Amazon S3. Para obtener más información, consulta Accede a un servicio de AWS con un extremo de VPC de interfaz endpoint.

Azure

Configura un extremo privado en la cuenta de almacenamiento en Azure. Para obtener más información, consulta Usa extremos privados para Azure Storage.

El Servicio de transferencia de almacenamiento requiere el extremo *.blob.core.microsoft.net. No se admite el extremo *.dfs.core.microsoft.net.

Una vez creado, toma nota de la dirección IP del extremo. Deberás especificar la dirección IP cuando crees tu balanceador de cargas en la siguiente sección.

Crea un balanceador de cargas de red

Configura un balanceador de cargas de red (NLB) del proxy interno regional con conectividad híbrida. Puedes crear el balanceador de cargas para enrutar el tráfico a los extremos de VPC de Amazon S3 o a los extremos privados de Azure Storage que creaste en la sección anterior. Para obtener más información, consulta Configura un balanceador de cargas de red del proxy interno regional con conectividad híbrida.

Registra tu NLB

Después de crear tu NLB de red, regístralo en el Directorio de servicios en el Servicio de transferencia de almacenamiento. Para obtener más información, consulta Registra tu NLB en el Directorio de servicios.

Toma nota del vínculo al directorio de servicios. Necesitarás el vínculo propio al servicio cuando crees tu configuración de transferencia de Snowflake.

Prepara el bucket de etapa de pruebas

Para completar una transferencia de datos de Snowflake, debes crear un bucket de etapa de pruebas y, luego, configurarlo para permitir el acceso de escritura desde Snowflake.

Selecciona una de las siguientes opciones:

AWS

Para las cuentas de Snowflake alojadas en AWS, crea un bucket de Amazon S3 para preparar los datos de Snowflake antes de que se carguen en BigQuery.

  1. Crea un bucket de Amazon S3.

  2. Crea y configura un objeto de integración de almacenamiento de Snowflake para permitir que Snowflake escriba datos en el bucket de Amazon S3 como una etapa externa.

Para permitir el acceso de lectura en tu bucket de Amazon S3, también debes hacer lo siguiente:

  1. Crea un usuario de IAM de Amazon dedicado y otórgale la política AmazonS3ReadOnlyAccess.

  2. Crea un par de claves de acceso de Amazon para el usuario de IAM.

Azure

Para las cuentas de Snowflake alojadas en Azure, crea un contenedor de Azure Blob Storage para preparar los datos de Snowflake antes de que se carguen en BigQuery.

  1. Crea una cuenta de almacenamiento de Azure y un contenedor de almacenamiento dentro de ella.
  2. Crea y configura un objeto de integración de almacenamiento de Snowflake para permitir que Snowflake escriba datos en el almacenamiento de Azure como una etapa externa. Puedes omitir los pasos para crear una etapa externa, ya que no es obligatorio.

Para permitir el acceso de lectura en tu contenedor de Azure, genera un token de SAS para él.

Cloud de Confiance

Para las cuentas de Snowflake alojadas en Cloud de Confiance, crea un bucket de Cloud Storage para preparar los datos de Snowflake antes de que se carguen en BigQuery.

  1. Crea buckets de Cloud Storage.
  2. Crea y configura un objeto de integración de almacenamiento de Snowflake para permitir que Snowflake escriba datos en el bucket de Cloud Storage como una etapa externa.
  3. Para permitir el acceso al bucket de etapa de pruebas, otorga al agente de servicio de DTS el rol roles/storage.objectViewer con el siguiente comando:

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

Crea una configuración de transferencia privada de Snowflake

Crea la transferencia de Snowflake. Cuando configures la configuración de transferencia, haz lo siguiente:

Console

bq

  • Para el parámetro use_private_network, establece el valor en TRUE.
  • Para el parámetro service_attachment, especifica el URI del adjunto de servicio. Para obtener información sobre cómo encontrar el URI del adjunto de servicio, consulta Consulta los detalles de un servicio publicado. El URI del adjunto de servicio tiene el formato projects/PROJECT_ID/regions/REGION/serviceAttachments/SERVICE_ATTACHMENT.
  • Para el parámetro private_network_service, proporciona el vínculo propio del servicio NLB. Usa el formato projects/PROJECT_ID/locations/LOCATION/namespaces/NAMESPACE/services/SERVICE_NAME.
  • cloud_provider: Ingresa AWS, AZURE o GCP, según el proveedor de servicios en la nube que aloje tu cuenta de Snowflake.
  • staging_s3_uri: ingresa el URI del bucket de S3 que se usará como bucket de etapa de pruebas. Solo es obligatorio cuando tu cloud_provider es AWS.
  • aws_access_key_id: Ingresa el par de claves de acceso. Solo es obligatorio cuando tu cloud_provider es AWS.
  • aws_secret_access_key: Ingresa el par de claves de acceso. Solo es obligatorio cuando tu cloud_provider es AWS.
  • azure_storage_account: Ingresa el nombre de la cuenta de almacenamiento que se usará como bucket de etapa de pruebas. Solo es obligatorio cuando tu cloud_provider es AZURE.
  • staging_azure_container: Ingresa el contenedor dentro de Azure Blob Storage que se usará como bucket de etapa de pruebas. Solo es obligatorio cuando tu cloud_provider es AZURE.
  • azure_sas_token: Ingresa el token de SAS. Solo es obligatorio cuando tu cloud_provider es AZURE.
  • staging_gcs_uri : Ingresa el URI de Cloud Storage que se usará como bucket de etapa de pruebas. Solo es obligatorio cuando tu cloud_provider es GCP.