Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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, obtendrá información sobre cómo un punto de conexión privado puede proteger la comunicación entrante a un punto de conexión en línea administrado. También aprenderá cómo una red virtual administrada por el área de trabajo puede 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. Configure la seguridad para la comunicación entrante y saliente 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.
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.
- Cada implementación está aislada de las demás, independientemente de la comunicación entrante y saliente que se describe en este artículo. En otras palabras, incluso con puntos de conexión e implementaciones que permiten el acceso entrante y saliente a Internet, hay un aislamiento de red entre implementaciones, lo que impide que cualquier implementación se conecte directamente a otras implementaciones.
Limitaciones
La
v1_legacy_modemarca debe establecerse enfalsepara desactivar el modo heredado v1 en el área de trabajo de Azure Machine Learning. Si esta configuración está activada, no puede crear un punto de conexión en línea administrado. Para más información, consulte Cambio de aislamiento de red con nuestra nueva plataforma de API en Azure Resource Manager.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 ese punto de conexión privado antes de configurar los puntos de conexión en línea para usar puntos de conexión privados. Para más información sobre cómo crear un punto de conexión privado para el área de trabajo, consulte Configuración de un punto de conexión privado para un área de trabajo de Azure Machine Learning.
Sugerencia
Para ver la fecha de creación de un área de trabajo, puede comprobar las propiedades del área de trabajo.
- En Azure Machine Learning Studio, vaya a la esquina superior derecha y seleccione el nombre del área de trabajo.
- En la ventana Directorio + Suscripción + Área de trabajo, seleccione Ver todas las propiedades en Azure Portal.
- En la página Información general de Azure Portal, vaya a la esquina superior derecha y seleccione Vista JSON.
- En la ventana JSON de recursos, en Versiones de API, seleccione la versión más reciente de la API.
- En la
propertiessección del código JSON, compruebe elcreationTimevalor.
Como alternativa, use uno de los métodos siguientes:
-
SDK de Python:
Workspace.get(name=<workspace-name>, subscription_id=<subscription-ID>, resource_group=<resource-group-name>).get_details() -
API REST:
curl https://management.azure.com/subscriptions/<subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.MachineLearningServices/workspaces/?api-version=2023-10-01 -H "Authorization:Bearer <access-token>" -
PowerShell:
Get-AzMLWorkspace -Name <workspace-name> -ResourceGroupName <resource-group-name>
Al usar el aislamiento de red para ayudar a proteger los puntos de conexión en línea, puede usar recursos asociados al área de trabajo de un grupo de recursos diferente al del grupo de recursos del área de trabajo. Sin embargo, estos recursos deben pertenecer a la misma suscripción e inquilino que el área de trabajo. Los recursos asociados a un área de trabajo incluyen Azure Container Registry, Azure Storage, Azure Key Vault y Application Insights.
Nota:
En este artículo se describe el aislamiento de red que se aplica a las operaciones del plano de datos. Estas operaciones resultan de solicitudes de puntuación o modelo de servicio. 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
Puede 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 recibe 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, puede 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:
Antes de ejecutar el comando de la CLI de Azure:
- Asegúrese de que tiene un
endpoint.ymlarchivo en el directorio de trabajo actual (ya sea localmente o en Azure Cloud Shell). - Si usa Azure Cloud Shell, cargue
endpoint.ymlo clone un repositorio que lo contenga en el directorio principal de Cloud Shell. - Si el área de trabajo predeterminada y el grupo de recursos de Azure Machine Learning no están configurados, añada los parámetros
--resource-groupy--workspace-name.
az ml online-endpoint create \
--file endpoint.yml \
--set public_network_access=disabled
# Optionally specify the workspace and resource group explicitly
az ml online-endpoint create \
--file endpoint.yml \
--resource-group <resource-group-name> \
--workspace-name <workspace-name> \
--set public_network_access=disabled
Si ve un No such file or directory: endpoint.yml error, confirme que endpoint.yml existe en el directorio actual y que ejecuta el comando desde ese directorio.
Al deshabilitar public_network_access, el punto de conexión privado del área de trabajo recibe solicitudes de puntuación de entrada y las redes públicas no pueden llegar al punto de conexión.
Si habilita public_network_access, el punto de conexión puede recibir solicitudes entrantes de evaluación desde Internet.
Protección de la puntuación de entrada con acceso a la red pública desde direcciones IP específicas
El área de trabajo de Azure Machine Learning permite habilitar el acceso a la red pública desde intervalos de direcciones o direcciones IP específicos. Esta característica tiene algunas interacciones con la marca public_network_access del punto de conexión en línea administrado que se deben tener en cuenta al usarla con puntos de conexión en línea administrados. Para más información, consulte Escenario: Puntos de conexión en línea administrados con acceso desde direcciones IP específicas.
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 que la red virtual administrada se use 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, puede configurar dos modos de aislamiento para el tráfico saliente de la red virtual administrada por el área de trabajo:
- Permitir la salida de Internet, para permitir todo el tráfico saliente de Internet desde la red virtual administrada
- Permitir solo el tráfico saliente aprobado para controlar el tráfico saliente mediante puntos de conexión privados, reglas de salida FQDN y reglas de salida con etiquetas de servicio.
Por ejemplo, si la red virtual administrada del área de trabajo contiene dos implementaciones en un punto de conexión en línea administrado, ambas implementaciones pueden usar los puntos de conexión privados del área de trabajo para comunicarse con:
- El área de trabajo de Azure Machine Learning.
- Blob de almacenamiento de Azure 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 está disponible públicamente en Internet, debe habilitarpublic_network_access para el punto de conexión para que pueda recibir solicitudes de puntuación entrantes de la aplicación.
Sin embargo, si la aplicación es privada, como una aplicación interna dentro de la organización, quiere 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 necesita acceder a recursos privados de Azure (como el blob de Azure Storage, ACR y Azure Key Vault) o que es inaceptable que la implementación acceda 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 administrada para permitir solo la salida aprobada.
Sin embargo, si quiere que la implementación acceda a Internet, puede 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 necesita 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.
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, puede proteger la comunicación saliente entre implementaciones y recursos mediante 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_accessde la implementación esdisabled. 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 se puede actualizar (habilitar o deshabilitar) laegress_public_network_accessmarca. Si se intenta 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 espacio de trabajo tiene un
public_network_accessindicador que puede habilitar o deshabilitar. Si planea usar una implementación en línea administrada que usa salida pública, también debe configurar el área de trabajo para permitir el acceso público. Este requisito existe porque la comunicación saliente de la implementación en línea es a la API del área de trabajo. Al configurar la implementación para usar la salida pública, el área de trabajo debe ser capaz de 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 almacenamiento de Azure asociado al área de trabajo
- La instancia de Azure Container Registry para el área de trabajo.
Por ejemplo, si establece la marca egress_public_network_access en disabled para dos 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 usa 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.
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_accessdel punto de conexión se establece enenabled), el área de trabajo debe ser capaz de aceptar esa comunicación pública (la marcapublic_network_accessdel área de trabajo se ha establecido enenabled). - Cuando los despliegues en línea se crean con el indicador
egress_public_network_accessestablecido endisabled, solo tienen acceso a los recursos protegidos (área de trabajo, blob y registro de contenedor). Por ejemplo, si la implementación usa recursos del modelo cargados en otras cuentas de almacenamiento, se produce 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_accessse establece endisabled, la implementación solo puede acceder a los recursos asociados al área de trabajo protegidos en la red virtual. En cambio, cuandoegress_public_network_accessse establece enenabled, 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 para un punto de conexión en línea:
| Configuración | Entrante (propiedad Endpoint) |
Saliente (propiedad Deployment) |
Se admite? |
|---|---|---|---|
| entrada segura con salida segura |
public_network_access está deshabilitado |
egress_public_network_access está deshabilitado |
Sí |
| entrada segura con salida pública |
public_network_access está deshabilitado |
egress_public_network_access está habilitadoEl á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. |
Sí |
| entrada pública con salida segura |
public_network_access está habilitado |
egress_public_network_access está deshabilitado |
Sí |
| entrada pública con salida pública |
public_network_access está habilitado |
egress_public_network_access está habilitadoEl á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. |
Sí |