Protección de un entorno de entrenamiento de Azure Machine Learning con redes virtuales

SE APLICA A: SDK de Python azure-ai-ml v2 (actual)

Sugerencia

Microsoft recomienda utilizar las redes virtuales administradas de Azure Machine Learning en lugar de los pasos de este artículo. Con una red virtual administrada, Azure Machine Learning se hace cargo del trabajo de aislamiento de red para el área de trabajo y los procesos administrados. También puede agregar puntos de conexión privados para los recursos necesarios para el área de trabajo, como la cuenta de Azure Storage. Para más información, consulte Aislamiento de red gestionada del área de trabajo.

La instancia de proceso de Azure Machine Learning, el proceso sin servidor y el clúster de proceso se pueden usar para entrenar modelos de forma segura en una instancia de Azure Virtual Network. Al planear el entorno, puede configurar la instancia de proceso o el clúster o el proceso sin servidor con o sin una dirección IP pública. Las diferencias generales entre las dos son:

  • Sin IP pública: reduce gastos al no tener los mismos requisitos de recursos de red. Mejora la seguridad al eliminar el requisito del tráfico de entrada procedente de internet. Pero deben hacerse cambios adicionales en la configuración para habilitar el acceso de salida a los recursos necesarios (Microsoft Entra ID, Azure Resource Manager, etc.).
  • IP pública: viene de manera predeterminada. Cuesta más debido a los recursos de red de Azure adicionales. Requiere comunicación de entrada desde el servicio Azure Machine Learning a través del internet público.

La siguiente tabla presenta las diferencias entre estas configuraciones:

Configuración Con IP pública Sin IP pública
Tráfico entrante AzureMachineLearning etiqueta de servicio. Ninguno
Tráfico saliente Puede acceder al internet público sin restricciones de manera predeterminada.
Puede restringir a qué accede mediante un grupo de seguridad de red o un firewall.
De manera predeterminada, puede acceder a la red pública mediante el acceso de salida predeterminado que proporciona Azure.
Se recomienda usar una puerta de enlace Virtual Network NAT o un firewall en su lugar si necesita enrutar el tráfico de salida a los recursos necesarios en Internet.
Recursos de red de Azure Dirección IP pública, equilibrador de carga, interfaz de red Ninguno

También puede usar Azure Databricks o HDInsight para entrenar modelos en una red virtual.

Importante

Los elementos marcados (versión preliminar) en este artículo se encuentran actualmente en versión preliminar pública. Se ofrece la versión preliminar sin Acuerdo de Nivel de Servicio y no se recomienda para cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas. Para más información, consulte Términos de uso complementarios de las Versiones Preliminares de Microsoft Azure.

Este artículo forma parte de una serie sobre la protección de un flujo de trabajo de Azure Machine Learning. Consulte los demás artículos de esta serie:

Para ver un tutorial sobre cómo crear un área de trabajo seguro, consulte Tutorial: Creación de un área de trabajo seguro o Tutorial: Creación de un área de trabajo seguro mediante una plantilla.

En este artículo aprenderá a proteger los siguientes recursos de proceso de entrenamiento en una red virtual:

  • Clúster de proceso de Azure Machine Learning
  • Instancia de proceso de Azure Machine Learning
  • Proceso sin servidor de Azure Machine Learning
  • Azure Databricks
  • Máquina virtual
  • Clúster de HDInsight

