Aislamiento de red con puntos de conexión en línea administrados

SE APLICA A:Extensión ML de la CLI de Azure v2 (actual)SDK de Python azure-ai-ml v2 (actual)

Al implementar un modelo de Machine Learning en un punto de conexión en línea administrado, puede proteger la comunicación con el punto de conexión en línea mediante puntos de conexión privados. En este artículo, aprenderá cómo usar un punto de conexión privado para proteger la comunicación entrante a un punto de conexión en línea administrado. También aprenderá a usar una red virtual administrada por el área de trabajo para proporcionar una comunicación segura entre implementaciones y recursos.

Puede proteger las solicitudes de puntuación de entrada de los clientes a un punto de conexión en línea y proteger las comunicaciones salientes entre una implementación, los recursos de Azure que usa y los recursos privados. La seguridad de la comunicación entrante y saliente se configura por separado. Para más información sobre los puntos de conexión y las implementaciones, consulte ¿Qué son los puntos de conexión y las implementaciones?.

En el diagrama de arquitectura siguiente, se muestra cómo fluyen las comunicaciones a través de puntos de conexión privados al punto de conexión en línea administrado. Las solicitudes de puntuación entrantes desde la red virtual de un cliente fluyen a través del punto de conexión privado del área de trabajo al punto de conexión en línea administrado. Las comunicaciones salientes de las implementaciones a los servicios se controlan a través de puntos de conexión privados desde la red virtual administrada del área de trabajo a esas instancias de servicio.

Diagram showing inbound communication via a workspace private endpoint and outbound communication via private endpoints of a workspace managed virtual network.

Nota:

Este artículo se centra en el aislamiento de red mediante la red virtual administrada del área de trabajo. Para obtener una descripción del método heredado para el aislamiento de red, en el que Azure Machine Learning crea una red virtual administrada para cada implementación en un punto de conexión, consulte el Apéndice.

Limitaciones

  • La marca v1_legacy_mode debe estar deshabilitada (false) en el área de trabajo de Azure Machine Learning. Si esta marca está habilitada, no podrá crear un punto de conexión en línea administrado. Para obtener más información, consulte Aislamiento de red con API v2.

  • Si el área de trabajo de Azure Machine Learning tiene un punto de conexión privado que se creó antes del 24 de mayo de 2022, debe volver a crear el punto de conexión privado del área de trabajo antes de configurar los puntos de conexión en línea para usar un punto de conexión privado. Para más información sobre cómo crear un punto de conexión privado para el área de trabajo, vea Configuración de un punto de conexión privado para un área de trabajo de Azure Machine Learning.

    Sugerencia

    Para confirmar cuándo se creó un espacio de trabajo, puede comprobar las propiedades del espacio de trabajo.

    En Studio, vaya a la Directory + Subscription + Workspace sección (parte superior derecha de Studio) y seleccione View all properties in Azure Portal. Seleccione la vista JSON en la parte superior derecha de la página "Información general" y elija la versión más reciente de la API. En esta página, puede comprobar el valor de properties.creationTime.

    Como alternativa, use az ml workspace show con la CLI, my_ml_client.workspace.get("my-workspace-name") con EL SDK o curl en un área de trabajo con la API REST.

  • Al usar el aislamiento de red con puntos de conexión en línea, puede usar recursos asociados al área de trabajo (Azure Container Registry (ACR), la cuenta de almacenamiento, Key Vault y Application Insights) desde un grupo de recursos diferente al del área de trabajo. Sin embargo, estos recursos deben pertenecer a la misma suscripción e inquilino que el área de trabajo.

Nota:

El aislamiento de red descrito en este artículo se aplica a las operaciones del plano de datos, es decir, las operaciones que se derivan de solicitudes de puntuación (o servicio de modelos). Las operaciones del plano de control (como las solicitudes para crear, actualizar, eliminar o recuperar claves de autenticación) se envían a Azure Resource Manager a través de la red pública.

Protección de las solicitudes de puntuación entrantes

Es posible proteger la comunicación entrante de un cliente a un punto de conexión en línea administrado mediante un punto de conexión privado para el área de trabajo de Azure Machine Learning. Este punto de conexión privado de la red virtual del cliente se comunica con el área de trabajo del punto de conexión en línea administrado y es el medio por el que el punto de conexión en línea administrado puede recibir solicitudes de puntuación entrantes del cliente.

