Configuración de un punto de conexión privado para un área de trabajo de Azure Machine Learning

SE APLICA A:Extensión de ML de la CLI de Azure v2 (actual)

En este documento, aprenderá a configurar un punto de conexión privado para el área de trabajo de Azure Machine Learning. Para obtener más información sobre la creación de una red virtual para Azure Machine Learning, consulte Información general sobre la privacidad y el aislamiento de la red virtual.

Azure Private Link le permite conectarse a su área de trabajo mediante un punto de conexión privado. El punto de conexión privado es un conjunto de direcciones IP privadas dentro de la red virtual. Después, puede limitar el acceso al área de trabajo para que solo se produzca en las direcciones IP privadas. Un punto de conexión privado ayuda a reducir el riesgo de una filtración de datos. Para más información sobre los puntos de conexión privados, consulte el artículo Azure Private Link.

Advertencia

La protección de un área de trabajo con puntos de conexión privados no garantiza la seguridad de un extremo a otro por sí misma. Debe proteger todos los componentes individuales de la solución. Por ejemplo, si usa un punto de conexión privado para el área de trabajo, pero la cuenta de Azure Storage no está detrás de la red virtual, el tráfico entre el área de trabajo y el almacenamiento no usa la red virtual por motivos de seguridad.

Para obtener más información sobre cómo proteger los recursos usados por Azure Machine Learning, consulte los artículos siguientes:

Prerrequisitos

  • Debe tener una red virtual existente en la cual crear el punto de conexión privado.

    Advertencia

    No use el intervalo de direcciones IP 172.17.0.0/16 para la red virtual. Este es el intervalo de subred predeterminado que usa la red de puente de Docker y producirá errores si se usa para la red virtual. Otros intervalos también pueden estar en conflicto en función de lo que quiera conectarse a la red virtual. Por ejemplo, si planea conectar la red local a la red virtual y la red local también usa el intervalo 172.16.0.0/16. En última instancia, el usuario es el responsable de planear la infraestructura de red.

  • Deshabilitar las directivas de red para los puntos de conexión privados antes de agregar el punto de conexión privado.

Limitaciones

  • Si habilita el acceso público para un área de trabajo protegida mediante un punto de conexión privado y usa Estudio de Azure Machine Learning a través de la red pública de Internet, es posible que algunas características como el diseñador no tengan acceso a sus datos. Este problema se produce cuando los datos se almacenan en un servicio protegido detrás de la red virtual. Por ejemplo, una cuenta de Azure Storage.

  • Si usa Mozilla Firefox, puede encontrar problemas al intentar acceder al punto de conexión privado del área de trabajo. Este problema puede estar relacionado con DNS a través de HTTPS en Mozilla Firefox. Se recomienda el uso de Microsoft Edge o Google Chrome.

  • El uso de un punto de conexión privado no afecta al plano de control de Azure (operaciones de administración), como la eliminación del área de trabajo o la administración de los recursos de proceso. Por ejemplo, crear, actualizar o eliminar un destino de proceso. Estas operaciones se realizan sobre la red pública de Internet como de costumbre. Las operaciones del plano de datos, como el uso de Azure Machine Learning Studio, las API (incluidas las canalizaciones publicadas) o el SDK usan el punto de conexión privado.

  • Al crear una instancia de proceso o un clúster de proceso en un área de trabajo con un punto de conexión privado, la instancia de proceso y el clúster de proceso deben estar en la misma región de Azure que el área de trabajo.

  • Al crear o adjuntar un clúster de Azure Kubernetes Service a un área de trabajo con un punto de conexión privado, el clúster debe estar en la misma región que el área de trabajo.

  • Al usar un área de trabajo con varios puntos de conexión privados, uno de los puntos de conexión privados debe estar en la misma red virtual que los siguientes servicios de dependencia:

    • Cuenta de Azure Storage que proporciona el almacenamiento predeterminado para el área de trabajo
    • Azure Key Vault para el área de trabajo
    • Azure Container Registry para el área de trabajo.

    Por ejemplo, una red virtual (red virtual "services") contendrá un punto de conexión privado para los servicios de dependencia y el área de trabajo. Esta configuración permite que el área de trabajo se comunique con los servicios. Otra red virtual ("clientes") solo puede contener un punto de conexión privado para el área de trabajo y usarse solo para la comunicación entre las máquinas de desarrollo de cliente y el área de trabajo.