Requisitos previos

  • Lea el artículo Introducción a la seguridad de red para comprender los escenarios comunes de redes virtuales y la arquitectura de red virtual general.

  • Una red virtual y una subred existentes que se usarán con los recursos de proceso. Esta VNet debe ser parte de la misma suscripción que su área de trabajo de Azure Machine Learning.

    • Se recomienda colocar las cuentas de almacenamiento usadas por el área de trabajo y los trabajos de entrenamiento en la misma región de Azure que planea usar para instancias de proceso, proceso sin servidor y clústeres. Puede conllevar costes de transferencia de datos y una latencia de red mayor si no están en la misma región de Azure.
    • Asegúrese de que la comunicación WebSocket permita *.instances.azureml.net y *.instances.azureml.ms en su VNet. Jupyter usa WebSockets en las instancias de proceso.
  • Una subred existente en la red virtual. Esta subred se usa al crear instancias de proceso, clústeres y nodos para el proceso sin servidor.

    • Asegúrese de que la subred no está delegada a otros servicios de Azure.
    • Asegúrese de que la subred contiene suficientes direcciones IP libres. Cada instancia de proceso requiere una dirección IP. Cada nodo dentro de un clúster de proceso y cada nodo de proceso sin servidor requiere una dirección IP.
  • Si tiene su propio servidor DNS, recomendamos usar el reenvío DNS para resolver los nombres de dominio completos (FQDN) de las instancias y los clústeres de proceso. Para más información, consulte Uso de un DNS personalizado con Azure Machine Learning.

  • Para implementar recursos en una red virtual o subred, la cuenta de usuario debe tener permisos para realizar las siguientes acciones en los controles de acceso basados en roles de Azure (Azure RBAC):

    • "Microsoft.Network/*/read" en el recurso de red virtual. Este permiso no es necesario para las implementaciones de plantillas de Azure Resource Manager (ARM).
    • "Microsoft.Network/virtualNetworks/join/action" en el recurso de red virtual.
    • "Microsoft.Network/virtualNetworks/subnets/join/action" en el recurso de subred.

    Para obtener más información sobre Azure RBAC con redes, consulte los roles integrados de redes.

Limitaciones

  • Con Azure Lighthouse, no se admiten el clúster o la instancia de proceso y la implementación de proceso sin servidor en la red virtual.

  • El puerto 445 debe estar abierto para las comunicaciones de red privadas entre las instancias de proceso y la cuenta de almacenamiento predeterminada durante el entrenamiento. Por ejemplo, si los procesos están en una red virtual y la cuenta de almacenamiento está en otra, no bloquee el puerto 445 para la red virtual de la cuenta de almacenamiento.

Clúster de proceso en una red virtual o región diferente de la del área de trabajo

Importante

No se puede crear una instancia de proceso en región o red virtual diferente al área de trabajo, pero sí un clúster de proceso.

Tiene un par de opciones para crear un clúster de proceso en una instancia de Azure Virtual Network en una región diferente de la red virtual del área de trabajo. Ambas opciones permiten habilitar la comunicación entre las dos redes virtuales.

Importante

Independientemente del método seleccionado, también debe crear la red virtual para el clúster de proceso. Azure Machine Learning no la creará automáticamente.

Asimismo, debe permitir que la cuenta de almacenamiento predeterminada, Azure Container Registry y Azure Key Vault accedan a la red virtual para el clúster de proceso. Hay varias formas de conseguirlo. Por ejemplo, puede crear un punto de conexión privado para cada recurso de la red virtual del clúster de proceso o puede usar el emparejamiento de VNet para permitir que la red virtual del área de trabajo acceda a la red virtual del clúster de proceso.