Para proteger las solicitudes de puntuación al punto de conexión en línea, de modo que un cliente solo pueda tener acceso a través del punto de conexión privado del área de trabajo, establezca la marca public_network_access del punto de conexión en disabled. Después de crear el punto de conexión, es posible actualizar esta configuración para habilitar el acceso a la red pública, si lo desea.

Establezca la marca public_network_access del punto de conexión en disabled:

az ml online-endpoint create -f endpoint.yml --set public_network_access=disabled

Cuando public_network_access es disabled, las solicitudes de puntuación entrantes se reciben mediante el punto de conexión privado del área de trabajo y no se puede acceder al punto de conexión desde redes públicas.

Como alternativa, si establece public_network_access en enabled, el punto de conexión podrá recibir solicitudes de puntuación entrantes de Internet.

Protección del acceso saliente con redes virtuales administradas por el área de trabajo

Para proteger la comunicación saliente de una implementación a los servicios, es necesario habilitar el aislamiento de red virtual administrada para el área de trabajo de Azure Machine Learning para que Azure Machine Learning pueda crear una red virtual administrada para el área de trabajo. Todos los puntos de conexión en línea administrados del área de trabajo (y los recursos de proceso administrados para el área de trabajo, como los clústeres de proceso y las instancias de proceso) usan automáticamente esta red virtual administrada y las implementaciones en los puntos de conexión comparten los puntos de conexión privados de la red virtual administrada para la comunicación con los recursos del área de trabajo.

Al proteger el área de trabajo con una red virtual administrada, ya no se aplica la marca egress_public_access para implementaciones en línea administradas. Evite establecer esta marca al crear la implementación en línea administrada.

Para la comunicación saliente con una red virtual administrada del área de trabajo, Azure Machine Learning:

  • Crea puntos de conexión privados para la red virtual administrada que se usará para la comunicación con los recursos de Azure que usa el área de trabajo, como Azure Storage, Azure Key Vault y Azure Container Registry.
  • Permite que las implementaciones accedan a Microsoft Container Registry (MCR), lo que podría ser útil cuando se deseen usar entornos mantenidos o la implementación sin código de MLflow.
  • Permite a los usuarios configurar reglas de salida de punto de conexión privado en recursos privados y configurar reglas de salida (etiqueta de servicio o FQDN) para recursos públicos. Para obtener más información sobre cómo administrar reglas de salida, consulte Administración de reglas de salida.

Además, es posible configurar dos modos de aislamiento para el tráfico saliente de la red virtual administrada por el área de trabajo, concretamente:

  • Permitir la salida de Internet, para permitir todo el tráfico saliente de Internet desde la red virtual administrada
  • Permitir solo la salida aprobada para controlar el tráfico saliente mediante puntos de conexión privados, reglas de salida de FQDN y reglas de salida de etiquetas de servicio.

Por ejemplo, supongamos que la red virtual administrada del área de trabajo contuviera dos implementaciones en un punto de conexión en línea administrado, pudiendo ambas implementaciones usar los puntos de conexión privados del área de trabajo para comunicarse con:

  • El área de trabajo de Azure Machine Learning.
  • Blob de Azure Storage asociado al área de trabajo
  • La instancia de Azure Container Registry para el área de trabajo.
  • Azure Key Vault
  • (Opcional) recursos privados adicionales que admiten puntos de conexión privados.

Para obtener más información sobre las configuraciones de la red virtual administrada del área de trabajo, consulte Arquitectura de red virtual administrada.

Escenarios para la configuración de aislamiento de red

El área de trabajo de Azure Machine Learning y el punto de conexión en línea administrados tienen una marca public_network_access que puede usar para configurar su comunicación entrante. Por otro lado, la comunicación saliente de una implementación depende de la red virtual administrada del área de trabajo.

Comunicación con el punto de conexión en línea administrado

Supongamos que un punto de conexión en línea administrado tuviera una implementación que usa un modelo de IA y quisiera usar una aplicación para enviar solicitudes de puntuación al punto de conexión. Es posible decidir qué configuración de aislamiento de red se va a usar para el punto de conexión en línea administrado de la siguiente manera:

Para la comunicación entrante:

Si la aplicación estuviera disponible públicamente en Internet, sería necesario habilitarpublic_network_access para el punto de conexión, y así poder recibir solicitudes de puntuación entrantes de la aplicación.

