Administración de directivas de red para el control de salida sin servidor
Importante
Esta característica está en versión preliminar pública.
En este documento se explica cómo configurar y administrar directivas de red para controlar las conexiones de red salientes desde las cargas de trabajo sin servidor en Azure Databricks.
Los permisos para administrar directivas de red están restringidos al administrador de la cuenta. Consulte Introducción a la administración de Azure Databricks.
Acceso a directivas de red
Para crear, ver y actualizar directivas de red en su cuenta:
- En la consola de la cuenta, haga clic en Recursos en la nube.
- Haz clic en la pestaña Red.
Creación de una nueva directiva de red
Haga clic en Crear nueva directiva de red.
Elija un modo de acceso a la red:
- acceso completo: acceso a Internet saliente sin restricciones. Si elige Acceso total, el acceso saliente a Internet permanece sin restricciones.
- acceso restringido: el acceso saliente está limitado a destinos especificados. Para obtener más información, consulte Introducción a la directiva de red.
Configuración de las directivas de red
En los pasos siguientes se describe la configuración opcional para el modo de acceso restringido.
Reglas de salida
La directiva admite automáticamente los destinos configurados a través de ubicaciones o conexiones del catálogo de Unity.
Para conceder acceso de proceso sin servidor a dominios adicionales, haga clic en Agregar destino encima de la lista Dominios permitidos.
El filtro FQDN permite el acceso a todos los dominios que comparten la misma dirección IP. El servicio de modelos aprovisionado en todos los puntos de conexión impide el acceso a Internet cuando el acceso a la red está establecido en restringido. Sin embargo, no se admite el control granular con filtrado FQDN.
Para permitir que el área de trabajo acceda a cuentas de almacenamiento de Azure adicionales, haga clic en el botón Agregar destino situado encima de la lista de cuentas de almacenamiento permitidas .
Nota:
El número máximo de destinos admitidos es 2000. Esto incluye todas las ubicaciones y conexiones del catálogo de Unity accesibles desde el área de trabajo, así como los destinos agregados explícitamente en la directiva.
Aplicación de directivas
El modo de solo registro permite probar la configuración de la directiva y supervisar las conexiones salientes sin interrumpir el acceso a los recursos. Cuando el modo de ejecución seca está habilitado, las solicitudes que infringen la directiva se registran pero no se bloquean. Puede seleccionar entre las siguientes opciones:
Databricks SQL: los almacenes de SQL de Databricks funcionan en modo de simulacro.
Modelo de servicio de IA: los puntos de conexión de modelo de servicio funcionan en modo de simulacro.
Todos los productos: todos los servicios de Azure Databricks funcionan en modo de ejecución seca, reemplazando todas las demás selecciones.
Actualización de la directiva predeterminada
Cada cuenta de Azure Databricks incluye una directiva predeterminada . La directiva predeterminada está asociada a todas las áreas de trabajo sin ninguna asignación de directiva de red explícita, incluidas las áreas de trabajo recién creadas. Puede modificar esta directiva, pero no se puede eliminar. Las directivas predeterminadas solo se aplican a las áreas de trabajo con al menos el nivel Premium.
Asociación de una directiva de red a áreas de trabajo
Si ha actualizado la directiva predeterminada con configuraciones adicionales, se aplican automáticamente a las áreas de trabajo que no tienen una directiva de red existente. El área de trabajo tendrá que estar en el nivel Premium.
Para asociar el área de trabajo a otra directiva, haga lo siguiente:
- Seleccione un área de trabajo.
- En Directiva de red, haga clic en Actualizar Directiva de red.
- Seleccione la directiva de red deseada en la lista.
Aplicación de cambios en la directiva de red
La mayoría de las actualizaciones de configuración de red se propagan automáticamente al proceso sin servidor en un plazo de diez minutos. Esto incluye:
- Agregar una nueva ubicación externa o conexión del catálogo de Unity.
- Adjuntar el área de trabajo a otro metastore.
- Cambiar el almacenamiento permitido o los destinos de Internet.
Nota:
Debe reiniciar el proceso si modifica el acceso a Internet o la configuración del modo de simulacro.
Reinicio o reimplementación de cargas de trabajo sin servidor
Solo tiene que actualizar al cambiar el modo de acceso a Internet o al actualizar el modo de ejecución seca.
Para determinar el procedimiento de reinicio adecuado, consulte la siguiente lista por producto:
- Servicio de ML de Databricks: vuelva a implementar el punto de conexión de servicio de ML. Vea Creación de puntos de conexión de servicio de modelos personalizados
- Delta Live Tables: detenga y reinicie la canalización de Delta Live Tables en ejecución. Consulte Ejecución de una actualización en una canalización de Delta Live Tables.
- Almacén SQL sin servidor: Detener y reiniciar el almacén SQL. Consulte Administración de un almacenamiento de SQL.
- Flujos de trabajo: los cambios de directiva de red se aplican automáticamente cuando se desencadena una nueva ejecución de trabajo o se reinicia una ejecución de trabajo existente.
- Cuadernos:
- Si el cuaderno no interactúa con Spark, puede finalizar y adjuntar un nuevo clúster sin servidor para actualizar la configuración de red aplicada al cuaderno.
- Si el cuaderno interactúa con Spark, el recurso sin servidor se actualiza y detecta automáticamente el cambio. Cambiar el modo de acceso y el modo de ejecución seca pueden tardar hasta 24 horas en aplicarse y otros cambios pueden tardar hasta 10 minutos en aplicarse.
Comprobación de la aplicación de directivas de red
Puede validar que la directiva de red se aplica correctamente intentando acceder a recursos restringidos de diferentes cargas de trabajo sin servidor. El proceso de validación varía en función del producto sin servidor.
Validación con delta Live Tables
- Cree un cuaderno de Python. Puede usar el cuaderno de ejemplo proporcionado en el tutorial de Python de Delta Live Tables.
- Cree una canalización de Delta Live Tables:
- Haga clic en Canalizaciones, bajo Ingeniería de datos, en la barra lateral del área de trabajo.
- Haga clic en Crear canalización.
- Configure la canalización con los valores siguientes:
- Modo de canalización: sin servidor
- Código fuente: seleccione el cuaderno que creó.
- Opciones de almacenamiento: Catálogo de Unity. Seleccione el catálogo y el esquema deseados.
- Haga clic en Crear.
- Ejecute la canalización de Delta Live Tables.
- En la página de canalización, haga clic en Iniciar.
- Espere a que se complete la canalización.
- Comprobación de los resultados
- Destino de confianza: la canalización debe ejecutarse correctamente y escribir datos en el destino.
- Destino que no es de confianza: la canalización debe producir errores que indican que el acceso a la red está bloqueado.
Validación con Databricks SQL
- Cree una instancia de SQL Warehouse. Para obtener instrucciones, consulte Creación de una instancia de SQL Warehouse.
- Ejecute una consulta de prueba en el editor de SQL que intente acceder a un recurso controlado por la directiva de red.
- Compruebe los resultados:
- Destino de confianza: la consulta debe realizarse correctamente.
- Destino que no es de confianza: la consulta debe producir un error de acceso a la red.
Validación con servicio de modelos
Creación de un modelo de prueba
- En un cuaderno de Python, cree un modelo que intente acceder a un recurso de Internet público, como descargar un archivo o realizar una solicitud de API.
- Ejecute este cuaderno para generar un modelo en el área de trabajo de prueba. Por ejemplo:
import mlflow import mlflow.pyfunc import mlflow.sklearn import requests class DummyModel(mlflow.pyfunc.PythonModel): def load_context(self, context): pass def predict(self, _, model_input): first_row = model_input.iloc[0] try: response = requests.get(first_row['host']) except requests.exceptions.RequestException as e: # Return the error details as text return f"Error: An error occurred - {e}" return [response.status_code] with mlflow.start_run(run_name='internet-access-model'): wrappedModel = DummyModel() mlflow.pyfunc.log_model(artifact_path="internet_access_ml_model", python_model=wrappedModel, registered_model_name="internet-http-access")
Creación de un punto de conexión de servicio
- En la navegación del área de trabajo, seleccione Machine Learning.
- Haga clic en la pestaña Servicio .
- Haga clic en Crear punto de conexión de servicio.
- Configure el punto de conexión con los valores siguientes:
- Nombre del punto de conexión de servicio: proporcione un nombre descriptivo.
- Detalles de la entidad: seleccione Modelo del registro de modelos.
- Modelo: elija el modelo que creó en el paso anterior.
- Haga clic en Confirmar.
- Espere a que el punto de conexión de servicio llegue al estado Listo .
Consulte el punto de conexión.
- Use la opción Punto de conexión de consulta dentro de la página de punto de conexión de servicio para enviar una solicitud de prueba.
{"dataframe_records": [{"host": "https://www.google.com"}]}
Compruebe el resultado:
- Acceso a Internet habilitado: la consulta debe realizarse correctamente.
- Acceso restringido a Internet: la consulta debe producir un error de acceso a la red.
Actualización de una directiva de red
Puede actualizar una directiva de red en cualquier momento después de crearla. Para actualizar una directiva de red:
- En la página de detalles de la directiva de red de la consola de cuentas, modifique la directiva:
- Cambie el modo de acceso a la red.
- Habilite o deshabilite el modo de ejecución seca para servicios específicos.
- Agregue o quite los destinos de almacenamiento o FQDN.
- Haga clic en Update(Actualizar).
- Consulte Aplicar cambios de directiva de red para comprobar que las actualizaciones se aplican a las cargas de trabajo existentes.
Comprobación de los registros de denegación
Los registros de denegación se almacenan en la system.access.outbound_network
tabla del catálogo de Unity. Estos registros realizan un seguimiento cuando se deniegan las solicitudes de red salientes. Para acceder a los registros de denegación de acceso, asegúrese de que el esquema de acceso está habilitado en el metastore del catálogo de Unity. Vea Habilitación de esquemas de tabla del sistema.
Use una consulta SQL como la siguiente para ver los eventos de denegación. Si se habilitan los registros de ejecución en seco, la consulta devuelve los registros de denegación y los registros de ejecución en seco, que puede distinguir mediante la columna access_type
. Los registros de denegación tienen un valor de DROP, mientras que los registros de simulacro muestran DRY_RUN_DENIAL.
En el ejemplo siguiente se recuperan los registros de las últimas 2 horas:
select * from system.access.outbound_network
where event_time >= current_timestamp() - interval 2 hour
sort by event_time desc
Las denegaciones no se registran en la tabla del sistema de salida de red al conectarse a modelos de IA generativos externos mediante mosaic AI Gateway. Vea Mosaic AI Gateway.
Nota:
Puede haber cierta latencia entre el tiempo de acceso y cuando aparezcan los registros de denegación.
Limitaciones
Configuración: esta función solo se puede configurar a través de la consola de la cuenta. La compatibilidad con api aún no está disponible.
Tamaño de carga de artefactos: al usar el sistema de archivos interno de Databricks de MLflow con el formato
dbfs:/databricks/mlflow-tracking/<experiment_id>/<run_id>/artifacts/<artifactPath>
, las cargas de artefactos se limitan a 5 GB paralog_artifact
,log_artifacts
, y las APIlog_model
.Conexiones de Catálogo de Unity Compatibles: Se admiten los siguientes tipos de conexión: MySQL, PostgreSQL, Snowflake, Redshift, Azure Synapse, SQL Server, Salesforce, BigQuery, Netsuite, Workday RaaS, Hive MetaStore y Salesforce Data Cloud.
Modelo de servicio: el control de salida no se aplica al construir imágenes para el modelo de servicio.
acceso a Azure Storage: Solo se admite el controlador del sistema de archivos Azure Blob para Azure Data Lake Storage. No se admite el acceso mediante el controlador de Azure Blob Storage o el controlador WASB.