Escenario: emparejamiento de VNet

  1. Configure el área de trabajo para que use una instancia de Azure Virtual Network. Para obtener más información, vea Protección de los recursos del área de trabajo.

  2. Cree un segundo Virtual Network de Azure que se usará para los clústeres de proceso. Puede estar en una región de Azure diferente a la que se usa para el área de trabajo.

  3. Configure el emparejamiento de red virtual entre las dos redes virtuales.

    Sugerencia

    Antes de continuar, espere a que el estado del emparejamiento de redes virtuales sea Conectado.

  4. Modifique la zona DNS privatelink.api.azureml.ms para agregar un vínculo a la red virtual para el clúster de proceso. El área de trabajo de Azure Machine Learning crea esta zona al usar un punto de conexión privado para participar en una red virtual.

    1. Agregue un nuevo vínculo de red virtual a la zona DNS privada. Puede hacerlo de varias maneras:

      • En Azure Portal, vaya a la zona DNS y seleccione Vínculos de red virtual. A continuación, seleccione + Agregar y la red virtual que creó para los clústeres de proceso.
      • Desde la CLI de Azure use el comando az network private-dns link vnet create. Para más información, consulte az network private-dns link vnet create.
      • En Azure PowerShell, use el comando New-AzPrivateDnsVirtualNetworkLink. Para más información, consulte New-AzPrivateDnsVirtualNetworkLink.
  5. Repita el paso anterior y los subprocesos para la zona DNS privatelink.notebooks.azure.net.

  6. Configure los siguientes recursos de Azure para permitir el acceso desde ambas redes virtuales.

    • Cuenta de almacenamiento predeterminada para el área de trabajo.
    • Instancia de Azure Container Registry para el área de trabajo.
    • Azure Key Vault para el área de trabajo.

    Sugerencia

    Hay varias maneras de configurar estos servicios para permitir el acceso a las redes virtuales. Por ejemplo, puede crear un punto de conexión privado para cada recurso de ambas redes virtuales. O puede configurar los recursos de Azure para permitir el acceso desde ambas redes virtuales.

  7. Cree un clúster de proceso como lo haría normalmente al usar una red virtual, pero seleccione la red virtual que creó para el clúster de proceso. Si la red virtual está en otra región, seleccione esa región al crear el clúster de proceso.

    Advertencia

    Al configurar la región, si es una región diferente a la del área de trabajo o a la de los almacenes de datos, puede experimentar un aumento en la latencia de red y en los costes de transferencia de datos. La latencia y los costos pueden producirse al crear el clúster y al ejecutar trabajos en él.

Escenario: punto de conexión privado

  1. Configure el área de trabajo para que use una instancia de Azure Virtual Network. Para obtener más información, vea Protección de los recursos del área de trabajo.

  2. Cree un segundo Virtual Network de Azure que se usará para los clústeres de proceso. Puede estar en una región de Azure diferente a la que se usa para el área de trabajo.

  3. Cree un nuevo punto de conexión privado para el área de trabajo en la red virtual que contendrá el clúster de proceso.

    • Para agregar un nuevo punto de conexión privado mediante Azure Portal, seleccione el área de trabajo y, a continuación, seleccione Redes. Seleccione Conexiones de punto de conexión privado, + Punto de conexión privado y use los campos para crear un nuevo punto de conexión privado.

      • Al seleccionar la Región, seleccione la misma región que la red virtual.
      • Al seleccionar Tipo de recurso, use Microsoft.MachineLearningServices/workspaces.
      • Establezca Recurso en el nombre del área de trabajo.
      • Establezca la red virtual y la subred en la red virtual y la subred que creó para los clústeres de proceso.

      Por último, seleccione Crear para crear el punto de conexión privado.

    • Para agregar un nuevo punto de conexión privado mediante la CLI de Azure, use az network private-endpoint create. Para ver un ejemplo de uso de este comando, consulte Configuración de un punto de conexión privado para el área de trabajo de Azure Machine Learning.

  4. Cree un clúster de proceso como lo haría normalmente al usar una red virtual, pero seleccione la red virtual que creó para el clúster de proceso. Si la red virtual está en otra región, seleccione esa región al crear el clúster de proceso.

    Advertencia

    Al configurar la región, si es una región diferente a la del área de trabajo o a la de los almacenes de datos, puede experimentar un aumento en la latencia de red y en los costes de transferencia de datos. La latencia y los costos pueden producirse al crear el clúster y al ejecutar trabajos en él.

Instancia o clúster de proceso o proceso sin servidor sin dirección IP pública

Advertencia

Esta información solo es válida cuando se usa Virtual Network de Azure. Si usa una red virtual administrada, consulte Administrar proceso con una red administrada.

Importante

Si ha estado usando instancias de proceso o clústeres de proceso configurados para no tener una IP pública sin participar en la versión preliminar, necesitará eliminarlos y volver a crearlos después del 20 de enero de 2023, cuando la característica esté disponible de forma general.

Si estuvo usando la versión preliminar de ninguna IP pública, quizá necesite modificar qué tráfico de entrada y de salida permite, ya que los requisitos han cambiado para la versión con disponibilidad general:

  • Requisitos de salida: dos salientes más que solo se usan para la administración de las instancias y los clústeres de proceso. Microsoft posee el destino de estas etiquetas de servicio:
    • Etiqueta de servicio AzureMachineLearning en el puerto UDP 5831.
    • Etiqueta de servicio BatchNodeManagement en el puerto TCP 443.