Creación de un área de trabajo que usa un punto de conexión privado

Siga uno de los métodos a continuación para crear un área de trabajo con un punto de conexión privado. Cada uno de estos métodos requiere una red virtual existente:

Sugerencia

Si quiere crear un área de trabajo, un punto de conexión privado y una red virtual al mismo tiempo, consulte Uso de una plantilla de Azure Resource Manager para crear un área de trabajo para Azure Machine Learning.

SE APLICA A:Extensión de ML de la CLI de Azure v2 (actual)

Cuando se usa la extensión 2.0 de la CLI para el aprendizaje automático de la CLI de Azure, se usa un documento YAML para configurar el área de trabajo. A continuación, se muestra un ejemplo de creación de un área de trabajo mediante una configuración de YAML:

Sugerencia

Cuando se usa Private Link, el área de trabajo no puede usar proceso de tareas de Azure Container Registry para la creación de imágenes. La propiedad image_build_compute de esta configuración especifica un nombre de clúster de proceso de CPU que se usará para la creación del entorno de imagen de Docker. También puede especificar si el área de trabajo de Private Link debe ser accesible mediante Internet con la propiedad public_network_access.

En este ejemplo, el proceso al que image_build_compute hace referencia deberá crearse antes de compilar imágenes.

$schema: https://azuremlschemas.azureedge.net/latest/workspace.schema.json
name: mlw-privatelink-prod
location: eastus
display_name: Private Link endpoint workspace-example
description: When using private link, you must set the image_build_compute property to a cluster name to use for Docker image environment building. You can also specify whether the workspace should be accessible over the internet.
image_build_compute: cpu-compute
public_network_access: Disabled
tags:
  purpose: demonstration
az ml workspace create \
    -g <resource-group-name> \
    --file privatelink.yml

Después de crear el área de trabajo, use los comandos de la CLI de redes de Azure para crear un punto de conexión de Private Link para el área de trabajo.

az network private-endpoint create \
    --name <private-endpoint-name> \
    --vnet-name <vnet-name> \
    --subnet <subnet-name> \
    --private-connection-resource-id "/subscriptions/<subscription>/resourceGroups/<resource-group-name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace-name>" \
    --group-id amlworkspace \
    --connection-name workspace -l <location>

Para crear las entradas de la zona DNS privada para el área de trabajo, use los siguientes comandos:

# Add privatelink.api.azureml.ms
az network private-dns zone create \
    -g <resource-group-name> \
    --name privatelink.api.azureml.ms

az network private-dns link vnet create \
    -g <resource-group-name> \
    --zone-name privatelink.api.azureml.ms \
    --name <link-name> \
    --virtual-network <vnet-name> \
    --registration-enabled false

az network private-endpoint dns-zone-group create \
    -g <resource-group-name> \
    --endpoint-name <private-endpoint-name> \
    --name myzonegroup \
    --private-dns-zone privatelink.api.azureml.ms \
    --zone-name privatelink.api.azureml.ms

# Add privatelink.notebooks.azure.net
az network private-dns zone create \
    -g <resource-group-name> \
    --name privatelink.notebooks.azure.net

az network private-dns link vnet create \
    -g <resource-group-name> \
    --zone-name privatelink.notebooks.azure.net \
    --name <link-name> \
    --virtual-network <vnet-name> \
    --registration-enabled false

az network private-endpoint dns-zone-group add \
    -g <resource-group-name> \
    --endpoint-name <private-endpoint-name> \
    --name myzonegroup \
    --private-dns-zone privatelink.notebooks.azure.net \
    --zone-name privatelink.notebooks.azure.net

Adición de un punto de conexión privado a un área de trabajo

Siga uno de los métodos a continuación para agregar un punto de conexión privado a un área de trabajo existente:

Advertencia

Si tiene destinos de proceso existentes asociados a esta área de trabajo y no están detrás de la misma red virtual en la que se crea el punto de conexión privado, no funcionarán.

SE APLICA A:Extensión de ML de la CLI de Azure v2 (actual)

Al usar la extensión 2.0 de la CLI para el aprendizaje automático de la CLI de Azure, use los comandos de la CLI de redes de Azure para crear un punto de conexión de vínculo privado para el área de trabajo.

az network private-endpoint create \
    --name <private-endpoint-name> \
    --vnet-name <vnet-name> \
    --subnet <subnet-name> \
    --private-connection-resource-id "/subscriptions/<subscription>/resourceGroups/<resource-group-name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace-name>" \
    --group-id amlworkspace \
    --connection-name workspace -l <location>

