Compartir a través de


Conexión al almacenamiento mediante el acceso a los datos basado en la identidad con el SDK v1

Importante

En este artículo se proporciona información sobre el uso del SDK de Azure Machine Learning v1. El SDK v1 está en desuso a partir del 31 de marzo de 2025 y la compatibilidad con él finalizará el 30 de junio de 2026. Puede instalar y usar el SDK v1 hasta esa fecha.

Se recomienda realizar la transición al SDK v2 antes del 30 de junio de 2026. Para más información sobre el SDK v2, consulte ¿Qué es el SDK de Python de Azure Machine Learning v2 y la referencia del SDK v2?

En este artículo, aprenderá a conectarse a los servicios de almacenamiento en Azure con acceso a datos basados en identidades y almacenes de datos de Azure Machine Learning mediante el SDK de Azure Machine Learning para Python.

Normalmente, un almacén de datos usa la autenticación basada en credenciales para comprobar que tiene permiso para acceder al servicio de almacenamiento. Los almacenes de datos guardan la información de la conexión, como el identificador de la suscripción y la autorización del token, en el almacén de claves asociado al área de trabajo. Al crear un almacén de datos que use el acceso a datos basado en identidades, la cuenta de Azure (token de Microsoft Entra) confirma que tiene permiso para acceder al servicio de almacenamiento. En el escenario de acceso a datos basado en identidades, no se guardarán las credenciales de autenticación. Lo único que se guardará en el almacén de datos será la información de la cuenta de almacenamiento.

Para crear almacenes de datos con acceso a datos basados en identidad a través de la interfaz de usuario de Azure Machine Learning Studio, visite Conexión a datos con Azure Machine Learning Studio.

Para crear almacenes de datos que usan la autenticación basada en credenciales , como claves de acceso o entidades de servicio, visite Conexión a servicios de almacenamiento en Azure.

Acceso a datos basado en identidad en Azure Machine Learning

Puede aplicar el acceso a datos basado en identidades de Azure Machine Learning en dos escenarios. Estos escenarios son una buena opción para utilizar el acceso basado en identidades cuando hay datos confidenciales de por medio y es preciso administrar el acceso a los datos de forma más pormenorizada:

Advertencia

El acceso a datos basado en identidades no se admite para experimentos de ML automatizados.

  • Acceso a servicios de almacenamiento
  • Entrenamiento de modelos de aprendizaje automático con datos privados

Acceso a servicios de almacenamiento

Puede conectarse a los servicios de almacenamiento mediante el acceso a datos basado en identidad con almacenes de datos de Azure Machine Learning o conjuntos de datos de Azure Machine Learning.

Las credenciales de autenticación se conservan en un almacén de datos, que se asegura de que tiene permiso de acceso al servicio de almacenamiento. Cuando estas credenciales se registran utilizando almacenes de datos, cualquier usuario que tenga el rol Lector en el área de trabajo podrá recuperarlas. Ese nivel de acceso puede ser un problema de seguridad para algunas organizaciones. Obtenga más información sobre el rol de lector del espacio de trabajo en este recurso.

Cuando se usa el acceso a datos basado en identidades, Azure Machine Learning no mantiene las credenciales en el almacén de datos. En su lugar, le pedirá el token de Microsoft Entra para la autenticación de acceso a datos. Este enfoque permite administrar el acceso a los datos en el nivel de almacenamiento y preserva la seguridad de las credenciales.

Este mismo comportamiento se aplica al:

Nota

Las credenciales almacenadas a través de la autenticación basada en credenciales incluyen identificadores de suscripción, tokens de firma de acceso compartido (SAS) y clave de acceso de almacenamiento. También incluye información de entidad de servicio, como identificadores de cliente e identificadores de inquilino.

Entrenamiento de modelos con datos privados

Algunos escenarios de aprendizaje automático implican el entrenamiento de modelos con datos privados. En estos casos, los científicos de datos deben ejecutar los flujos de trabajo de entrenamiento sin exponer los datos de entrada confidenciales. En este escenario, una identidad administrada del equipo de entrenamiento autentica el acceso a los datos. De este modo, los administradores del almacenamiento pueden conceder el acceso como Lector de datos de Storage Blob a la identidad administrada que la instancia de proceso de entrenamiento utiliza para ejecutar el trabajo de entrenamiento. No es necesario conceder acceso a cada científico de datos. Para más información, consulte Configuración de identidades administradas en un clúster de proceso.

Requisitos previos

Creación y registro de almacenes de datos