Las siguientes configuraciones son adicionales a las indicadas en la sección Requisitos previos y son específicas para la creación de instancias o clústeres de proceso configurados para no tener IP pública. También se aplican al proceso sin servidor:

  • Debe usar un punto de conexión privado del área de trabajo para que el recurso de proceso se comunique con los servicios de Azure Machine Learning desde la red virtual. Para obtener más información, consulte Configuración de un punto de conexión privado para un área de trabajo de Azure Machine Learning.

  • En su VNet, permita el tráfico de salida a estas etiquetas de servicio o nombres de dominio completo (FQDN):

    Etiqueta de servicio Protocolo Port Notas
    AzureMachineLearning TCP
    UDP
    443/8787/18881
    5831
    Comunicación con el servicio de Azure Machine Learning.
    BatchNodeManagement.<region> ANY 443 Reemplace <region> por la región de Azure que contiene su área de trabajo de Azure Machine Learning. Comunicación con Azure Batch. La instancia de proceso y el clúster de proceso se implementan con el servicio de Azure Batch.
    Storage.<region> TCP 443 Reemplace <region> por la región de Azure que contiene su área de trabajo de Azure Machine Learning. Esta etiqueta de servicio se usa para comunicarse con la cuenta de Azure Storage que Azure Batch usa.

    Importante

    El acceso de salida a Storage.<region> podría usarse potencialmente para filtrar datos de su área de trabajo. Puede mitigar esta vulnerabilidad mediante una directiva de punto de conexión de servicio. Para obtener más información, consulte el artículo Prevención de filtración de datos de Azure Machine Learning.

    FQDN Protocolo Port Notas
    <region>.tundra.azureml.ms UDP 5831 Reemplace <region> por la región de Azure que contiene su área de trabajo de Azure Machine Learning.
    graph.windows.net TCP 443 Comunicación con la API de Microsoft Graph.
    *.instances.azureml.ms TCP 443/8787/18881 Comunicación con Azure Machine Learning.
    *.<region>.batch.azure.com ANY 443 Reemplace <region> por la región de Azure que contiene su área de trabajo de Azure Machine Learning. Comunicación con Azure Batch.
    *.<region>.service.batch.azure.com ANY 443 Reemplace <region> por la región de Azure que contiene su área de trabajo de Azure Machine Learning. Comunicación con Azure Batch.
    *.blob.core.windows.net TCP 443 Comunicación con almacenamiento de blobs de Azure.
    *.queue.core.windows.net TCP 443 Comunicación con el almacenamiento de Azure Queue.
    *.table.core.windows.net TCP 443 Comunicación con Azure Table Storage.
  • De manera predeterminada, una instancia de proceso o un clúster que no está configurado para ninguna dirección IP pública no tiene acceso de salida a Internet. Si puede acceder a Internet desde él, se debe al acceso de salida predeterminado de Azure y a que tiene un grupo de seguridad de red que permite la salida a Internet. Pero no se recomienda usar el acceso de salida predeterminado. Si necesita acceso de salida a Internet, en lugar de eso se recomienda usar un firewall y reglas de salida, o bien una puerta de enlace NAT y grupos de servicios de red para permitir el tráfico de salida.

    Para más información sobre el tráfico de salida que Azure Machine Learning usa, consulte los siguientes artículos:

    Para obtener más información sobre las etiquetas de servicio que se pueden usar con Azure Firewall, consulte el artículo Etiquetas de servicio de red virtual.

Use la siguiente información para crear una instancia o un clúster de proceso sin una dirección IP pública:

Reemplace los siguientes valores en el comando az ml compute create:

  • rg: el grupo de recursos donde se creará el recurso.
  • ws: el nombre del área de trabajo de Azure Machine Learning.
  • yourvnet: la red virtual de Azure.
  • yoursubnet: la subred que usar para el proceso.
  • AmlCompute o ComputeInstance: se crea un clúster de proceso al especificar AmlCompute. ComputeInstance crea una instancia de proceso.