Sin embargo, supongamos que la aplicación fuera privada, como una aplicación interna dentro de la organización. En este escenario, querrá que el modelo de inteligencia artificial solo se use dentro de su organización en lugar de exponerlo a Internet. Por lo tanto, sería necesario deshabilitarpublic_network_access del punto de conexión para que pudiera recibir solicitudes de puntuación de entrada solo a través del punto de conexión privado de su área de trabajo.

Para la comunicación saliente (implementación):

Supongamos que la implementación necesitase acceder a recursos privados de Azure (como el blob de Azure Storage, ACR y Azure Key Vault) o que no fuera aceptable que la implementación accediese a Internet. En este caso, sería necesario habilitar la red virtual administrada del área de trabajo con el modo de aislamiento de solo la salida aprobada. Este modo de aislamiento solo permite la comunicación saliente desde la implementación a destinos aprobados, lo que protege frente a la filtración de datos. Además, puede agregar reglas de salida para el área de trabajo para permitir el acceso a más recursos públicos o privados. Para obtener más información, consulte Configuración de una red virtual gestionada para permitir solo la salida aprobada.

Sin embargo, si quisiera que la implementación accediese a Internet, podría usar la red virtual administrada del área de trabajo con el modo de aislamiento Permitir la salida de internet. Además de poder acceder a Internet, podrá usar los puntos de conexión privados de la red virtual administrada para acceder a los recursos privados de Azure que necesite.

Por último, si la implementación no necesitase acceder a recursos privados de Azure ni controlar el acceso a Internet, no será necesario usar una red virtual administrada del área de trabajo.

Comunicación entrante al área de trabajo de Azure Machine Learning

Puede usar la marca public_network_access del área de trabajo de Azure Machine Learning para habilitar o deshabilitar el acceso al área de trabajo entrante. Normalmente, si protege la comunicación entrante con el área de trabajo (al deshabilitar la marca public_network_access del área de trabajo), también quiere proteger la comunicación entrante al punto de conexión en línea administrado.

En el gráfico siguiente se muestra un flujo de trabajo típico para proteger la comunicación entrante con el área de trabajo de Azure Machine Learning y el punto de conexión en línea administrado. Para una mayor seguridad, se recomienda deshabilitar las marcas public_network_access para el área de trabajo y el punto de conexión en línea administrado para asegurarse de que no se pueda acceder a ambos mediante la red pública de Internet. Si el área de trabajo no tiene un punto de conexión privado, puede crear uno, asegurándose de incluir la resolución DNS adecuada. A continuación, puede acceder al punto de conexión en línea administrado mediante el punto de conexión privado del área de trabajo.

A screenshot showing a typical workflow for securing inbound communication to your workspace and managed online endpoint.

Nota:

Los puntos de conexión en línea administrados comparten el punto de conexión privado del área de trabajo. Si va a agregar manualmente registros DNS a la zona DNS privada privatelink.api.azureml.ms, se debe agregar un registro A con comodín *.<per-workspace globally-unique identifier>.inference.<region>.privatelink.api.azureml.ms para enrutar todos los puntos de conexión del área de trabajo al punto de conexión privado.

Para más información sobre la resolución DNS para el área de trabajo y el punto de conexión privado, consulte Uso del área de trabajo con un servidor DNS personalizado.

Apéndice

Protección del acceso saliente con el método de aislamiento de red heredado

En el caso de los puntos de conexión en línea administrados, también es posible proteger la comunicación saliente entre implementaciones y recursos a través de una red virtual administrada de Azure Machine Learning para cada implementación del punto de conexión. La comunicación saliente segura también se controla mediante el uso de puntos de conexión privados para esas instancias de servicio.

Nota:

Se recomienda encarecidamente usar el enfoque descrito en Protección del acceso de salida con la red virtual administrada del área de trabajo en lugar de este método heredado.

Para restringir la comunicación entre una implementación y los recursos externos, incluyendo aquellos recursos de Azure que use, debería asegurarse de que:

  • La marca egress_public_network_access de la implementación sea disabled. Esta marca asegura que la descarga del modelo, el código y las imágenes que necesite la implementación estén protegidos con un punto de conexión privado. Una vez creada la implementación, no es posible actualizar (habilitar o deshabilitar) la marca egress_public_network_access. Si se intentase cambiar la marca mientras se actualiza la implementación, se producirá un error.

  • El área de trabajo tiene un vínculo privado que permite el acceso a los recursos de Azure a través de un punto de conexión privado.

  • El área de trabajo tiene una marca public_network_access que se puede habilitar o deshabilitar. Si planea usar una implementación en línea administrada que use la salida pública, también será necesario configurar el área de trabajo para permitir el acceso público. Esto se debe a que la comunicación saliente desde la implementación en línea se dirige a la API del área de trabajo. Cuando la implementación está configurada para usar la salida pública, el área de trabajo debe poder aceptar esa comunicación pública (permitir el acceso público).

