Nastavení ověřování mezi Azure Machine Learning a dalšími službami
PLATÍ PRO:Rozšíření Azure CLI ml v2 (aktuální)Python SDK azure-ai-ml v2 (aktuální)
Služba Azure Machine Learning se skládá z několika jiných služeb Azure. Mezi Službou Azure Machine Learning a službami, na které spoléhá, může dojít k více způsobům ověřování.
- Pracovní prostor Azure Machine Learning používá spravovanou identitu ke komunikaci s jinými službami. Ve výchozím nastavení se jedná o spravovanou identitu přiřazenou systémem. Místo toho můžete použít spravovanou identitu přiřazenou uživatelem.
- Azure Machine Learning používá Azure Container Registry (ACR) k ukládání imagí Dockeru používaných k trénování a nasazování modelů. Pokud službě Azure Machine Learning povolíte automatické vytvoření služby ACR, povolí se účet správce.
- Výpočetní cluster Azure Machine Learning používá spravovanou identitu k načtení informací o připojení pro úložiště dat ze služby Azure Key Vault a k načtení imagí Dockeru z ACR. Můžete také nakonfigurovat přístup založený na identitě k úložišti dat, který místo toho použije spravovanou identitu výpočetního clusteru.
- Přístup k datům může probíhat v různých cestách v závislosti na službě úložiště dat a vaší konfiguraci. Například ověřování v úložišti dat může používat klíč účtu, token, objekt zabezpečení, spravovanou identitu nebo identitu uživatele.
- Spravované online koncové body můžou při odvozování používat spravovanou identitu pro přístup k prostředkům Azure. Další informace najdete v tématu Přístup k prostředkům Azure z online koncového bodu.
Požadavky
Než budete postupovat podle kroků v tomto článku, ujistěte se, že máte následující požadavky:
Pracovní prostor služby Azure Machine Learning. Pokud ho nemáte, vytvořte ho pomocí kroků v rychlém startu : Vytvoření článku o prostředcích pracovního prostoru.
Azure CLI a
ml
rozšíření nebo sada Azure Machine Learning Python SDK v2:Pokud chcete nainstalovat Azure CLI a rozšíření, přečtěte si téma Instalace, nastavení a použití rozhraní příkazového řádku (v2).
Důležité
Příklady rozhraní příkazového řádku v tomto článku předpokládají, že používáte prostředí Bash (nebo kompatibilní). Například ze systému Linux nebo Subsystém Windows pro Linux.
K instalaci sady Python SDK v2 použijte následující příkaz:
pip install azure-ai-ml azure-identity
Pokud chcete aktualizovat existující instalaci sady SDK na nejnovější verzi, použijte následující příkaz:
pip install --upgrade azure-ai-ml azure-identity
Další informace najdete v tématu Instalace sady Python SDK v2 pro Azure Machine Learning.
Pokud chcete přiřadit role, musí mít přihlášení k předplatnému Azure roli operátora spravované identity nebo jinou roli, která uděluje požadované akce (například vlastníka).
Musíte být obeznámeni s vytvářením a prací se spravovanými identitami.
Typy identit pracovního prostoru
Pracovní prostor Azure Machine Learning používá spravovanou identitu ke komunikaci s jinými službami. Azure Machine Learning podporuje více typů identit.
Typ spravované identity | Vytvoření přiřazení role | Účel |
---|---|---|
Přiřazené systémem (SAI) | Spravuje ho Microsoft | Životní cyklus svázaný s prostředkem; použití jednoho zdroje; Snadné zahájení práce |
Přiřazení systému a přiřazení uživatele (SAI+UAI) | Spravováno vámi | Nezávislý životní cyklus pro identitu přiřazenou uživatelem, použití více prostředků řídí nejméně privilegovaný přístup. Přístup k datům v trénovacích úlohách |
Jakmile se pracovní prostor vytvoří s typem identity SAI, můžete ho aktualizovat na SAI+UAI, ale ne z SAI+UAI na SAI. Ke stejnému pracovnímu prostoru můžete přiřadit více identit přiřazených uživatelem.
Azure Container Registry a typy identit
Tato tabulka uvádí matici podpory při ověřování ve službě Azure Container Registry v závislosti na metodě ověřování a konfiguraci přístupu k veřejné síti ve službě Azure Container Registry.
Metoda ověřování | Zakázaný přístup k veřejné síti |
Povolený přístup k veřejné síti ve službě Azure Container Registry |
---|---|---|
Uživatel s rolí správce | ✓ | ✓ |
Spravovaná identita přiřazená systémem pracovního prostoru | ✓ | ✓ |
Spravovaná identita přiřazená uživatelem
Pracovní prostor
Spravovanou identitu přiřazenou uživatelem můžete přidat při vytváření pracovního prostoru Azure Machine Learning z webu Azure Portal. Při vytváření pracovního prostoru postupujte následovně:
- Na stránce Základy vyberte účet služby Azure Storage, Azure Container Registry a Azure Key Vault, které chcete použít s pracovním prostorem.
- Na stránce Identita vyberte identitu přiřazenou uživatelem a pak vyberte spravovanou identitu, která se má použít.
Pro přístup k datům přidruženým k prostředkům přidruženým k pracovnímu prostoru Azure Machine Learning se vyžadují následující přiřazení rolí Azure RBAC pro vaši spravovanou identitu přiřazenou uživatelem.
Prostředek | Oprávnění |
---|---|
Pracovní prostor služby Azure Machine Learning | Přispěvatel |
Azure Storage | Přispěvatel (řídicí rovina) + Přispěvatel dat v objektech blob služby Storage (rovina dat, volitelná, povolení náhledu dat v studio Azure Machine Learning) |
Azure Key Vault (při použití modelu oprávnění RBAC) | Přispěvatel (řídicí rovina) + Správce služby Key Vault (rovina dat) |
Azure Key Vault (při použití modelu oprávnění zásad přístupu) | Přispěvatel + všechna oprávnění zásad přístupu kromě operací vymazání |
Azure Container Registry | Přispěvatel |
Azure Application Insights | Přispěvatel |
Pro automatizované vytváření přiřazení rolí u spravované identity přiřazené uživatelem můžete použít tuto šablonu ARM.
Tip
Pro pracovní prostor s klíči spravovanými zákazníkem pro šifrování můžete předat spravovanou identitu přiřazenou uživatelem pro ověření z úložiště do služby Key Vault. user-assigned-identity-for-cmk-encryption
K předání spravované identity použijte parametry (CLI) nebo user_assigned_identity_for_cmk_encryption
(SDK). Tato spravovaná identita může být stejná nebo jiná jako spravovaná identita přiřazená primárním uživatelem pracovního prostoru.
Pokud chcete vytvořit pracovní prostor s více identitami přiřazenými uživatelem, použijte jednu z následujících metod:
PLATÍ PRO: Rozšíření Azure CLI ml v2 (aktuální)
az ml workspace create -f workspace_creation_with_multiple_UAIs.yml --subscription <subscription ID> --resource-group <resource group name> --name <workspace name>
Pokud je obsah workspace_creation_with_multiple_UAIs.yml následující:
location: <region name>
identity:
type: user_assigned
user_assigned_identities:
'<UAI resource ID 1>': {}
'<UAI resource ID 2>': {}
storage_account: <storage acccount resource ID>
key_vault: <key vault resource ID>
image_build_compute: <compute(virtual machine) resource ID>
primary_user_assigned_identity: <one of the UAI resource IDs in the above list>
Pokud chcete aktualizovat identity přiřazené uživatelem pro pracovní prostor, včetně přidání nové identity nebo odstranění existujících identit, použijte jednu z následujících metod:
PLATÍ PRO: Rozšíření Azure CLI ml v2 (aktuální)
az ml workspace update -f workspace_update_with_multiple_UAIs.yml --subscription <subscription ID> --resource-group <resource group name> --name <workspace name>
Pokud je obsah workspace_update_with_multiple_UAIs.yml následující:
identity:
type: user_assigned
user_assigned_identities:
'<UAI resource ID 1>': {}
'<UAI resource ID 2>': {}
primary_user_assigned_identity: <one of the UAI resource IDs in the above list>
Tip
Pokud chcete přidat nové UAI, můžete zadat nové ID UAI pod oddílem user_assigned_identities kromě existujících identifikátorů UAI, je nutné předat všechna existující ID UAI.
Pokud chcete odstranit jeden nebo více existujících identifikátorů UAI, můžete do oddílu user_assigned_identities zachovat identifikátory UAI, které je potřeba zachovat, identifikátory UAI se odstraní.
Přidání spravované identity přiřazené uživatelem do pracovního prostoru kromě identity přiřazené systémem
V některých scénářích možná budete muset kromě výchozí identity pracovního prostoru přiřazené systémem použít spravovanou identitu přiřazenou uživatelem. Pokud chcete přidat spravovanou identitu přiřazenou uživatelem beze změny stávající identity pracovního prostoru, postupujte následovně:
Vytvořte spravovanou identitu přiřazenou uživatelem. Uložte ID pro spravovanou identitu, kterou vytvoříte.
Pokud chcete ke svému pracovnímu prostoru připojit spravovanou identitu, potřebujete soubor YAML, který určuje identitu. Následuje příklad obsahu souboru YAML. Nahraďte hodnotu
<TENANT_ID>
a<RESOURCE_GROUP>
<USER_MANAGED_ID>
nahraďte hodnotami.identity: type: system_assigned,user_assigned tenant_id: <TENANT_ID> user_assigned_identities: '/subscriptions/<SUBSCRIPTION_ID/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER_MANAGED_ID>': {}
K aktualizaci pracovního prostoru použijte příkaz Azure CLI
az ml workspace update
. Pomocí parametru--file
zadejte soubor YAML z předchozího kroku. Následující příklad ukazuje, jak tento příkaz vypadá:az ml workspace update --resource-group <RESOURCE_GROUP> --name <WORKSPACE_NAME> --file <YAML_FILE_NAME>.yaml
Výpočtový cluster
Poznámka:
Výpočetní clustery Azure Machine Learning podporují pouze jednu identitu přiřazenou systémem nebo více identit přiřazených uživatelem, ne obě současně.
Výchozí spravovaná identita je spravovaná identita přiřazená systémem nebo první spravovaná identita přiřazená uživatelem.
Během spuštění existují dvě aplikace identity:
Systém používá identitu k nastavení připojení úložiště uživatele, registru kontejnerů a úložišť dat.
- V tomto případě systém použije výchozí spravovanou identitu.
Identitu použijete pro přístup k prostředkům z kódu pro odeslanou úlohu:
- V tomto případě zadejte client_id odpovídající spravované identitě, kterou chcete použít k načtení přihlašovacích údajů.
- Případně získejte ID klienta identity přiřazené uživatelem prostřednictvím proměnné prostředí DEFAULT_IDENTITY_CLIENT_ID .
Pokud například chcete načíst token úložiště dat s výchozí spravovanou identitou:
client_id = os.environ.get('DEFAULT_IDENTITY_CLIENT_ID') credential = ManagedIdentityCredential(client_id=client_id) token = credential.get_token('https://storage.azure.com/')
Ke konfiguraci výpočetního clusteru se spravovanou identitou použijte jednu z následujících metod:
PLATÍ PRO: Rozšíření Azure CLI ml v2 (aktuální)
az ml compute create -f create-cluster.yml
Pokud je obsah create-cluster.yml následující:
$schema: https://azuremlschemas.azureedge.net/latest/amlCompute.schema.json
name: basic-example
type: amlcompute
size: STANDARD_DS3_v2
min_instances: 0
max_instances: 2
idle_time_before_scale_down: 120
identity:
type: user_assigned
user_assigned_identities:
- resource_id: "identity_resource_id"
Následující příklad je z souboru YAML, který vytvoří cluster, který používá spravovanou identitu přiřazenou systémem:
$schema: https://azuremlschemas.azureedge.net/latest/amlCompute.schema.json
name: basic-example
type: amlcompute
size: STANDARD_DS3_v2
min_instances: 0
max_instances: 2
idle_time_before_scale_down: 120
identity:
type: system_assigned
Pokud máte existující výpočetní cluster, můžete změnit mezi uživatelsky spravovanou a systémem spravovanou identitou. Následující příklady ukazují, jak změnit konfiguraci:
Spravovaná identita přiřazená uživatelem
export MSI_NAME=my-cluster-identity
export COMPUTE_NAME=mycluster-msi
does_compute_exist()
{
if [ -z $(az ml compute show -n $COMPUTE_NAME --query name) ]; then
echo false
else
echo true
fi
}
echo "Creating MSI $MSI_NAME"
# Get the resource id of the identity
IDENTITY_ID=$(az identity show --name "$MSI_NAME" --query id -o tsv | tail -n1 | tr -d "[:cntrl:]" || true)
if [[ -z $IDENTITY_ID ]]; then
IDENTITY_ID=$(az identity create -n "$MSI_NAME" --query id -o tsv | tail -n1 | tr -d "[:cntrl:]")
fi
echo "MSI created: $MSI_NAME"
sleep 15 # Let the previous command finish: https://github.com/Azure/azure-cli/issues/8530
echo "Checking if compute $COMPUTE_NAME already exists"
if [ "$(does_compute_exist)" == "true" ]; then
echo "Skipping, compute: $COMPUTE_NAME exists"
else
echo "Provisioning compute: $COMPUTE_NAME"
az ml compute create --name "$COMPUTE_NAME" --type amlcompute --identity-type user_assigned --user-assigned-identities "$IDENTITY_ID"
fi
az ml compute update --name "$COMPUTE_NAME" --identity-type user_assigned --user-assigned-identities "$IDENTITY_ID"
Spravovaná identita přiřazená systémem
export COMPUTE_NAME=mycluster-sa
does_compute_exist()
{
if [ -z $(az ml compute show -n $COMPUTE_NAME --query name) ]; then
echo false
else
echo true
fi
}
echo "Checking if compute $COMPUTE_NAME already exists"
if [ "$(does_compute_exist)" == "true" ]; then
echo "Skipping, compute: $COMPUTE_NAME exists"
else
echo "Provisioning compute: $COMPUTE_NAME"
az ml compute create --name "$COMPUTE_NAME" --type amlcompute
fi
az ml compute update --name "$COMPUTE_NAME" --identity-type system_assigned
Úložiště dat
Když vytvoříte úložiště dat, které používá přístup k datům založeným na identitě, použije se váš účet Azure (token Microsoft Entra) k potvrzení, že máte oprávnění pro přístup ke službě úložiště. Ve scénáři přístupu k datům založeným na identitě se neuloží žádné přihlašovací údaje pro ověřování. V úložišti dat se ukládají jenom informace o účtu úložiště.
Úložiště dat, která používají informace o připojení k mezipaměti ověřování založené na přihlašovacích údajích, jako je klíč účtu úložiště nebo token SAS, naproti tomu v trezoru klíčů přidruženém k pracovnímu prostoru. Tento přístup má omezení, že ostatní uživatelé pracovního prostoru s dostatečnými oprávněními mohou tyto přihlašovací údaje načíst, což může být pro určitou organizaci problém se zabezpečením.
Další informace o ověřování přístupu k datům najdete v článku Správa dat. Informace o konfiguraci přístupu na základě identity k datům najdete v tématu Vytváření úložišť dat.
Existují dva scénáře, ve kterých můžete použít přístup k datům založeným na identitě ve službě Azure Machine Learning. Tyto scénáře jsou vhodné pro přístup založený na identitě, když pracujete s důvěrnými daty a potřebujete podrobnější správu přístupu k datům:
- Přístup ke službám úložiště
- Trénování modelů strojového učení
Přístup založený na identitě umožňuje používat řízení přístupu na základě role (RBAC) k omezení identit, jako jsou uživatelé nebo výpočetní prostředky, přístup k datům.
Přístup ke službám úložiště
Ke službám úložiště se můžete připojit prostřednictvím přístupu k datům založeným na identitě pomocí úložišť dat Azure Machine Learning.
Když používáte přístup k datům založeným na identitě, Azure Machine Learning vás vyzve k ověření přístupu k datům kvůli tokenu Microsoft Entra místo toho, aby vaše přihlašovací údaje uchovávali v úložišti dat. Tento přístup umožňuje správu přístupu k datům na úrovni úložiště a uchovává přihlašovací údaje jako důvěrné.
Stejné chování platí, když pracujete s daty interaktivně prostřednictvím poznámkového bloku Jupyter na místním počítači nebo výpočetní instanci.
Poznámka:
Přihlašovací údaje uložené prostřednictvím ověřování na základě přihlašovacích údajů zahrnují ID předplatného, tokeny sdíleného přístupového podpisu (SAS) a přístupový klíč úložiště a informace o instančním objektu, jako jsou ID klienta a ID tenanta.
Aby bylo zajištěno, že se bezpečně připojíte ke službě Storage v Azure, služba Azure Machine Learning vyžaduje, abyste měli oprávnění pro přístup k odpovídajícímu úložišti dat.
Upozorňující
Přístup mezi tenanty k účtům úložiště se nepodporuje. Pokud pro váš scénář potřebujete přístup mezi tenanty, spojte se s aliasem týmu podpory dat služby Azure Machine Learning a amldatasupport@microsoft.com požádejte ho o pomoc s vlastním řešením kódu.
Přístup k datům založeným na identitě podporuje připojení pouze k následujícím službám úložiště.
- Azure Blob Storage
- Azure Data Lake Storage Gen1
- Azure Data Lake Storage Gen2
Pokud chcete získat přístup k těmto službám úložiště, musíte mít alespoň přístup čtenáře dat objektů blob služby Storage k účtu úložiště. Úroveň přístupu můžou změnit jenom vlastníci účtu úložiště prostřednictvím webu Azure Portal.
Přístup k datům pro trénovací úlohy na výpočetních prostředcích pomocí spravované identity
Některé scénáře strojového učení zahrnují práci s privátními daty. V takových případech nemusí mít datoví vědci přímý přístup k datům jako uživatelé Microsoft Entra. V tomto scénáři se dá spravovaná identita výpočetních prostředků použít k ověřování přístupu k datům. V tomto scénáři jsou data přístupná pouze z výpočetní instance nebo výpočetního clusteru strojového učení, který spouští trénovací úlohu. Díky tomuto přístupu správce udělí výpočetní instanci nebo výpočetnímu clusteru oprávnění čtenáře dat objektů blob služby Storage pro výpočetní cluster. Jednotliví datoví vědci nemusí mít udělený přístup.
Povolení ověřování pomocí spravované identity výpočetních prostředků:
Vytváření výpočetních prostředků s povolenou spravovanou identitou Podívejte se na oddíl výpočetního clusteru nebo na výpočetní instanci v části Přiřadit spravovanou identitu .
Důležité
Pokud je výpočetní instance také nakonfigurovaná pro vypnutí nečinnosti, výpočetní instance se nevypne kvůli nečinnosti, pokud spravovaná identita nemá přístup přispěvatele k pracovnímu prostoru Azure Machine Learning. Další informace o přidělování oprávnění najdete v tématu Správa přístupu k pracovním prostorům Azure Machine Learning.
Udělte výpočetní spravované identitě alespoň roli Čtenář dat objektů blob služby Storage v účtu úložiště.
Vytvořte jakékoli úložiště dat s povoleným ověřováním na základě identity. Viz Vytváření úložišť dat.
Poznámka:
Název vytvořené systémové spravované identity pro výpočetní instanci nebo cluster bude ve formátu /workspace-name/computes/compute-name ve vašem ID Microsoft Entra.
Po povolení ověřování založeného na identitě se výpočetní spravovaná identita použije ve výchozím nastavení při přístupu k datům v rámci trénovacích úloh. Volitelně můžete ověřit identitu uživatele pomocí kroků popsaných v další části.
Informace o použití konfigurace Azure RBAC pro úložiště najdete v tématu Řízení přístupu na základě role.
Přístup k datům pro trénovací úlohy ve výpočetních clusterech pomocí identity uživatele
PLATÍ PRO: Rozšíření Azure CLI ml v2 (aktuální)
Při trénování výpočetních clusterů Azure Machine Learning se můžete ověřit v úložišti pomocí tokenu Microsoft Entra uživatele.
Tento režim ověřování umožňuje:
- Nastavte jemně odstupňovaná oprávnění, kde můžou mít různí uživatelé pracovního prostoru přístup k různým účtům úložiště nebo složkám v rámci účtů úložiště.
- Umožňuje datovým vědcům znovu používat stávající oprávnění pro systémy úložiště.
- Auditovat přístup k úložišti, protože protokoly úložiště ukazují, které identity byly použity pro přístup k datům.
Důležité
Tato funkce má následující omezení:
- Funkce je podporovaná pro experimenty odeslané prostřednictvím azure Machine Learning CLI a sady Python SDK V2, ale ne přes ML Studio.
- Identitu uživatele a spravovanou výpočetní identitu nelze použít k ověřování ve stejné úloze.
- U úloh kanálu doporučujeme nastavit identitu uživatele na úrovni jednotlivých kroků, která se bude spouštět na výpočetních prostředcích, a ne na úrovni kořenového kanálu. ( I když je nastavení identity podporováno na úrovni kořenového kanálu i kroku, má nastavení na úrovni kroku přednost, pokud jsou obě nastavené. U kanálů obsahujících součásti kanálu je však potřeba nastavit identitu u jednotlivých kroků, které se spustí. Identita nastavená na úrovni kořenového kanálu nebo součásti kanálu nebude fungovat. Proto pro zjednodušení doporučujeme nastavit identitu na úrovni jednotlivých kroků.)
Následující kroky popisují, jak nastavit přístup k datům s identitou uživatele pro trénovací úlohy ve výpočetních clusterech z rozhraní příkazového řádku.
Udělte identitě uživatele přístup k prostředkům úložiště. Například udělte StorageBlobReader přístup ke konkrétnímu účtu úložiště, který chcete použít, nebo udělte oprávnění založenému na seznamu ACL konkrétním složkám nebo souborům v úložišti Azure Data Lake Gen2.
Vytvořte úložiště dat Služby Azure Machine Learning bez přihlašovacích údajů uložených v mezipaměti pro účet úložiště. Pokud má úložiště dat přihlašovací údaje uložené v mezipaměti, například klíč účtu úložiště, použijí se tyto přihlašovací údaje místo identity uživatele.
Odešlete trénovací úlohu s identitou vlastností nastavenou na typ: user_identity, jak je znázorněno v následující specifikaci úlohy. Během trénovací úlohy se ověřování k úložišti provede prostřednictvím identity uživatele, který úlohu odešle.
Poznámka:
Pokud vlastnost identity zůstane nezadaná a úložiště dat nemá přihlašovací údaje uložené v mezipaměti, stane se záložní možností spravovaná identita výpočetních prostředků.
command: | echo "--census-csv: ${{inputs.census_csv}}" python hello-census.py --census-csv ${{inputs.census_csv}} code: src inputs: census_csv: type: uri_file path: azureml://datastores/mydata/paths/census.csv environment: azureml:AzureML-sklearn-1.0-ubuntu20.04-py38-cpu@latest compute: azureml:cpu-cluster identity: type: user_identity
Následující kroky popisují, jak nastavit přístup k datům s identitou uživatele pro trénovací úlohy ve výpočetních clusterech ze sady Python SDK.
Udělte přístup k datům a vytvořte úložiště dat, jak je popsáno výše pro rozhraní příkazového řádku.
Odešlete trénovací úlohu s parametrem identity nastaveným na azure.ai.ml.UserIdentityConfiguration. Toto nastavení parametru umožňuje úloze přístup k datům jménem uživatele, který úlohu odesílá.
from azure.ai.ml import command from azure.ai.ml.entities import Data, UriReference from azure.ai.ml import Input from azure.ai.ml.constants import AssetTypes from azure.ai.ml import UserIdentityConfiguration # Specify the data location my_job_inputs = { "input_data": Input(type=AssetTypes.URI_FILE, path="<path-to-my-data>") } # Define the job job = command( code="<my-local-code-location>", command="python <my-script>.py --input_data ${{inputs.input_data}}", inputs=my_job_inputs, environment="AzureML-sklearn-0.24-ubuntu18.04-py37-cpu:9", compute="<my-compute-cluster-name>", identity= UserIdentityConfiguration() ) # submit the command returned_job = ml_client.jobs.create_or_update(job)
Důležité
Během odesílání úloh s ověřováním s povolenou identitou uživatele jsou snímky kódu chráněné proti manipulaci ověřením kontrolního součtu. Pokud máte existující součásti kanálu a chcete je používat s ověřováním s povolenou identitou uživatele, možná je budete muset znovu nahrát. Jinak může úloha při ověřování kontrolního součtu selhat.
Práce s virtuálními sítěmi
Azure Machine Learning ve výchozím nastavení nemůže komunikovat s účtem úložiště, který je za bránou firewall nebo ve virtuální síti.
Účty úložiště můžete nakonfigurovat tak, aby umožňovaly přístup pouze z konkrétních virtuálních sítí. Tato konfigurace vyžaduje další kroky, aby se zajistilo, že data neproniknou mimo síť. Toto chování je stejné pro přístup k datům založeným na přihlašovacích údajích. Další informace naleznete v tématu Jak zabránit exfiltraci dat.
Pokud má váš účet úložiště nastavení virtuální sítě, který určuje, jaký typ identity a oprávnění je potřeba získat přístup. Například pro náhled dat a profil dat určují nastavení virtuální sítě, jaký typ identity se používá k ověření přístupu k datům.
Ve scénářích, ve kterých mají přístup k úložišti jenom určité IP adresy a podsítě, pak Azure Machine Learning používá MSI pracovního prostoru k provádění náhledů dat a profilů.
Pokud je úložiště ADLS Gen2 nebo Blob a má nastavení virtuální sítě, zákazníci můžou v závislosti na nastavení úložiště dat definovaných během vytváření použít buď identitu uživatele, nebo MSI pracovního prostoru.
Pokud je nastavení virtuální sítě "Povolit službám Azure v seznamu důvěryhodných služeb přístup k tomuto účtu úložiště", použije se MSI pracovního prostoru.
Scénář: Azure Container Registry bez uživatele správce
Když zakážete uživatele správce pro ACR, Azure Machine Learning používá spravovanou identitu k sestavení a vyžádání imagí Dockeru. Při konfiguraci služby Azure Machine Learning pro použití služby ACR se zakázaným uživatelem správce existují dva pracovní postupy:
- Povolte službě Azure Machine Learning vytvoření instance služby ACR a potom uživatele s rolí správce zakažte.
- Přeneste existující službu ACR s uživatelem správce, který už je zakázaný.
Azure Machine Learning s automaticky vytvořenou instancí ACR
Vytvořte nový pracovní prostor Azure Machine Learning.
Proveďte akci, která vyžaduje službu Azure Container Registry. Například kurz: Trénování prvního modelu.
Získejte název ACR vytvořeného clusterem.
PLATÍ PRO: Rozšíření Azure CLI ml v2 (aktuální)
az ml workspace show --name <my workspace name> \ --resource-group <my resource group> \ --subscription <my subscription id> \ --query container_registry
Tento příkaz vrátí hodnotu podobnou následujícímu textu. Chcete jenom poslední část textu, což je název instance ACR:
/subscriptions/<subscription id>/resourceGroups/<my resource group>/providers/MicrosoftContainerReggistry/registries/<ACR instance name>
Aktualizujte ACR tak, aby zakázal uživatele správce:
az acr update --name <ACR instance name> --admin-enabled false
Používání vlastní služby ACR
Pokud je uživatel správce ACR zakázán zásadami předplatného, měli byste nejprve vytvořit ACR bez uživatele správce a pak ho přidružit k pracovnímu prostoru.
Vytvořte ACR z Azure CLI bez argumentu nastavení --admin-enabled
nebo webu Azure Portal bez povolení uživatele s rolí správce. Při vytváření pracovního prostoru Azure Machine Learning pak zadejte ID prostředku Azure služby ACR. Následující příklad ukazuje vytvoření nového pracovního prostoru služby Azure Machine Learning, který používá existující službu ACR:
PLATÍ PRO: Rozšíření Azure CLI ml v2 (aktuální)
az ml workspace create -n <workspace name> \
-g <workspace resource group> \
-l <region> \
--container-registry /subscriptions/<subscription id>/resourceGroups/<acr resource group>/providers/Microsoft.ContainerRegistry/registries/<acr name>
Tip
Pokud chcete získat hodnotu parametru --container-registry
, použijte příkaz az acr show k zobrazení informací pro službu ACR. Pole id
obsahuje ID prostředku pro službu ACR.
Pokud už máte službu ACR se zakázaným uživatelem správce, můžete ji připojit k pracovnímu prostoru aktualizací. Následující příklad ukazuje aktualizaci pracovního prostoru Azure Machine Learning tak, aby používal existující službu ACR:
PLATÍ PRO: Rozšíření Azure CLI ml v2 (aktuální)
az ml workspace update --update-dependent-resources \
--name <workspace name> \
--resource-group <workspace resource group> \
--container-registry /subscriptions/<subscription id>/resourceGroups/<acr resource group>/providers/Microsoft.ContainerRegistry/registries/<acr name>
Vytvoření výpočetních prostředků se spravovanou identitou pro přístup k imagím Dockeru pro trénování
Pokud chcete získat přístup k pracovnímu prostoru ACR, vytvořte výpočetní cluster strojového učení s povolenou spravovanou identitou přiřazenou systémem. Identitu můžete povolit na webu Azure Portal nebo studiu při vytváření výpočetních prostředků nebo z Azure CLI pomocí následujícího postupu. Další informace najdete v tématu Použití spravované identity s výpočetními clustery.
PLATÍ PRO: Rozšíření Azure CLI ml v2 (aktuální)
az ml compute create --name cpu-cluster --type <cluster name> --identity-type systemassigned
Spravovaná identita se automaticky udělí roli ACRPull v pracovním prostoru ACR, aby bylo možné vyžádat image Dockeru pro trénování.
Poznámka:
Pokud nejprve vytvoříte výpočetní prostředky, před vytvořením ACR pracovního prostoru musíte roli ACRPull přiřadit ručně.
Použití imagí Dockeru k odvozování
Jakmile nakonfigurujete ACR bez uživatele správce, jak je popsáno výše, budete mít přístup k imagím Dockeru pro odvozování bez klíčů správce ze služby Azure Kubernetes Service (AKS). Při vytváření nebo připojování AKS k pracovnímu prostoru se instančnímu objektu clusteru automaticky přiřadí přístup ACRPull k pracovnímu prostoru ACR.
Poznámka:
Pokud používáte vlastní cluster AKS, musí mít cluster povolený instanční objekt místo spravované identity.
Scénář: Použití privátní služby Azure Container Registry
Azure Machine Learning ve výchozím nastavení používá základní image Dockeru, které pocházejí z veřejného úložiště spravovaného Microsoftem. Na těchto imagích pak sestaví vaše trénovací nebo odvozovací prostředí. Další informace najdete v tématu Co jsou prostředí ML?.
Pokud chcete pro podnik použít interní vlastní základní image, můžete pro přístup k privátní službě ACR použít spravované identity. Existují dva případy použití:
- Pro trénování použijte základní image.
- Sestavte spravovanou image Azure Machine Learning s vlastní imagí jako základ.
Vyžádání základní image Dockeru do výpočetního clusteru strojového učení pro trénování tak, jak je
Vytvořte výpočetní cluster strojového učení s povolenou spravovanou identitou přiřazenou systémem, jak je popsáno výše. Pak určete ID objektu zabezpečení spravované identity.
PLATÍ PRO: Rozšíření Azure CLI ml v2 (aktuální)
az ml compute show --name <cluster name> -n <workspace> -g <resource group>
Volitelně můžete výpočetní cluster aktualizovat tak, aby přiřadil spravovanou identitu přiřazenou uživatelem:
PLATÍ PRO: Rozšíření Azure CLI ml v2 (aktuální)
az ml compute update --name <cluster name> --user-assigned-identities <my-identity-id>
Pokud chcete výpočetnímu clusteru umožnit vyžádání základních imagí, udělte roli ACRPull identity spravované služby v privátní službě ACR.
PLATÍ PRO: Rozšíření Azure CLI ml v2 (aktuální)
az role assignment create --assignee <principal ID> \
--role acrpull \
--scope "/subscriptions/<subscription ID>/resourceGroups/<private ACR resource group>/providers/Microsoft.ContainerRegistry/registries/<private ACR name>"
Nakonec vytvořte prostředí a zadejte umístění základní image v souboru YAML prostředí.
PLATÍ PRO: Rozšíření Azure CLI ml v2 (aktuální)
$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: docker-image-example
image: pytorch/pytorch:latest
description: Environment created from a Docker image.
az ml environment create --file <yaml file>
Prostředí teď můžete použít v trénovací úloze.
Sestavení spravovaného prostředí Azure Machine Learning do základní image z privátní služby ACR pro trénování nebo odvozování
Poznámka:
Připojení k privátní službě ACR pomocí spravované identity přiřazené uživatelem se v současné době nepodporuje. Klíč správce je jediný typ ověřování podporovaný pro privátní službu ACR.
Další kroky
- Další informace o podnikovém zabezpečení ve službě Azure Machine Learning
- Informace o správě dat
- Seznamte se se spravovanými identitami ve výpočetním clusteru.