Cuando se registra un servicio de almacenamiento de Azure como almacén de datos, se crea y registra automáticamente ese almacén de datos en un área de trabajo específica. Visite Permisos de acceso de almacenamiento para obtener instrucciones sobre los tipos de permisos necesarios. También puede crear manualmente el almacenamiento al que quiere conectarse sin ningún permiso especial y solo necesita el nombre.

Visite Trabajar con redes virtuales para obtener más información sobre cómo conectarse al almacenamiento de datos detrás de redes virtuales.

En los ejemplos de código siguientes, tenga en cuenta la ausencia de parámetros de autenticación como sas_token, account_key, subscription_id, y el principal de servicio client_id. Esta omisión indica que Azure Machine Learning utiliza el acceso a datos basado en identidades para realizar la autenticación. Normalmente, los almacenes de datos se crean de forma interactiva en un cuaderno o mediante Studio. La autenticación de acceso a datos usa el token de Microsoft Entra.

Nota

Los nombres de los almacenes de datos solo pueden contener letras minúsculas, números y caracteres de subrayado.

Contenedor de blobs de Azure

Para registrar un almacén de datos de un contenedor de blobs de Azure, use register_azure_blob_container().

El código siguiente crea el almacén de datos credentialless_blob, lo registra en el área de trabajo ws y lo asigna a la variable blob_datastore. Este almacén de datos accede al contenedor de blobs my_container_name de la cuenta de almacenamiento my-account-name.

# Create blob datastore without credentials.
blob_datastore = Datastore.register_azure_blob_container(workspace=ws,
                                                      datastore_name='credentialless_blob',
                                                      container_name='my_container_name',
                                                      account_name='my_account_name')

Azure Data Lake Storage Gen1

Utilice register_azure_data_lake() para registrar un almacén de datos que se conecte a Azure Data Lake Storage Gen1.

El ejemplo de código siguiente crea el credentialless_adls1 almacén de datos, lo registra en el workspace área de trabajo y lo asigna a la adls_dstore variable . Este almacén de datos accede a la cuenta adls_storage de Azure Data Lake Storage.

# Create Azure Data Lake Storage Gen1 datastore without credentials.
adls_dstore = Datastore.register_azure_data_lake(workspace = workspace,
                                                 datastore_name='credentialless_adls1',
                                                 store_name='adls_storage')

Azure Data Lake Storage Gen2

Utilice register_azure_data_lake_gen2() para registrar un almacén de datos que se conecte a Azure Data Lake Storage Gen2.

El ejemplo de código siguiente crea el credentialless_adls2 almacén de datos, lo registra en el ws área de trabajo y lo asigna a la adls2_dstore variable . Este almacén de datos accede al sistema de archivos tabular de la cuenta de almacenamiento myadls2.

# Create Azure Data Lake Storage Gen2 datastore without credentials.
adls2_dstore = Datastore.register_azure_data_lake_gen2(workspace=ws, 
                                                       datastore_name='credentialless_adls2', 
                                                       filesystem='tabular', 
                                                       account_name='myadls2')

Azure SQL Database

Para una base de datos de Azure SQL, use register_azure_sql_database() para registrar un almacén de datos que se conecte a un almacenamiento de base de datos SQL Azure.

El ejemplo de código siguiente crea y registra el credentialless_sqldb almacén de datos en el ws área de trabajo y lo asigna a la sqldb_dstore variable . Este almacén de datos accede a la base de datos mydb en el servidor de bases de datos SQL myserver.

# Create a sqldatabase datastore without credentials
                                                       
sqldb_dstore = Datastore.register_azure_sql_database(workspace=ws,
                                                       datastore_name='credentialless_sqldb',
                                                       server_name='myserver',
                                                       database_name='mydb')                                                       
                                                   

Permisos de acceso al almacenamiento

Para garantizar la seguridad al conectarse al servicio de almacenamiento de Azure, en Azure Machine Learning es obligatorio tener permiso para poder acceder al almacenamiento de datos correspondiente.

Advertencia

No se admite el acceso entre inquilinos a las cuentas de almacenamiento. Si el escenario necesita acceso entre inquilinos, póngase en contacto con el alias del equipo de soporte técnico de datos de Azure Machine Learning en amldatasupport@microsoft.com, para obtener ayuda con una solución de código personalizada.

El acceso a datos basado en identidades solo permite conectarse a los siguientes servicios de almacenamiento.

  • Azure Blob Storage (Servicio de almacenamiento de blobs de Azure)
  • Azure Data Lake Storage Gen1
  • Azure Data Lake Storage Gen2
  • Azure SQL Database