Cuando tenga varias implementaciones y configure egress_public_network_access para disabled por cada implementación en un punto de conexión en línea administrado, cada implementación tendrá su propia red virtual administrada independiente de Azure Machine Learning. Para cada red virtual, Azure Machine Learning crea tres puntos de conexión privados para la comunicación con los siguientes servicios:

  • El área de trabajo de Azure Machine Learning.
  • Blob de Azure Storage asociado al área de trabajo
  • La instancia de Azure Container Registry para el área de trabajo.

Por ejemplo, si estableciera la marca egress_public_network_access en disabled en tres implementaciones en un punto de conexión en línea administrado, se crearán un total de seis puntos de conexión privados. Cada implementación usaría tres puntos de conexión privados para comunicarse con el área de trabajo, el blob y el registro de contenedor.

Importante

Azure Machine Learning no admite el emparejamiento entre la red virtual administrada de una implementación y la red virtual del cliente. Para obtener acceso seguro a los recursos necesarios para la implementación, usamos puntos de conexión privados para que se comuniquen con los recursos.

El diagrama siguiente muestra las solicitudes de puntuación entrantes desde la red virtual de un cliente fluyendo a través del punto de conexión privado del área de trabajo al punto de conexión en línea administrado. En el diagrama también se muestran dos implementaciones en línea, cada una en su propia red virtual administrada de Azure Machine Learning. La red virtual de cada implementación tiene tres puntos de conexión privados para la comunicación saliente con el área de trabajo de Azure Machine Learning, el blob de Azure Storage asociado al área de trabajo y Azure Container Registry para el área de trabajo.

Diagram of overall network isolation with the legacy method.

Para deshabilitar egress_public_network_access y crear los puntos de conexión privados:

az ml online-deployment create -f deployment.yml --set egress_public_network_access=disabled

Para confirmar la creación de los puntos de conexión privados, compruebe primero la cuenta de almacenamiento y el registro de contenedor asociados al área de trabajo (consulte Descargar un archivo de configuración), busque cada recurso de Azure Portal y active la pestaña Private endpoint connections en el menú Networking.

Importante

  • Como ya se ha mencionado, la comunicación saliente desde la implementación de puntos de conexión en línea administrados se dirige a la API del área de trabajo. Cuando el punto de conexión está configurado para usar la salida pública (es decir, la marca public_network_access del punto de conexión se establece en enabled), el área de trabajo debe ser capaz de aceptar esa comunicación pública (la marca public_network_access del área de trabajo se ha establecido en enabled).
  • Cuando las implementaciones en línea se crean con la marca egress_public_network_access establecida en disabled, solo tendrán acceso a los recursos protegidos (el área de trabajo, el blob y el registro de contenedor). Por ejemplo, si la implementación usa recursos del modelo cargados en otras cuentas de almacenamiento, se producirá un error en la descarga del modelo. Asegúrese de que los recursos del modelo estén en la cuenta de almacenamiento asociada al área de trabajo.
  • Cuando egress_public_network_access se establece en disabled, la implementación solo puede acceder a los recursos asociados al área de trabajo protegidos en la red virtual. En cambio, cuando egress_public_network_access se establece en enabled, la implementación solo puede acceder a los recursos con acceso público, lo que significa que no puede acceder a los recursos protegidos en la red virtual.

En la tabla siguiente se enumeran las configuraciones admitidas al configurar las comunicaciones entrantes y salientes de un punto de conexión en línea:

Configuración
entrante (propiedad Endpoint)

saliente (propiedad Deployment)
¿Compatible?
entrada segura con salida segura public_network_access está deshabilitado egress_public_network_access está deshabilitado
entrada segura con salida pública public_network_access está deshabilitado egress_public_network_access está habilitado
El área de trabajo también debe permitir el acceso público, ya que la salida de implementación es a la API del área de trabajo.
entrada pública con salida segura public_network_access está habilitado egress_public_network_access está deshabilitado
entrada pública con salida pública public_network_access está habilitado egress_public_network_access está habilitado
El área de trabajo también debe permitir el acceso público, ya que la salida de implementación es a la API del área de trabajo.

Pasos siguientes