# create a compute cluster with no public IP
az ml compute create --name cpu-cluster --resource-group rg --workspace-name ws --vnet-name yourvnet --subnet yoursubnet --type AmlCompute --set enable_node_public_ip=False

# create a compute instance with no public IP
az ml compute create --name myci --resource-group rg --workspace-name ws --vnet-name yourvnet --subnet yoursubnet --type ComputeInstance --set enable_node_public_ip=False

Use la siguiente información para configurar nodos de proceso sin servidor sin dirección IP pública en la red virtual para un área de trabajo determinada:

Creación de un área de trabajo:

az ml workspace create -n <workspace-name> -g <resource-group-name> --file serverlesscomputevnetsettings.yml
name: testserverlesswithnpip
location: eastus
public_network_access: Disabled
serverless_compute:
  custom_subnet: /subscriptions/<sub id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<vnet name>/subnets/<subnet name>
  no_public_ip: true

Actualizar el área de trabajo:

az ml workspace update -n <workspace-name> -g <resource-group-name> --file serverlesscomputevnetsettings.yml
serverless_compute:
  custom_subnet: /subscriptions/<sub id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<vnet name>/subnets/<subnet name>
  no_public_ip: true

Instancia o clúster de proceso o proceso sin servidor con dirección IP pública

Importante

Esta información solo es válida cuando se usa Virtual Network de Azure. Si usa una red virtual administrada, consulte Administrar proceso con una red administrada.

Las siguientes configuraciones son adicionales a las enumeradas en la sección Requisitos previos y son específicas para la creación de instancias o clústeres de proceso que tienen una IP pública. También se aplican al proceso sin servidor:

  • Si pone múltiples instancias o clústeres de proceso en una red virtual, podría necesitar una subida de cuota para uno o más de sus recursos. El clúster o la instancia de proceso de Machine Learning asigna automáticamente recursos de red al grupo de recursos que contiene la red virtual. Para cada clúster o instancia de proceso, el servicio asigna los recursos siguientes:

    • Un grupo de seguridad de red (NSG) se genera automáticamente. Este NSG permite el tráfico TCP de entrada en el puerto 44224 proveniente de la etiqueta de servicio AzureMachineLearning.

      Importante

      La instancia de proceso y el clúster de proceso crean automáticamente un grupo de seguridad de red con las reglas necesarias.

      Si tiene otro grupo de seguridad de red en el nivel de subred, las reglas del grupo de seguridad de red de nivel de subred no deben entrar en conflicto con las reglas del grupo de seguridad de red creado automáticamente.

      Para obtener información sobre cómo los grupos de seguridad de red filtran el tráfico de red, consulte Cómo filtran el tráfico de red los grupos de seguridad de red.

    • Un equilibrador de carga

    En el caso de los clústeres de proceso, estos recursos se eliminan cada vez que se reduce el clúster verticalmente hasta 0 nodos y se crean al escalar verticalmente.

    En el caso de una instancia de proceso, estos recursos se mantienen hasta que se elimina la instancia. Detener la instancia no hace que se quiten los recursos.

    Importante

    Estos recursos están limitados por las cuotas de recursos de la suscripción. Si el grupo de recursos de red virtual está bloqueado, se producirá un error en la eliminación de la instancia o el clúster de proceso. No se puede eliminar el equilibrador de carga hasta que se elimine la instancia o el clúster de proceso. Asegúrese también de que no haya ninguna asignación de Azure Policy que prohíba la creación de grupos de seguridad de red.

  • En su VNet, permita el tráfico TCP de entrada en el puerto 44224 proveniente de la etiqueta de servicio AzureMachineLearning.

    Importante

    Al clúster o a la instancia de proceso se le asigna dinámicamente una dirección IP en el momento de su creación. No puede asignarlo estáticamente a su firewall ya que la dirección es desconocida antes de crearse y el acceso de entrada es una parte necesaria del proceso de creación. No obstante, debe crear una ruta definida por el usuario si usa un firewall con la VNet para permitir este tráfico de entrada.

  • En su VNet, permita el tráfico de salida para las siguientes etiquetas de servicio:

    Etiqueta de servicio Protocolo Port Notas
    AzureMachineLearning TCP
    UDP
    443/8787/18881
    5831
    Comunicación con el servicio de Azure Machine Learning.
    BatchNodeManagement.<region> ANY 443 Reemplace <region> por la región de Azure que contiene su área de trabajo de Azure Machine Learning. Comunicación con Azure Batch. La instancia de proceso y el clúster de proceso se implementan con el servicio de Azure Batch.
    Storage.<region> TCP 443 Reemplace <region> por la región de Azure que contiene su área de trabajo de Azure Machine Learning. Esta etiqueta de servicio se usa para comunicarse con la cuenta de Azure Storage que Azure Batch usa.

    Importante

    El acceso de salida a Storage.<region> podría usarse potencialmente para filtrar datos de su área de trabajo. Puede mitigar esta vulnerabilidad mediante una directiva de punto de conexión de servicio. Para obtener más información, consulte el artículo Prevención de filtración de datos de Azure Machine Learning.

    FQDN Protocolo Port Notas
    <region>.tundra.azureml.ms UDP 5831 Reemplace <region> por la región de Azure que contiene su área de trabajo de Azure Machine Learning.
    graph.windows.net TCP 443 Comunicación con la API de Microsoft Graph.
    *.instances.azureml.ms TCP 443/8787/18881 Comunicación con Azure Machine Learning.
    *.<region>.batch.azure.com ANY 443 Reemplace <region> por la región de Azure que contiene su área de trabajo de Azure Machine Learning. Comunicación con Azure Batch.
    *.<region>.service.batch.azure.com ANY 443 Reemplace <region> por la región de Azure que contiene su área de trabajo de Azure Machine Learning. Comunicación con Azure Batch.
    *.blob.core.windows.net TCP 443 Comunicación con almacenamiento de blobs de Azure.
    *.queue.core.windows.net TCP 443 Comunicación con el almacenamiento de Azure Queue.
    *.table.core.windows.net TCP 443 Comunicación con el almacenamiento de Azure Table.