Para crear las entradas de la zona DNS privada para el área de trabajo, use los siguientes comandos:

# Add privatelink.api.azureml.ms
az network private-dns zone create \
    -g <resource-group-name> \
    --name 'privatelink.api.azureml.ms'

az network private-dns link vnet create \
    -g <resource-group-name> \
    --zone-name 'privatelink.api.azureml.ms' \
    --name <link-name> \
    --virtual-network <vnet-name> \
    --registration-enabled false

az network private-endpoint dns-zone-group create \
    -g <resource-group-name> \
    --endpoint-name <private-endpoint-name> \
    --name myzonegroup \
    --private-dns-zone 'privatelink.api.azureml.ms' \
    --zone-name 'privatelink.api.azureml.ms'

# Add privatelink.notebooks.azure.net
az network private-dns zone create \
    -g <resource-group-name> \
    --name 'privatelink.notebooks.azure.net'

az network private-dns link vnet create \
    -g <resource-group-name> \
    --zone-name 'privatelink.notebooks.azure.net' \
    --name <link-name> \
    --virtual-network <vnet-name> \
    --registration-enabled false

az network private-endpoint dns-zone-group add \
    -g <resource-group-name> \
    --endpoint-name <private-endpoint-name> \
    --name myzonegroup \
    --private-dns-zone 'privatelink.notebooks.azure.net' \
    --zone-name 'privatelink.notebooks.azure.net'

Eliminación de un punto de conexión privado

Puede quitar uno o todos los puntos de conexión privados de un área de trabajo. Al quitar un punto de conexión privado, se quita el área de trabajo de la red virtual a la que estaba asociado el punto de conexión. Quitar el punto de conexión privado puede impedir que el área de trabajo acceda a los recursos de esa red virtual o que los recursos de la red virtual accedan al área de trabajo. Por ejemplo, si la red virtual no permite el acceso a la red pública de Internet o desde ahí.

Advertencia

Quitar los puntos de conexión privados de un área de trabajo no hace que sea accesible públicamente. Para que el área de trabajo sea accesible públicamente, siga los pasos de la sección Habilitar el acceso público.

Para quitar un punto de conexión privado, use la siguiente información:

SE APLICA A:Extensión de ML de la CLI de Azure v2 (actual)

Al usar la extensión 2.0 de la CLI para aprendizaje automático de la CLI de Azure, use el siguiente comando para quitar el punto de conexión privado:

az network private-endpoint delete \
    --name <private-endpoint-name> \
    --resource-group <resource-group-name> \

Habilitación del acceso público

En algunas situaciones, puede que desee permitir que alguien se conecte al área de trabajo protegida mediante un punto de conexión público, en lugar de hacerlo mediante la red virtual. O bien, puede quitar el área de trabajo de la red virtual y volver a habilitar el acceso público.

Importante

La habilitación del acceso público no quita ningún punto de conexión privado que exista. Todas las comunicaciones entre los componentes que se encuentran detrás de la red virtual a la que están conectados los puntos de conexión privados siguen estando protegidas. Permite el acceso público solo al área de trabajo, además del acceso privado mediante cualquier punto de conexión privado.

Advertencia

Al conectarse mediante el punto de conexión público mientras el área de trabajo usa un punto de conexión privado para comunicarse con otros recursos:

  • Algunas características de Studio no podrán acceder a los datos. Este problema se produce cuando los datos se almacenan en un servicio protegido detrás de la red virtual. Por ejemplo, una cuenta de Azure Storage. Para resolver este problema, agregue la dirección IP del dispositivo cliente al firewall de la cuenta de Azure Storage.
  • No se admite el uso de Jupyter, JupyterLab, RStudio, o Posit Workbench (anteriormente, RStudio Workbench) en una instancia de proceso, incluidos los cuadernos en ejecución.

Para habilitar el acceso público, siga estos pasos:

Sugerencia

Hay dos propiedades que puede configurar:

  • allow_public_access_when_behind_vnet: que usa el SDK para Python v1
  • public_network_access: que usa la CLI y el SDK de Python v2. Una propiedad invalida la otra. Por ejemplo, la configuración public_network_access invalidará cualquier configuración anterior en allow_public_access_when_behind_vnet.

Microsoft recomienda usar public_network_access para habilitar o deshabilitar el acceso público a un área de trabajo.

