Nota:
La información proporcionada en este artículo es específica de un proyecto basado en concentrador y no se aplica a un proyecto de Fundición. Para obtener más información, vea Tipos de proyectos.
Un centro de Fundición de IA de Azure usa de forma predeterminada una clave compartida para acceder a su cuenta de Azure Storage predeterminada. Con la autorización basada en claves, cualquier persona que tenga la clave y acceso a la cuenta de almacenamiento puede acceder a los datos.
Para reducir el riesgo de acceso no autorizado, puede deshabilitar la autorización basada en claves y, en su lugar, usar Microsoft Entra ID para la autorización. Esta configuración usa un valor de Microsoft Entra ID para autorizar el acceso a la cuenta de almacenamiento. La identidad usada para acceder al almacenamiento es la identidad del usuario o una identidad administrada. La identidad del usuario se usa para ver los datos en Estudio de Azure Machine Learning o para ejecutar un cuaderno mientras se autentica con la identidad del usuario. Azure Machine Learning Service usa una identidad administrada para acceder a la cuenta de almacenamiento, por ejemplo, al ejecutar un trabajo de entrenamiento como identidad administrada.
El uso del centro con una cuenta de almacenamiento con clave compartida deshabilitada está actualmente en versión preliminar.
Importante
Esta característica actualmente está en su versión preliminar pública. Esta versión preliminar se ofrece sin un 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 para las versiones preliminares de Microsoft Azure.
Prerrequisitos
Instale el SDK v2.
Importante
Los pasos de este artículo requieren el paquete de Python azure-ai-ml, versión 1.17.0. Para determinar la versión del paquete instalado, use el comando pip list
del entorno de desarrollo de Python.
Instale azure-identity: pip install azure-identity
. Si está trabajando en la celda de un cuaderno, use %pip install azure-identity
.
Proporcione los detalles de la suscripción:
# Enter details of your subscription
subscription_id = "<SUBSCRIPTION_ID>"
resource_group = "<RESOURCE_GROUP>"
Obtenga un identificador para la suscripción. Todo el código de Python de este artículo usa ml_client
:
# get a handle to the subscription
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential
ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group)
- (Opcional) Si tiene varias cuentas, añada el ID de inquilino de Microsoft Entra ID que desea usar en
DefaultAzureCredential
. Busque el identificador de inquilino en Azure Portal en Microsoft Entra ID, Identidades externas.
DefaultAzureCredential(interactive_browser_tenant_id="<TENANT_ID>")
from azure.identity import AzureAuthorityHosts
DefaultAzureCredential(authority=AzureAuthorityHosts.AZURE_GOVERNMENT))
Para usar los comandos de la CLI en este documento, necesita la CLI de Azure y la extensión ml.
Si usa Azure Cloud Shell, la CLI es accesible a través del explorador y reside en la nube.
Importante
Los pasos de este artículo requieren la extensión de la CLI de Azure para aprendizaje automático, versión 2.27.0 o posterior. Para determinar la versión de la extensión que ha instalado, use el comando az version
de la CLI de Azure. En la colección de extensiones que se devuelve, busque la extensión ml
. En este ejemplo de código se muestra un valor devuelto de ejemplo:
{
"azure-cli": "2.61.0",
"azure-cli-core": "2.61.0",
"azure-cli-telemetry": "1.1.0",
"extensions": {
"ml": "2.27.0"
}
}
- Una instancia existente de Azure Key Vault.
- El identificador de Azure Resource Manager para la cuenta de Azure Storage y Azure Key Vault que se va a usar con el centro.
Creación de un centro
Al crear un centro, el proceso de creación puede deshabilitar automáticamente el acceso a la clave compartida. También puede crear una cuenta de Azure Storage, deshabilitar el acceso con clave compartida y usarla durante la creación del centro.
En Azure Portal, busque Azure AI Foundry
. En el menú de la izquierda, elija AI Hubs; después, haga clic en + Crear y Hub.
En la pestaña Aspectos básicos, escriba los detalles del centro y, a continuación, seleccione la pestaña Almacenamiento. Seleccione la cuenta de Azure Storage que creó anteriormente.
En la pestaña Identidad, establezca el tipo de acceso de la cuenta de almacenamiento en basado en identidades y, a continuación, habilite la opción Deshabilitar acceso con clave compartida.
Continúe con el proceso de creación del centro. A medida que se crea el centro, a la identidad administrada se le asignan automáticamente los permisos que necesita para acceder a la cuenta de almacenamiento.
Al crear el centro con el SDK, establezca system_datastores_auth_mode="identity"
. Para usar una cuenta de almacenamiento preexistente, use el parámetro storage_account
para especificar el identificador de Azure Resource Manager de una cuenta de almacenamiento existente:
# Creating a unique hub name with current datetime to avoid conflicts
from azure.ai.ml.entities import Hub
import datetime
hub_name = "mlw-hub-prod-" + datetime.datetime.now().strftime(
"%Y%m%d%H%M"
)
ws_hub = Hub(
name=hub_name,
location="eastus",
display_name="Hub-example",
description="This example shows how to create a Hub",
hbi_workspace=False,
tags=dict(purpose="demo"),
storage_account= {existing_storage_account with AllowSharedKeyAccess=false},
system_datastores_auth_mode="identity",
)
created_hub = ml_client.workspaces.begin_create(ws_hub).result()
print(created_hub)
Para crear un centro con autorización de Microsoft Entra ID para la cuenta de almacenamiento, use un archivo de configuración YAML que establezca system_datastores_auth_mode
en identity
. También puede especificar el valor de identificador de recurso de Azure de una cuenta de almacenamiento existente con la entrada storage_account
.
En este archivo YAML de ejemplo se muestra cómo establecer el centro para usar una identidad administrada y una cuenta de almacenamiento existente:
$schema: https://azuremlschemas.azureedge.net/latest/workspace.schema.json
name: mlw-basicex-prod
location: eastus
display_name: Bring your own dependent resources-example
description: This configuration specifies a workspace configuration with existing dependent resources
storage_account: {your storage account resource id}
system_datastores_auth_mode: identity
tags:
purpose: demonstration
Este archivo YAML se puede usar con el comando az ml workspace create
, con el parámetro --file
:
az ml workspace create -g <resource-group-name> --kind hub --file workspace.yml
En el siguiente ejemplo de plantilla JSON, sustituya con sus propios valores los siguientes marcadores de posición:
- [nombre del área de trabajo]
- [nombre descriptivo del área de trabajo]
- [identificador de recurso de ARM de la cuenta de almacenamiento]
- [identificador de recurso de ARM de Key Vault]
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources":
[
{
"type": "Microsoft.MachineLearningServices/workspaces",
"apiVersion": "2024-04-01",
"name": "[workspace name]",
"location": "[resourceGroup().location]",
"sku":
{
"name": "Basic",
"tier": "Basic"
},
"kind": "Hub",
"identity":
{
"type": "SystemAssigned"
},
"properties":
{
"friendlyName": "[workspace friendly name]",
"storageAccount": "[Storage Account ARM resource ID]",
"keyVault": "[Key Vault ARM resource ID]",
"systemDatastoresAuthMode": "identity",
"managedNetwork":
{
"isolationMode": "Disabled"
},
"publicNetworkAccess": "Enabled"
}
}
]
}
Para información sobre cómo implementar una plantilla de ARM, consulte alguno de los siguientes artículos:
Después de crear el centro, identifique todos los usuarios que lo usarán, por ejemplo, los científicos de datos. Estos usuarios deben tener asignados los roles Colaborador de datos de Storage Blob y Colaborador con privilegios de datos de archivos de Storage en el control de acceso basado en rol de Azure para la cuenta de almacenamiento. Si estos usuarios solo necesitan acceso de lectura, use en su lugar los roles Lector de datos de Storage Blob y Lector con privilegios de datos de archivos de Storage. Para más información, consulte la sección Asignaciones de roles.
Actualizar un centro de conectividad existente
Si tiene un centro de Azure AI Foundry existente, siga los pasos descritos en esta sección para actualizar el centro para usar Microsoft Entra ID para autorizar el acceso a la cuenta de almacenamiento. A continuación, deshabilite el acceso con clave compartida en la cuenta de almacenamiento.
Vaya a Azure Portal y seleccione el centro de Azure AI Foundry.
En el menú de la izquierda, seleccione Propiedades. En la parte inferior de la página, establezca Tipo de acceso de cuenta de almacenamiento en Basado en identidades. Seleccione Guardar en la parte superior de la página para guardar la configuración.
Para actualizar un centro existente, establezca el valor de system_datastores_auth_mode = "identity"
para el centro. En este ejemplo de código se muestra una actualización de un centro denominado test-ws1
:
ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group)
ws = ml_client.workspaces.get(name="test-ws1")
ws.system_datastores_auth_mode = "identity"
ws = ml_client.workspaces.begin_update(workspace=ws).result()
Para actualizar un centro existente, use el comando az ml workspace update
y especifique --system-datastores-auth-mode identity
. En este ejemplo se muestra una actualización de un centro denominado myhub
:
az ml workspace update --name myhub --system-datastores-auth-mode identity
En el siguiente ejemplo de plantilla JSON, sustituya con sus propios valores los siguientes marcadores de posición:
- [nombre del área de trabajo]
- [nombre descriptivo del área de trabajo]
- [identificador de recurso de ARM de la cuenta de almacenamiento]
- [identificador de recurso de ARM de Key Vault]
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources":
[
{
"type": "Microsoft.MachineLearningServices/workspaces",
"apiVersion": "2024-04-01",
"name": "[workspace name]",
"location": "[resourceGroup().location]",
"sku":
{
"name": "Basic",
"tier": "Basic"
},
"kind": "Hub",
"identity":
{
"type": "SystemAssigned"
},
"properties":
{
"friendlyName": "[workspace friendly name]",
"storageAccount": "[Storage Account ARM resource ID]",
"keyVault": "[Key Vault ARM resource ID]",
"systemDatastoresAuthMode": "identity",
"managedNetwork":
{
"isolationMode": "Disabled"
},
"publicNetworkAccess": "Enabled"
}
}
]
}
Para información sobre cómo implementar una plantilla de ARM, consulte alguno de los siguientes artículos:
Asignar funciones a usuarios
Después de actualizar el centro, actualice la cuenta de almacenamiento para deshabilitar el acceso con clave compartida. Para más información sobre cómo deshabilitar el acceso con clave compartida, consulte el artículo Impedir la autorización con clave compartida para una cuenta de Azure Storage.
También debe identificar todos los usuarios que necesitan acceso a los almacenes de datos predeterminados, por ejemplo, los científicos de datos. Estos usuarios deben tener asignados los roles Colaborador de datos de Storage Blob y Colaborador con privilegios de datos de archivos de Storage en el control de acceso basado en rol de Azure para la cuenta de almacenamiento. Si estos usuarios solo necesitan acceso de lectura, use en su lugar los roles Lector de datos de Storage Blob y Lector con privilegios de datos de archivos de Storage. Para más información, consulte el recurso Asignaciones de roles en este documento.
Volver a usar las claves compartidas
Para revertir un centro al uso de claves compartidas para acceder a la cuenta de almacenamiento, use esta información:
Para actualizar un área de trabajo existente, vaya a Propiedades y seleccione Acceso basado en credenciales.
Seleccione Guardar para guardar esta opción.
Para configurar el centro para que use de nuevo una clave compartida, establezca el valor de system_datastores_auth_mode = "accesskey"
para el centro. Este código muestra una actualización de un centro denominado test-ws1
:
ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group)
ws = ml_client.workspaces.get(name="test-ws1")
ws.system_datastores_auth_mode = "accesskey"
ws = ml_client.workspaces.begin_update(workspace=ws).result()
Para configurar el centro para que use una vez más una clave compartida, use el comando az ml workspace update
y especifique --system-datastores-auth-mode accesskey
. En este ejemplo se muestra una actualización de un centro denominado myhub
:
az ml workspace update --name myhub --system-datastores-auth-mode accesskey
Si tiene un centro de Azure AI Foundry existente, siga los pasos descritos en esta sección para actualizar el centro para usar Microsoft Entra ID para autorizar el acceso a la cuenta de almacenamiento. A continuación, deshabilite el acceso con clave compartida en la cuenta de almacenamiento.
En el siguiente ejemplo de plantilla JSON, sustituya con sus propios valores los siguientes marcadores de posición:
- [nombre del área de trabajo]
- [nombre descriptivo del área de trabajo]
- [identificador de recurso de ARM de la cuenta de almacenamiento]
- [identificador de recurso de ARM de Key Vault]
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources":
[
{
"type": "Microsoft.MachineLearningServices/workspaces",
"apiVersion": "2024-04-01",
"name": "[workspace name]",
"location": "[resourceGroup().location]",
"sku":
{
"name": "Basic",
"tier": "Basic"
},
"kind": "Hub",
"identity":
{
"type": "SystemAssigned"
},
"properties":
{
"friendlyName": "[workspace friendly name]",
"storageAccount": "[Storage Account ARM resource ID]",
"keyVault": "[Key Vault ARM resource ID]",
"systemDatastoresAuthMode": "accesskey",
"managedNetwork":
{
"isolationMode": "Disabled"
},
"publicNetworkAccess": "Enabled"
}
}
]
}
Para información sobre cómo implementar una plantilla de ARM, consulte alguno de los siguientes artículos:
Después de crear el centro, identifique todos los usuarios que lo usarán, por ejemplo, los científicos de datos. Estos usuarios deben tener asignados los roles Colaborador de datos de Storage Blob y Colaborador con privilegios de datos de archivos de Storage en el control de acceso basado en rol de Azure para la cuenta de almacenamiento. Si estos usuarios solo necesitan acceso de lectura, use en su lugar los roles Lector de datos de Storage Blob y Lector con privilegios de datos de archivos de Storage. Para más información, consulte el recurso Asignaciones de roles en este documento.
Después de revertir el centro, actualice la cuenta de almacenamiento para habilitar el acceso con clave compartida. Para más información, consulte Impedir la autorización con clave compartida para una cuenta de Azure Storage.
Escenarios para asignaciones de roles de la cuenta de almacenamiento del centro
Para trabajar con una cuenta de almacenamiento con acceso con clave compartida deshabilitada, es posible que tenga que conceder más roles a los usuarios o a la identidad administrada del centro. De forma predeterminada, los centros tienen una identidad administrada asignada por el sistema. Sin embargo, algunos escenarios requieren una identidad administrada asignada por el usuario. En esta tabla se resumen los escenarios que requieren asignaciones de roles adicionales:
Escenario |
Microsoft Entra ID |
Roles necesarios |
Notas |
Voz de IA |
Colaborador de datos de Storage Blob Colaborador con privilegios de datos de archivos de almacenamiento |
|
|
Modelo como servicio |
Identidad administrada asignada por el sistema |
Colaborador de datos de Storage Blob |
La identidad administrada del centro. Se le asignó automáticamente el rol cuando se aprovisionó. No cambie manualmente esta asignación de roles. |
Azure Search |
Identidad administrada asignada por el sistema |
Colaborador de datos de Storage Blob |
La identidad administrada del centro. Se le asignó automáticamente el rol cuando se aprovisionó. No cambie manualmente esta asignación de roles. |
Optimización de los modelos de software de código abierto |
Identidad administrada asignada por el usuario |
Colaborador de datos de Storage Blob |
|
PromptFlow |
Identidad del usuario |
Colaborador de datos de Storage Blob Colaborador con privilegios de datos de archivos de almacenamiento |
|
Adición y administración de datos propios |
Identidad del usuario |
Colaborador de datos de Storage Blob |
|
Contenido relacionado