Use la siguiente información para crear una instancia o un clúster de proceso con una dirección IP pública en la VNet:

Reemplace los siguientes valores en el comando az ml compute create:

  • rg: el grupo de recursos donde se creará el recurso.
  • ws: el nombre del área de trabajo de Azure Machine Learning.
  • yourvnet: la red virtual de Azure.
  • yoursubnet: la subred que usar para el proceso.
  • AmlCompute o ComputeInstance: se crea un clúster de proceso al especificar AmlCompute. ComputeInstance crea una instancia de proceso.
# create a compute cluster with a public IP
az ml compute create --name cpu-cluster --resource-group rg --workspace-name ws --vnet-name yourvnet --subnet yoursubnet --type AmlCompute

# create a compute instance with a public IP
az ml compute create --name myci --resource-group rg --workspace-name ws --vnet-name yourvnet --subnet yoursubnet --type ComputeInstance

Use la siguiente información para configurar nodos de proceso sin servidor con una dirección IP pública en la red virtual para un área de trabajo determinada:

Creación de un área de trabajo:

az ml workspace create -n <workspace-name> -g <resource-group-name> --file serverlesscomputevnetsettings.yml
name: testserverlesswithvnet
location: eastus
serverless_compute:
  custom_subnet: /subscriptions/<sub id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<vnet name>/subnets/<subnet name>
  no_public_ip: false

Actualizar el área de trabajo:

az ml workspace update -n <workspace-name> -g <resource-group-name> --file serverlesscomputevnetsettings.yml
serverless_compute:
  custom_subnet: /subscriptions/<sub id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<vnet name>/subnets/<subnet name>
  no_public_ip: false

Azure Databricks

  • La red virtual debe estar en la misma suscripción y región que el área de trabajo de Azure Machine Learning.
  • Si las cuentas de Azure Storage del área de trabajo también están protegidas en una red virtual, deben estar en la misma red virtual que el clúster de proceso de Azure Databricks.
  • Además de las subredes databricks-private y databricks-public utilizadas por Azure Databricks, también se requiere la subred predeterminada creada para la red virtual.
  • Azure Databricks no usa un punto de conexión privado para comunicarse con la red virtual.