Para poder acceder a estos servicios de almacenamiento, debe tener como mínimo acceso de Lector de datos de Storage Blob a la cuenta de almacenamiento. Solo los propietarios de la cuenta de almacenamiento pueden cambiar el nivel de acceso mediante Azure Portal.

Si no desea usar la identidad de usuario (Id. de Microsoft Entra), también puede conceder permiso a una identidad del sistema administrado (MSI) del área de trabajo para crear el almacén de datos. Para ello, debe tener permisos de propietario en la cuenta de almacenamiento y agregar el parámetro grant_workspace_access= True al método de registro de datos.

Si entrena un modelo en un destino de proceso remoto y quiere acceder a los datos para el entrenamiento, se debe conceder al menos el rol Lector de datos de Storage Blob desde el servicio de almacenamiento. Para obtener más información, visite el recurso configurar la identidad administrada en un clúster de proceso.

Trabajo con redes virtuales

De forma predeterminada, Azure Machine Learning no puede comunicarse con una cuenta de almacenamiento que esté detrás de un firewall o en una red virtual.

Puede configurar las cuentas de almacenamiento para permitir el acceso exclusivamente desde redes virtuales específicas. Esta configuración requiere más pasos, a fin de evitar que los datos se filtren fuera de la red. Este comportamiento es igual en el acceso a datos basado en credenciales. Para más información, consulte Configuración de escenarios de red virtual.

Si la cuenta de almacenamiento tiene una configuración de red virtual, esta determina qué tipo de identidad y acceso a los permisos es necesario. Por ejemplo, para la vista previa de datos y el perfil de datos, la configuración de red virtual determina qué tipo de identidad se usa para autenticar el acceso a datos.

  • En escenarios en los que solo determinadas direcciones IP y subredes pueden acceder al almacenamiento, Azure Machine Learning usa el MSI del área de trabajo para realizar vistas previas y perfiles de datos.

  • Si el almacenamiento es ADLS Gen 2 o Blob y tiene la configuración de red virtual, los clientes pueden usar la identidad de usuario o MSI del área de trabajo, en función de la configuración del almacén de datos definida durante la creación.

  • Si la configuración de red virtual es "Permitir que los servicios de Azure en la lista de servicios de confianza accedan a esta cuenta de almacenamiento", se usa MSI del área de trabajo.

Uso de los datos del almacenamiento

Le recomendamos que utilice conjuntos de datos de Azure Machine Learning cuando interactúe con los datos de almacenamiento en Azure Machine Learning.

Importante

Los conjuntos de datos que usan el acceso a datos basado en identidad no se admiten para experimentos de aprendizaje automático automatizados.

Los conjuntos de datos empaquetan los datos en un objeto consumible que se evalúa de forma diferida para tareas de aprendizaje automático, como el entrenamiento. Además, con los conjuntos de datos, se pueden descargar o montar archivos con cualquier formato desde los servicios de almacenamiento de Azure, como Azure Blob Storage y Azure Data Lake Storage, en un destino de proceso.

Para crear un conjunto de datos, puede hacer referencia a rutas de acceso de los almacenes de datos que también usan el acceso a datos basado en identidad.

  • Si el tipo de cuenta de almacenamiento subyacente es Blob o ADLS Gen 2, la identidad del usuario necesita el rol Lector de Blob.
  • Si el almacenamiento subyacente es ADLS Gen 1, puede establecer permisos a través de la lista de control de acceso (ACL) del almacenamiento.

En el ejemplo siguiente, blob_datastore ya existe y usa el acceso a datos basado en identidades.

blob_dataset = Dataset.Tabular.from_delimited_files(blob_datastore,'test.csv') 

También puede omitir la creación del almacén de datos y cree conjuntos de datos directamente desde las direcciones URL de almacenamiento. Actualmente, esta funcionalidad solo permite utilizar blobs de Azure, así como Azure Data Lake Storage Gen1 y Gen2. Para la creación basada en la dirección URL de almacenamiento, solo se necesita la identidad del usuario para autenticarse.

blob_dset = Dataset.File.from_files('https://myblob.blob.core.windows.net/may/keras-mnist-fashion/')

Al enviar un trabajo de entrenamiento que consume un conjunto de datos creado con el acceso a datos basado en identidades, la identidad administrada de proceso de entrenamiento se usa para la autenticación del acceso a los datos. No se usa el token de Microsoft Entra. En este escenario, asegúrese de que la identidad administrada de la instancia de proceso recibe al menos el rol Lector de datos de Storage Blob en el servicio de almacenamiento. Para más información, visite Configuración de la identidad administrada en clústeres de cómputo.

Pasos siguientes