SE APLICA A:Extensión de ML de la CLI de Azure v2 (actual)

Al usar la extensión 2.0 de la CLI de Azure para aprendizaje automático, use el comando az ml update para habilitar public_network_access para el área de trabajo:

az ml workspace update \
    --set public_network_access=Enabled \
    -n <workspace-name> \
    -g <resource-group-name>

También puede habilitar el acceso a la red pública mediante un archivo YAML. Para más información, consulte la referencia de YAML del área de trabajo.

Habilitar el acceso público solo desde intervalos IP de Internet (versión preliminar)

Puede usar reglas de red IP para permitir el acceso al área de trabajo y al punto de conexión desde intervalos de direcciones IP públicas de Internet específicas mediante la creación de reglas de red IP. Cada área de trabajo de Azure Machine Learning admite hasta 200 reglas. Estas reglas conceden acceso a servicios específicos basados en Internet y redes locales, y bloquean el tráfico de Internet general.

Advertencia

  • Habilite la marca de acceso a la red pública del punto de conexión si desea permitir el acceso al punto de conexión desde intervalos de direcciones IP de Internet públicos específicos.
  • Al habilitar esta característica, esto afecta a todos los puntos de conexión públicos existentes asociados al área de trabajo. Esto puede limitar el acceso a puntos de conexión nuevos o existentes. Si accede a cualquier punto de conexión desde una dirección IP no permitida, recibirá un error 403.
  • Para utilizar esta característica con la red virtual administrada de Azure Machine Learning, consulte Red virtual administrada de Azure Machine Learning.

SE APLICA A:Extensión de ML de la CLI de Azure v2 (actual)

La CLI de Azure no admite esto.

Restricciones para las reglas de red IP

Las restricciones siguientes se aplican a los intervalos de direcciones IP:

  • Las reglas de red IP solo se permiten para direcciones IP de la red pública de Internet.

    Los intervalos de direcciones IP reservadas no se permiten en reglas IP como direcciones privadas que comienzan por 10, 172.16 a 172.31 y 192.168.

  • Debe proporcionar los intervalos de dirección de Internet permitidos mediante la notación CIDR en el formulario 16.17.18.0/24 o como direcciones IP individuales en formato 16.17.18.19.

  • Solo se admiten direcciones IPv4 para la configuración de reglas de firewall de almacenamiento.

  • Cuando esta función está activada, puede probar puntos finales públicos utilizando cualquier herramienta cliente como Postman u otras, pero la herramienta de prueba de puntos finales del portal no es compatible.

Conexión segura al área de trabajo

Para conectarse a un área de trabajo protegida en una red virtual, use uno de los métodos siguientes:

  • Azure VPN Gateway: conecta redes locales a la VNet mediante una conexión privada. La conexión se realiza a través de la red pública de Internet. Hay dos tipos de puertas de enlace de VPN que puede usar:

    • De punto a sitio: cada equipo cliente usa un cliente VPN para conectarse a la red virtual.
    • De sitio a sitio: un dispositivo VPN conecta la red virtual a la red local.
  • ExpressRoute: conecta redes locales a la nube mediante una conexión privada. La conexión se realiza mediante un proveedor de conectividad.

  • Azure Bastion: en este escenario, se crea una máquina virtual de Azure (a veces denominada "jump box") dentro de la VNet. A continuación, se conecta a la máquina virtual mediante Azure Bastion. Bastion permite conectarse a la máquina virtual mediante una sesión RDP o SSH desde el explorador web local. A continuación, use la jump box como entorno de desarrollo. Puesto que está dentro de la VNet, puede acceder directamente al área de trabajo. Para obtener un ejemplo de cómo usar un jumpbox, vea Tutorial: Creación de un área de trabajo segura.

Importante

Al usar una puerta de enlace de VPN o ExpressRoute, deberá planear cómo funciona la resolución de nombres entre los recursos locales y los de la red virtual. Para obtener más información, vea Creación de un servidor DNS personalizado.

Si tiene problemas para conectarse al área de trabajo, consulte Solución de problemas de conectividad segura del área de trabajo.

Múltiples puntos de conexión privados

