Configuración de un firewall para el acceso a procesos sin servidor

Nota:

Si ha configurado firewalls de almacenamiento mediante identificadores de subred de la documentación de Azure Databricks antes del 31 de octubre de 2023, Databricks recomienda actualizar las áreas de trabajo con los pasos de este artículo o con un punto de conexión privado. Si decide no actualizar las áreas de trabajo existentes, seguirán funcionando sin cambios.

En este artículo se describe cómo configurar un firewall de almacenamiento de Azure para el proceso sin servidor mediante la interfaz de usuario de la consola de la cuenta de Azure Databricks. También puede usar la API de configuraciones de conectividad de red.

Para configurar un punto de conexión privado para el acceso de proceso sin servidor, vea Configuración de la conectividad privada desde el proceso sin servidor.

Información general sobre la habilitación del firewall para el proceso sin servidor

La conectividad de red sin servidor se administra con configuraciones de conectividad de red (NCC). Los administradores de cuentas crean NCC en la consola de la cuenta y una NCC se puede asociar a una o varias áreas de trabajo

Una NCC contiene una lista de identidades de red para un tipo de recurso de Azure como reglas predeterminadas. Cuando se adjunta un NCC a un área de trabajo, el proceso sin servidor de esa área de trabajo usa una de esas redes para conectar el recurso de Azure. Puede permitir enumerar esas redes en el firewall de recursos de Azure.

La habilitación del firewall de NCC solo se admite desde almacenes de SQL sin servidor para los orígenes de datos que administra. No se admiten desde otros recursos de proceso en el plano de proceso sin servidor, ni para almacenamiento raíz del área de trabajo (DBFS raíz).

Para más información sobre las NCC, vea ¿Qué es una configuración de conectividad de red (NCC)?.

Implicaciones de costos del acceso al almacenamiento entre regiones

Para el tráfico entre regiones desde almacenes de SQL sin servidor de Azure Databricks (por ejemplo, el área de trabajo se encuentra en la región Este de EE. UU. y el almacenamiento de ADLS se encuentra en el Oeste de Europa), Azure Databricks enruta el tráfico a través de un servicio de Azure NAT Gateway.

Importante

Actualmente no hay ningún cargo para usar esta característica. En una versión posterior, es posible que se le cobre por el uso. Para evitar estos cargos, Databricks recomienda crear un área de trabajo en la misma región que el almacenamiento.

Requisitos

  • El área de trabajo debe estar en el plan Premium.

  • Debe ser administrador de la cuenta de Azure Databricks.

  • Cada NCC se puede asociar a un máximo de 50 áreas de trabajo.

  • Cada cuenta de Azure Databricks puede tener hasta 10 NCC por región.

    • Debe tener acceso WRITE a las reglas de red de la cuenta de almacenamiento de Azure.

Paso 1: Creación de una configuración de conectividad de red y copia de identificadores de subred

Databricks recomienda compartir NCC entre áreas de trabajo de la misma unidad de negocio y aquellas que comparten las mismas propiedades de conectividad y la misma región. Por ejemplo, si algunas áreas de trabajo usan el firewall de almacenamiento y otras el enfoque alternativo de Private Link, utilice NCC independientes para esos casos de uso.

  1. Como administrador de la cuenta, vaya a la consola de la cuenta.
  2. En la barra lateral, haga clic en Recursos de nube.
  3. Haga clic en Configuración de conectividad de red.
  4. Haga clic en Agregar configuraciones de conectividad de red.
  5. Escriba un nombre para la NCC.
  6. Elija la región. Debe coincidir con la región del área de trabajo.
  7. Haga clic en Agregar.
  8. En la lista de NCC, haga clic en la nueva NCC.
  9. En Reglas predeterminadas en Identidades de red, haga clic en Ver todas.
  10. En el cuadro de diálogo, haga clic en el botón Copiar subredes y guarde la lista de subredes.
  11. Haga clic en Cerrar.

Paso 2: Anexión de una NCC a las áreas de trabajo

Puede adjuntar una NCC a un máximo de 50 áreas de trabajo en la misma región que la NCC.

A fin de usar la API para asociar una NCC a un área de trabajo, vea la API de áreas de trabajo de cuenta.

  1. En la barra lateral de la consola de la cuenta, haga clic en Áreas de trabajo.
  2. Haga clic en el nombre del área de trabajo.
  3. Haga clic en Actualizar área de trabajo.
  4. En el campo Configuración de conectividad de red, seleccione la NCC. Si no es visible, confirme que ha seleccionado la misma región para el área de trabajo y la NCC.
  5. Haga clic en Update(Actualizar).
  6. Espere 10 minutos para que el cambio surta efecto.
  7. Reinicie los almacenes de SQL sin servidor en ejecución del área de trabajo.