Para obtener información específica sobre el uso de Azure Databricks con una red virtual, consulte Implementar Azure Databricks en su red virtual de Azure.

Máquina virtual o clúster de HDInsight

En esta sección aprenderá a usar una máquina virtual o un clúster de Azure HDInsight en una red virtual con su área de trabajo.

Creación de la máquina virtual o el clúster de HDInsight

Importante

Azure Machine Learning solo admite máquinas virtuales que ejecuten Ubuntu.

Cree una máquina virtual o un clúster de HDInsight mediante Azure Portal o la CLI de Azure y colóquelo en una red virtual de Azure. Para más información, consulte los siguientes artículos.

Configuración de los puertos de red

Permita que Azure Machine Learning se comunique con el puerto SSH en la máquina virtual o el clúster y configure una entrada de origen para el grupo de seguridad de red. El puerto SSH suele ser el 22. Para permitir el tráfico desde este origen, realice las acciones siguientes:

  1. En la lista desplegable Origen, seleccione Etiqueta de servicio.

  2. En la lista desplegable Etiqueta de servicio de origen , seleccione AzureMachineLearning.

    Captura de pantalla de reglas de entrada para realizar experimentación en una máquina virtual o un clúster de HDInsight dentro de una red virtual.

  3. En la lista desplegable Intervalos de puertos de origen, seleccione *.

  4. En la lista desplegable Destino, seleccione Cualquiera.

  5. En la lista desplegable Intervalos de puertos de destino, seleccione 22.

  6. En Protocolo, seleccione Cualquiera.

  7. En Acción, seleccione Permitir.

Conserve las reglas de salida predeterminadas para el grupo de seguridad de red. Para más información, consulte las reglas de seguridad predeterminadas en Grupos de seguridad.

Si no quiere usar las reglas de salida predeterminadas y quiere limitar el acceso de salida de la red virtual, vea la sección Acceso obligatorio a una red de Internet pública.

Conexión de la máquina virtual o el clúster de HDInsight

Conecte el clúster de HDInsight o de máquina virtual a su área de trabajo de Azure Machine Learning. Para obtener más información, consulte Administración de recursos de proceso para el entrenamiento y la implementación de modelos en Studio.

Acceso a internet público necesario para entrenar modelos

Importante

Las secciones anteriores de este artículo muestran las configuraciones necesarias para crear recursos de procesos. Esta sección muestra la información de configuración necesaria para usar estos recursos para entrenar modelos.

Azure Machine Learning requiere acceso entrante y saliente a la red pública de Internet. En las tablas siguientes se proporciona información general sobre el acceso necesario y para qué sirve. En el caso de las etiquetas de servicio que terminan en .region, reemplace region por la región de Azure que contiene el área de trabajo. Por ejemplo, Storage.westus:

Sugerencia

En la pestaña requerida se enumera la configuración necesaria de entrada y de salida. La pestaña situacional muestra configuraciones opcionales de entrada y de salida que necesitan algunas configuraciones específicas que quizás quiera habilitar.

