Si applica solo a:
Portale di Foundry (versione classica). Questo articolo non è disponibile per il nuovo portale foundry.
Altre informazioni sul nuovo portale.
Nota
I collegamenti in questo articolo potrebbero aprire contenuto nella nuova documentazione di Microsoft Foundry anziché nella documentazione di Foundry (versione classica) visualizzata.
Nota
Le informazioni contenute in questo articolo sono specifiche di un progetto basato su hub e non si applicano a un progetto Foundry. Per altre informazioni, vedere Tipi di progetti.
Un hub Microsoft Foundry usa una chiave condivisa per accedere all'account Archiviazione di Azure predefinito. Con l'autorizzazione basata su chiave, chiunque abbia la chiave e l'accesso all'account di archiviazione possa accedere ai dati.
Per ridurre il rischio di accesso non autorizzato, disabilitare l'autorizzazione basata su chiave e usare invece Microsoft Entra ID per l'autorizzazione. Questa configurazione usa un valore Microsoft Entra ID per autorizzare l'accesso all'account di archiviazione. L'identità usata per accedere all'archiviazione è l'identità dell'utente o un'identità gestita. L'identità dell'utente viene utilizzata per visualizzare i dati in Azure Machine Learning Studio o per eseguire un notebook autenticandosi con la propria identità. Machine Learning usa un'identità gestita per accedere all'account di archiviazione, ad esempio quando l'identità gestita esegue un processo di training.
L'uso del tuo hub con un account di archiviazione con chiave condivisa disabilitata è attualmente in fase di anteprima.
Importante
Questa funzionalità è attualmente disponibile in anteprima pubblica. Questa versione di anteprima viene fornita senza un contratto di servizio e non è consigliabile per i carichi di lavoro di produzione. Alcune funzionalità potrebbero non essere supportate o potrebbero avere funzionalità limitate.
Per altre informazioni, vedere Condizioni supplementari per l'utilizzo delle anteprime di Microsoft Azure.
Prerequisiti
È necessario un account di archiviazione esistente con autorizzazione con chiave condivisa disabilitata. Per altre informazioni sul processo e sulle implicazioni della disabilitazione dell'autorizzazione con chiave condivisa per l'account di archiviazione, vedere Prevent shared-key authorization for an Archiviazione di Azure account.
Installare l'SDK v2.
Importante
Questo articolo richiede il pacchetto azure-ai-ml Python versione 1.31.0 o successiva. Per controllare la versione del pacchetto installata, usare il comando pip list dall'ambiente di sviluppo Python.
Installare azure-identity: pip install azure-identity. Se lavori in una cella del notebook, usa %pip install azure-identity.
Assicurati di avere i seguenti ruoli RBAC nell'account di archiviazione per gli utenti che necessitano di accesso:
-
Collaboratore ai dati dei BLOB di archiviazione e Collaboratore ai dati dei file di archiviazione con privilegi per l'accesso in lettura/scrittura
-
Lettore dei dati nel blob di archiviazione e Lettore privilegiato dei file di archiviazione per l'accesso in sola lettura
Specificare i dettagli della sottoscrizione:
# Enter details of your subscription
subscription_id = "<SUBSCRIPTION_ID>"
resource_group = "<RESOURCE_GROUP>"
Ottieni un riferimento alla sottoscrizione. Tutto il codice Python in questo articolo 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)
(Facoltativo) Se disponi di più account, inserisci l'ID tenant di Microsoft Entra ID che desideri utilizzare in DefaultAzureCredential. Trovare l'ID del tenant nel portale Azure sotto Microsoft Entra ID>Identità Esterne.
DefaultAzureCredential(interactive_browser_tenant_id="<TENANT_ID>")
(Facoltativo) Se si lavora nel Azure per enti pubblici - US o Azure gestito da 21Vianet, è necessario specificare il cloud in cui si vuole eseguire l'autenticazione. È possibile specificare queste aree in DefaultAzureCredential.
from azure.identity import AzureAuthorityHosts
DefaultAzureCredential(authority=AzureAuthorityHosts.AZURE_GOVERNMENT))
Per usare i comandi dell'interfaccia della riga di comando in questo articolo, sono necessari interfaccia della riga di comando di Azure e l'estensione Azure Machine Learning.
Se si usa Azure Cloud Shell, si accede all'interfaccia della riga di comando tramite il browser. Vive nel cloud.
Importante
La procedura descritta in questo articolo richiede l'estensione interfaccia della riga di comando di Azure per Machine Learning versione 2.27.0 o successiva. Per determinare la versione dell'estensione installata, usare il comando az version dal interfaccia della riga di comando di Azure. Nella raccolta di estensioni che restituisce trovare l'estensione ml . Questo esempio di codice mostra un valore restituito di esempio:
{
"azure-cli": "2.61.0",
"azure-cli-core": "2.61.0",
"azure-cli-telemetry": "1.1.0",
"extensions": {
"ml": "2.27.0"
}
}
- Istanza di Azure Key Vault esistente.
- ID di Azure Resource Manager sia per l'account di archiviazione che per la key vault da utilizzare con l'hub.
Creare un nuovo hub
Quando si crea un nuovo hub, è possibile disabilitare automaticamente l'accesso con chiave condivisa. È anche possibile creare un account di archiviazione, disabilitare l'accesso con chiave condivisa e usarlo durante la creazione dell'hub.
Questa sezione illustra come creare un hub con accesso basato su identità all'account di archiviazione.
Nel portale di Azure cercare Foundry. Nel menu a sinistra selezionare Hub di intelligenza artificiale e selezionare + Crea>hub.
Nella scheda Informazioni di base immettere i dettagli dell'hub e selezionare la scheda Archiviazione . Selezionare l'account di archiviazione creato in precedenza.
Nella scheda Identità impostare Accesso dell'account di archiviazioneall'accesso basato sull'identità.
Abilitare Disabilita l'accesso con chiave condivisa.
Continuare il processo di creazione dell'hub. Quando viene creato l'hub, l'identità gestita ottiene automaticamente le autorizzazioni necessarie per accedere all'account di archiviazione.
Quando si crea il tuo hub utilizzando l'SDK, configura system_datastores_auth_mode="identity" per l'hub. Per usare un account di archiviazione esistente, usare il parametro storage_account per specificare l'ID Resource Manager di un account di archiviazione esistente:
# Creating a unique hub name with current datetime to avoid conflicts
from azure.ai.ml import MLClient
from azure.ai.ml.entities import Hub
from azure.identity import DefaultAzureCredential
import datetime
# ml_client is assumed to be authenticated as per prerequisites
# ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group)
hub_name = "ai-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)
Questo comando restituisce la configurazione dell'hub creata. È possibile verificare che l'hub sia stato creato correttamente controllando l'output per il nome dell'hub e il valore system_datastores_auth_mode.
Riferimento: classe Hub, classe MLClient
Per creare un nuovo hub con autorizzazione di Microsoft Entra ID per l'account di archiviazione, usare un file di configurazione YAML che imposta system_datastores_auth_mode su identity. È anche possibile specificare l'ID Resource Manager di un account di archiviazione esistente con la voce storage_account.
Questo file YAML di esempio illustra come impostare l'hub per usare un'identità gestita e un account di archiviazione esistente:
$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
È possibile usare questo file YAML con il az ml workspace create comando e il --file parametro :
az ml workspace create -g <resource-group-name> --kind hub --file workspace.yml
Riferimento: az ml workspace create
Nell'esempio di modello JSON sostituire i propri valori con i segnaposto seguenti:
<workspace-name>
<workspace-friendly-name>
<storage-account-arm-resource-id>
<key-vault-arm-resource-id>
{
"$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"
}
}
]
}
Per informazioni su come distribuire un modello di Azure Resource Manager, consulta i seguenti articoli:
Dopo aver creato l'hub, identificare tutti gli utenti che devono usarlo, ad esempio data scientist. È necessario assegnare i ruoli di Collaboratore ai dati BLOB di archiviazione e Collaboratore privilegiato ai dati dei file di archiviazione nel controllo degli accessi basato sui ruoli di Azure per l'account di archiviazione. Se gli utenti necessitano solo dell'accesso in lettura, usare invece i ruoli Lettore dati blob di archiviazione e Lettore con privilegi per i file di archiviazione. Per altre informazioni, vedere Assegnazioni di ruolo.
Aggiornare un hub esistente
Se si dispone di un hub Foundry esistente, seguire la procedura descritta in questa sezione per aggiornare l'hub in modo da usare Microsoft Entra ID per autorizzare l'accesso all'account di archiviazione. Disabilitare quindi l'accesso con chiave condivisa nell'account di archiviazione.
Passare al portale di Azure e selezionare Hubfoundry.
Nel menu a sinistra selezionare Proprietà. Nella parte inferiore del riquadro, impostare Accesso dell'account di archiviazione su accesso basato su identità. Selezionare Salva nella parte superiore del riquadro per salvare la configurazione.
Per aggiornare un hub esistente, impostare system_datastores_auth_mode = "identity" per l'hub. L'esempio di codice seguente mostra un aggiornamento di un hub denominato test-ws1:
from azure.identity import DefaultAzureCredential
from azure.ai.ml import MLClient
# subscription_id = "<your-subscription-id>"
# resource_group = "<your-resource-group>"
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()
Questa operazione restituisce la configurazione dell'hub aggiornata con system_datastores_auth_mode impostato su identity.
Riferimento: classe MLClient
Per aggiornare un hub esistente, usare il az ml workspace update comando e specificare --system-datastores-auth-mode identity. L'esempio seguente mostra un aggiornamento di un hub denominato myhub:
az ml workspace update --name myhub --system-datastores-auth-mode identity
Per verificare che la configurazione sia stata applicata, eseguire:
az ml workspace show --name myhub --query systemDatastoresAuthMode
L'output dovrebbe visualizzare identity.
Riferimento: az ml workspace update
Nell'esempio di modello JSON sostituire i propri valori con i segnaposto seguenti:
<workspace-name>
<workspace-friendly-name>
<storage-account-arm-resource-id>
<key-vault-arm-resource-id>
{
"$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"
}
}
]
}
Per informazioni su come distribuire un modello di Resource Manager, vedere gli articoli seguenti.
Assegnare ruoli agli utenti
Dopo aver aggiornato l'hub, aggiornare l'account di archiviazione per disabilitare l'accesso con chiave condivisa. Per altre informazioni, vedere Prevent shared-key authorization for an Archiviazione di Azure account.
È anche necessario identificare tutti gli utenti che devono accedere agli archivi dati predefiniti, ad esempio data scientist. Assegnare i ruoli Collaboratore ai dati dei BLOB di archiviazione e Collaboratore ai dati dei file di archiviazione con privilegi per l'account di archiviazione nel RBAC di Azure a questi utenti. Se gli utenti hanno bisogno soltanto dell'accesso in lettura, è consigliabile utilizzare i ruoli Lettore dati di blob di archiviazione e Lettore dati privilegiato di file di archiviazione. Per altre informazioni, vedere la sezione Assegnazioni di ruolo .
Tornare a utilizzare chiavi condivise
Per ripristinare un hub usando chiavi condivise per accedere all'account di archiviazione, usare le informazioni seguenti.
Passare a Proprietà e selezionare Accesso basato sulle credenziali.
Selezionare Salva.
Per configurare di nuovo l'hub per l'uso di una chiave condivisa, impostare system_datastores_auth_mode = "accesskey" per l'hub. Questo codice aggiorna un hub denominato test-ws1:
from azure.identity import DefaultAzureCredential
from azure.ai.ml import MLClient
# subscription_id = "<your-subscription-id>"
# resource_group = "<your-resource-group>"
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()
Questo codice restituisce la configurazione dell'hub aggiornata con system_datastores_auth_mode impostato su accesskey.
Riferimento: classe MLClient
Per configurare l'hub per usare di nuovo una chiave condivisa, usare il az ml workspace update comando e specificare --system-datastores-auth-mode accesskey. Questo esempio aggiorna un hub denominato myhub:
az ml workspace update --name myhub --system-datastores-auth-mode accesskey
Riferimento: az ml workspace update
Se si dispone di un hub Foundry esistente, seguire la procedura descritta in questa sezione per aggiornare l'hub in modo da usare Microsoft Entra ID per autorizzare l'accesso all'account di archiviazione. Disabilitare quindi l'accesso con chiave condivisa nell'account di archiviazione.
Nell'esempio di modello JSON sostituire i propri valori con i segnaposto seguenti:
<workspace-name>
<workspace-friendly-name>
<storage-account-arm-resource-id>
<key-vault-arm-resource-id>
{
"$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"
}
}
]
}
Per informazioni su come distribuire un modello ARM, vedere gli articoli seguenti:
Dopo aver creato l'hub, identificare tutti gli utenti che lo useranno, ad esempio data scientist. Assegnare agli utenti i ruoli Collaboratore ai dati dei BLOB di archiviazione e Collaboratore ai dati dei file di archiviazione con privilegi in Azure controllo degli accessi in base al ruolo per l'account di archiviazione. Se gli utenti necessitano solo dell'accesso in lettura, usare invece i ruoli Lettore dati blob di archiviazione e Lettore con privilegi per i file di archiviazione. Per altre informazioni, vedere la sezione Assegnazioni di ruolo .
Dopo aver ripristinato l'hub, aggiornare l'account di archiviazione per abilitare l'accesso con chiave condivisa. Per altre informazioni, vedere *Prevent shared-key authorization for an Archiviazione di Azure account*.
Scenari per le assegnazioni di ruolo nell'account hub di archiviazione
Per lavorare con un account di archiviazione che ha disabilitato l'accesso tramite chiave condivisa, assegnare più ruoli agli utenti o all'identità gestita per l'hub. Gli hub hanno un'identità gestita assegnata dal sistema per impostazione predefinita. Alcuni scenari richiedono un'identità gestita assegnata dall'utente. Questa tabella riepiloga gli scenari che richiedono assegnazioni di ruolo aggiuntive.
| Scenario |
Microsoft Entra ID |
Ruoli obbligatori |
Note |
| Azure Servizio Vocale negli strumenti Foundry |
Identità dell'utente |
Collaboratore privilegiato ai dati del file di archiviazione Collaboratore ai dati dei BLOB di archiviazione |
|
| Modelli come servizio |
Identità gestita assegnata dal sistema |
Collaboratore dei dati di Storage Blob |
Identità gestita dell'hub.
Assegnato automaticamente il ruolo quando si effettua il provisioning dell'hub.
Non modificare manualmente questa assegnazione di ruolo. |
| Azure AI Search |
Identità gestita assegnata dal sistema |
Collaboratore dei dati di Storage Blob |
Identità gestita dell'hub.
Assegnato automaticamente il ruolo quando si effettua il provisioning dell'hub.
Non modificare manualmente questa assegnazione di ruolo. |
| Ottimizzazione dei modelli software open source |
Identità gestita assegnata dall'utente |
Collaboratore dei dati di Storage Blob |
|
| Flusso di richiesta |
Identità dell'utente |
Collaboratore ai dati dei BLOB di archiviazione Collaboratore ai dati del file di archiviazione con privilegi |
|
| Aggiungere e gestire i propri dati |
Identità dell'utente |
Collaboratore dei dati di Storage Blob |
|
Contenuto correlato