Paso 3: Bloquear la cuenta de almacenamiento

Si aún no ha limitado el acceso a la cuenta de almacenamiento de Azure para permitir solo las redes incluidas en la lista de permitidos, hágalo ahora. La creación de un firewall de almacenamiento también afecta a la conectividad desde el plano de proceso clásico a los recursos. También debe agregar reglas de red para conectarse a las cuentas de almacenamiento desde recursos de proceso clásicos.

  1. Vaya a Azure Portal.
  2. Vaya a la cuenta de almacenamiento para el origen de datos.
  3. En el panel de navegación izquierdo, haga clic en Redes.
  4. En el campo Acceso a la red pública, compruebe el valor. De manera predeterminada, el valor es Habilitado desde todas las redes. Cambie el valor a Habilitado desde redes virtuales y direcciones IP seleccionadas.

Paso 4: agregar reglas de red de la cuenta de almacenamiento de Azure

  1. Agregue una regla de red de la cuenta de almacenamiento de Azure para cada subred. Puede hacerlo mediante la CLI de Azure, PowerShell, Terraform u otras herramientas de automatización. Tenga en cuenta que este paso no se puede hacer en la interfaz de usuario de Azure Portal.

    En el ejemplo siguiente se usa la CLI de Azure:

    az storage account network-rule add --subscription "<sub>" \
        --resource-group "<res>" --account-name "<account>" --subnet "<subnet>"
    
    • Reemplace <sub> por el nombre de su suscripción de Azure para la cuenta de almacenamiento.
    • Reemplace <res> por el grupo de recursos de la cuenta de almacenamiento.
    • Reemplace <account> por el nombre de la cuenta de almacenamiento.
    • Reemplace <subnet> por el identificador de recurso de ARM (resourceId) de la subred del almacén SQL sin servidor.

    Después de ejecutar todos los comandos, puede usar Azure Portal para ver la cuenta de almacenamiento y confirmar que hay una entrada en la tabla Redes virtuales que representa la nueva subred. Sin embargo, no puede realizar los cambios en las reglas de red en Azure Portal.

    Sugerencia

    Omita la mención de "Permisos insuficientes" en la columna de estado del punto de conexión o la advertencia debajo de la lista de red. Estas solo indican que no tiene permisos para leer las subredes de Azure Databricks, pero esto no interfiere con la capacidad de que esa subred sin servidor de Azure Databricks se comunique con el almacenamiento de Azure.

    Ejemplo de entradas nuevas en la lista redes virtuales

  2. Repita este comando una vez por cada subred. De manera opcional, puede automatizar el proceso de creación de reglas de red. Consulte Automatización de la creación de reglas de red.

  3. Para confirmar que la cuenta de almacenamiento usa esta configuración desde Azure Portal, vaya a Redes en la cuenta de almacenamiento.

    Confirme que Acceso a la red pública está establecido en Habilitado desde redes virtuales y direcciones IP seleccionadas y que las redes admitidas aparecen en la sección Redes virtuales.

Automatización de la creación de reglas de red

Puede automatizar la creación de reglas de red para la cuenta de almacenamiento.

En este ejemplo se usan dos subredes en una lista que puede utiliza con un bucle a fin de ejecutar el comando para cada subred. En este ejemplo, mystorage-rg es el grupo de recursos y myaccount es la cuenta de almacenamiento.

#!/bin/bash
SUBNETS=(/subscriptions/8453a5d5-9e9e-40c7-87a4-0ab4cc197f48/resourceGroups/prod-azure-eastusc3-nephos2/providers/Microsoft.Network/virtualNetworks/kaas-vnet/subnets/worker-subnet /subscriptions/8453a5d5-9e9e-40c7-87a4-0ab4cc197f48/resourceGroups/prod-azure-eastusc3-nephos3/providers/Microsoft.Network/virtualNetworks/kaas-vnet/subnets/worker-subnet)
for SUBNET in ${SUBNETS[@]}
do
  az storage account network-rule add --subscription 9999999-1ff3-43f4-b91e-d0ceb97111111 --resource-group mystorage-rg --account-name myaccount --subnet ${SUBNET}
done