Azure Machine Learning admite varios puntos de conexión privados para un área de trabajo. A menudo se usan varios puntos de conexión privados cuando se desea mantener distintos entornos separados. Estos son algunos escenarios que se habilitan mediante el uso de varios puntos de conexión privados:

  • Entornos de desarrollo de cliente en una red virtual independiente.

  • Un clúster Azure Kubernetes Service (AKS) en una red virtual independiente.

  • Otros servicios de Azure en una red virtual independiente. Por ejemplo, Azure Synapse y Azure Data Factory pueden usar una red virtual administrada por Microsoft. En cualquier caso, se puede agregar un punto de conexión privado para el área de trabajo a la red virtual administrada utilizada por esos servicios. Para más información sobre el uso de una red virtual administrada con estos servicios, consulte los artículos siguientes:

    Importante

    La protección contra la filtración de datos de Synapse no se admite con Azure Machine Learning.

Importante

Cada red virtual que contiene un punto de conexión privado para el área de trabajo también debe poder acceder a la cuenta de Azure Storage, Azure Key Vault y Azure Container Registry utilizada por el área de trabajo. Por ejemplo, puede crear un punto de conexión privado para los servicios de cada red virtual.

Para agregar varios puntos de conexión privados, se usan los mismos pasos descritos en la sección Adición de un punto de conexión privado a un área de trabajo.

Escenario: clientes aislados

Si quiere aislar los clientes de desarrollo para que no tengan acceso directo a los recursos de proceso utilizados por Azure Machine Learning, siga estos pasos:

Nota

Estos pasos suponen que tiene un área de trabajo existente, una cuenta de Azure Storage, Azure Key Vault y Azure Container Registry. Cada uno de estos servicios tiene un punto de conexión privado en una red virtual existente.

  1. Cree otra red virtual para los clientes. Esta red virtual puede contener máquinas virtuales de Azure que actúan como clientes o puede contener una VPN Gateway utilizada por los clientes locales para conectarse a la red virtual.
  2. Agregue un nuevo punto de conexión privado para la cuenta de Azure Storage, Azure Key Vault y Azure Container Registry utilizada por el área de trabajo. Estos puntos de conexión privados deben existir en la red virtual del cliente.
  3. Si tiene otro almacenamiento que se usa en el área de trabajo, agregue un nuevo punto de conexión privado para ese almacenamiento. El punto de conexión privado debe existir en la red virtual del cliente y tener habilitada la integración de zona DNS privada.
  4. Adición de un punto de conexión privado al área de trabajo. Este punto de conexión privado debe existir en la red virtual del cliente y tener habilitada la integración de zona DNS privada.
  5. Siga los pasos descritos en el artículo Uso de Studio en una red virtual para permitir que el estudio acceda a las cuentas de almacenamiento.

En el siguiente diagrama, se ilustra esta configuración. La red virtual de carga de trabajo contiene los procesos creados por el área de trabajo para el entrenamiento y la implementación. La red virtual de cliente contiene clientes o conexiones ExpressRoute/VPN de cliente. Ambas redes virtuales contienen puntos de conexión privados para el área de trabajo, la cuenta de Azure Storage, Azure Key Vault y Azure Container Registry.

Diagram of isolated client VNet

Escenario: Azure Kubernetes Service aislado

Si desea crear una cuenta aislada de Azure Kubernetes Service utilizada por el área de trabajo, siga estos pasos:

Nota

Estos pasos suponen que tiene un área de trabajo existente, una cuenta de Azure Storage, Azure Key Vault y Azure Container Registry. Cada uno de estos servicios tiene un punto de conexión privado en una red virtual existente.

  1. Cree una instancia de Azure Kubernetes Service. Durante la creación, AKS crea una red virtual que contiene el clúster de AKS.
  2. Agregue un nuevo punto de conexión privado para la cuenta de Azure Storage, Azure Key Vault y Azure Container Registry utilizada por el área de trabajo. Estos puntos de conexión privados deben existir en la red virtual del cliente.
  3. Si tiene otro almacenamiento utilizado por el área de trabajo, agregue un nuevo punto de conexión privado para ese almacenamiento. El punto de conexión privado debe existir en la red virtual del cliente y tener habilitada la integración de zona DNS privada.
  4. Adición de un punto de conexión privado al área de trabajo. Este punto de conexión privado debe existir en la red virtual del cliente y tener habilitada la integración de zona DNS privada.
  5. Conecte el clúster de AKS a un área de trabajo de Azure Machine Learning. Para obtener más información, consulte Creación y conexión de un clúster de Azure Kubernetes Service.

Diagram of isolated AKS VNet

Pasos siguientes