Dirección Protocolo y
ports
Etiqueta de servicio Propósito
Salida TCP: 80, 443 AzureActiveDirectory Autenticación mediante Microsoft Entra ID.
Salida TCP: 443, 18881
UDP: 5831
AzureMachineLearning Usar los servicios de Azure Machine Learning.
IntelliSense de Python en cuadernos usa el puerto 18881.
La creación, actualización y eliminación de una instancia de proceso de Azure Machine Learning usa el puerto 5831.
Salida ANY: 443 BatchNodeManagement.region Comunicación con el back-end de Azure Batch para las instancias o clústeres de proceso de Azure Machine Learning.
Salida TCP: 443 AzureResourceManager Creación de recursos de Azure con Azure Machine Learning, CLI de Azure y el SDK de Azure Machine Learning.
Salida TCP: 443 Storage.region Acceda a los datos almacenados en la cuenta de Azure Storage para el clúster de proceso y la instancia de proceso. Para obtener información sobre cómo evitar la filtración de datos en esta salida, consulte Protección contra la filtración de datos.
Salida TCP: 443 AzureFrontDoor.FrontEnd
* No es necesario en Microsoft Azure operado por 21Vianet.
Establecer un punto de entrada global para Estudio de Azure Machine Learning. Almacene imágenes y entornos para AutoML. Para obtener información sobre cómo evitar la filtración de datos en esta salida, consulte Protección contra la filtración de datos.
Salida TCP: 443 MicrosoftContainerRegistry.region
Sepa que esta etiqueta tiene una dependencia en la etiqueta AzureFrontDoor.FirstParty
Acceder a las imágenes de Docker proporcionadas por Microsoft. Configurar el enrutador de Azure Machine Learning para Azure Kubernetes Service.

Sugerencia

Si necesita las direcciones IP, en lugar de etiquetas de servicio, use una de las siguientes opciones:

Las direcciones IP pueden cambiar periódicamente.

También es posible que tenga que permitir el tráfico saliente a Visual Studio Code y a sitios que no son de Microsoft para la instalación de los paquetes requeridos por el proyecto de aprendizaje automático. En la tabla siguiente se enumeran los repositorios usados habitualmente para el aprendizaje automático:

Nombre de host Propósito
anaconda.com
*.anaconda.com
Se usa para instalar paquetes predeterminados.
*.anaconda.org Se usa para obtener datos del repositorio.
pypi.org Se usa para enumerar las dependencias del índice predeterminado, si hay alguna, y el índice no se sobrescribe con la configuración del usuario. Si el índice se sobrescribe, también debe permitir *.pythonhosted.org.
cloud.r-project.org Se usar al instalar paquetes CRAN para el desarrollo en R.
*.pytorch.org Se usa en algunos ejemplos basados en PyTorch.
*.tensorflow.org Se usa en algunos ejemplos basados en TensorFlow.
code.visualstudio.com Necesario para descargar e instalar el escritorio de Visual Studio Code. Esto no es necesario para la versión web de Visual Studio Code.
update.code.visualstudio.com
*.vo.msecnd.net
Se usa para recuperar bits de servidor de Visual Studio Code que se instalan en la instancia de proceso por medio de un script de instalación.
marketplace.visualstudio.com
vscode.blob.core.windows.net
*.gallerycdn.vsassets.io
Necesario para descargar e instalar extensiones de Visual Studio Code. Estos hosts habilitan la conexión remota con instancias de proceso proporcionadas mediante la extensión de Azure Machine Learning para Visual Studio Code. Para más información, consulte Conexión a una instancia de proceso de Azure Machine Learning en Visual Studio Code.
raw.githubusercontent.com/microsoft/vscode-tools-for-ai/master/azureml_remote_websocket_server/* Se usa para recuperar bits de servidor de WebSocket que se instalan en la instancia de proceso. El servidor de WebSocket se usa para transmitir solicitudes desde el cliente de Visual Studio Code (aplicación de escritorio) al servidor de Visual Studio Code que se ejecuta en la instancia de proceso.

Nota

Al usar la extensión de VS Code de Azure Machine Learning, la instancia de proceso remota requerirá un acceso a los repositorios públicos para instalar los paquetes requeridos por la extensión. Si la instancia de proceso requiere un proxy para acceder a estos repositorios públicos o a Internet, deberá establecer y exportar las variables de entorno HTTP_PROXY y HTTPS_PROXY en el archivo ~/.bashrc de la instancia de proceso. Este proceso se puede automatizar en el momento del aprovisionamiento mediante un script personalizado.

Al usar Azure Kubernetes Service (AKS) con Azure Machine Learning, habilite el tráfico siguiente a la red virtual de AKS:

Para obtener información sobre el uso de una solución de firewall, vea Uso de un firewall con Azure Machine Learning.

Pasos siguientes

Este artículo forma parte de una serie sobre la protección de un flujo de trabajo de Azure Machine Learning. Consulte los demás artículos de esta serie: