Použití spravovaných identit s azure Machine Learning CLI v1
PLATÍ PRO: Python SDK azureml v1
PLATÍ PRO: Rozšíření Azure CLI ml v1
Spravované identity umožňují nakonfigurovat pracovní prostor s minimálními požadovanými oprávněními pro přístup k prostředkům.
Při konfiguraci pracovního prostoru Azure Machine Learning důvěryhodným způsobem je důležité zajistit, aby různé služby přidružené k pracovnímu prostoru měly správnou úroveň přístupu. Například během pracovního postupu strojového učení potřebuje pracovní prostor přístup ke službě Azure Container Registry (ACR) pro image Dockeru a účty úložiště pro trénovací data.
Spravované identity navíc umožňují jemně odstupňovanou kontrolu nad oprávněními, například můžete udělit nebo odvolat přístup z konkrétních výpočetních prostředků na konkrétní službu ACR.
V tomto článku se dozvíte, jak používat spravované identity k:
- Nakonfigurujte a používejte ACR pro váš pracovní prostor Azure Machine Learning, aniž byste museli povolit přístup uživatelů správce k ACR.
- Přístup k privátní službě ACR externí k vašemu pracovnímu prostoru, pro vyžádání základních imagí pro trénování nebo odvozování.
- Vytvořte pracovní prostor se spravovanou identitou přiřazenou uživatelem pro přístup k přidruženým prostředkům.
Požadavky
Pracovní prostor služby Azure Machine Learning. Další informace najdete v tématu Vytvoření prostředků pracovního prostoru.
Rozšíření Azure CLI pro službu Machine Learning
Důležité
Některé příkazy Azure CLI v tomto článku používají
azure-cli-ml
rozšíření (nebo v1) pro Azure Machine Learning. Podpora rozšíření v1 skončí 30. září 2025. Do tohoto data budete moct nainstalovat a používat rozšíření v1.Doporučujeme přejít na
ml
rozšíření (nebo v2) před 30. zářím 2025. Další informace o rozšíření v2 najdete v tématu Rozšíření Azure ML CLI a Python SDK v2.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.
Konfigurace spravovaných identit
V některých situacích je nutné zakázat přístup uživatelů správce ke službě Azure Container Registry. ACR může být například sdíleno a vy potřebujete zakázat přístup správce jinými uživateli. Nebo vytvoření ACR s povoleným uživatelem správce je zakázáno zásadami na úrovni předplatného.
Důležité
Při použití služby Azure Machine Learning pro odvozování ve službě Azure Container Instance (ACI) se vyžaduje přístup uživatelů správce ke službě ACR. Pokud plánujete nasazovat modely do ACI za účelem odvozování, nezakazujte ho.
Když vytvoříte ACR bez povolení přístupu uživatelů správce, spravované identity se použijí pro přístup k ACR k sestavení a vyžádání imagí Dockeru.
Při vytváření pracovního prostoru můžete použít vlastní službu ACR se zakázaným uživatelem správce. Případně nechte Azure Machine Learning vytvořit pracovní prostor ACR a potom zakázat uživatele správce.
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. Pokud máte navíc službu ACR se zakázaným uživatelem správce, můžete ji připojit 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:
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.
az ml workspace create -w <workspace name> \
-g <workspace resource group> \
-l <region> \
--container-registry /subscriptions/<subscription id>/resourceGroups/<acr resource group>/providers/Microsoft.ContainerRegistry/registries/<acr name>
Umožnit službě Azure Machine Learning vytvořit pracovní prostor ACR
Pokud nepřinesete vlastní službu ACR, služba Azure Machine Learning vám ji vytvoří při provádění operace, která ji potřebuje. Odešlete například spuštění trénování do služby Machine Learning Compute, sestavíte prostředí nebo nasadíte koncový bod webové služby. Služba ACR vytvořená pracovním prostorem bude mít povoleného uživatele správce a musíte ho ručně zakázat.
Vytvořit nový pracovní prostor
az ml workspace show -n <my workspace> -g <my resource group>
Proveďte akci, která vyžaduje ACR. Například kurz trénování modelu.
Získejte název ACR vytvořený clusterem:
az ml workspace show -w <my workspace> \ -g <my resource group> --query containerRegistry
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
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.
Při vytváření výpočetního clusteru pomocí AmlComputeProvisioningConfiguration použijte identity_type
parametr k nastavení typu spravované identity.
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ě.
Přístup k základním imagím z privátní služby ACR
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 v1
az ml computetarget amlcompute identity show --name <cluster name> -w <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 v1
az ml computetarget amlcompute identity assign --name <cluster name> \
-w $mlws -g $mlrg --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.
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 při odesílání trénovacího spuštění zadejte umístění základní image v definici prostředí.
PLATÍ PRO: Python SDK azureml v1
from azureml.core import Environment
env = Environment(name="private-acr")
env.docker.base_image = "<ACR name>.azurecr.io/<base image repository>/<base image version>"
env.python.user_managed_dependencies = True
Důležité
Pokud chcete zajistit, aby se základní image načítala přímo do výpočetního prostředku, nastavte user_managed_dependencies = True
a nezadávejte soubor Dockerfile. Jinak se služba Azure Machine Learning pokusí vytvořit novou image Dockeru a selže, protože k vyžádání základní image z ACR má přístup jenom výpočetní cluster.
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í
PLATÍ PRO: Rozšíření Azure CLI ml v1
V tomto scénáři služba Azure Machine Learning service sestaví prostředí pro trénování nebo odvozování nad základní imagí, kterou zadáte z privátní služby ACR. Vzhledem k tomu, že úloha sestavení image probíhá v pracovním prostoru ACR pomocí ACR Tasks, musíte provést další kroky pro povolení přístupu.
Vytvořte spravovanou identitu přiřazenou uživatelem a udělte identitě přístup ACRPull k privátní službě ACR.
Udělte spravované identitě přiřazené systémem roli operátora spravované identity přiřazené uživatelem z předchozího kroku. Tato role umožňuje pracovnímu prostoru přiřadit spravovanou identitu přiřazenou uživatelem k Úloze ACR pro sestavení spravovaného prostředí.
Získejte ID objektu zabezpečení spravované identity přiřazené systémem pracovního prostoru:
az ml workspace show -w <workspace name> -g <resource group> --query identityPrincipalId
Udělte roli operátora spravované identity:
az role assignment create --assignee <principal ID> --role managedidentityoperator --scope <user-assigned managed identity resource ID>
ID prostředku spravované identity přiřazené uživatelem je ID prostředku Azure identity přiřazené uživatelem ve formátu
/subscriptions/<subscription ID>/resourceGroups/<resource group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<user-assigned managed identity name>
.
Pomocí metody Workspace.set_connection zadejte externí ACR a ID klienta spravované identity přiřazené uživatelem v připojeních pracovního prostoru:
PLATÍ PRO: Python SDK azureml v1
workspace.set_connection( name="privateAcr", category="ACR", target = "<acr url>", authType = "RegistryConnection", value={"ResourceId": "<user-assigned managed identity resource id>", "ClientId": "<user-assigned managed identity client ID>"})
Po dokončení konfigurace můžete při vytváření prostředí pro trénování nebo odvozování použít základní image z privátní služby ACR. Následující fragment kódu ukazuje, jak zadat základní image ACR a název image v definici prostředí:
PLATÍ PRO: Python SDK azureml v1
from azureml.core import Environment env = Environment(name="my-env") env.docker.base_image = "<acr url>/my-repo/my-image:latest"
Volitelně můžete zadat adresu URL prostředku spravované identity a ID klienta v samotné definici prostředí pomocí RegistryIdentity. Pokud používáte identitu registru explicitně, přepíše všechna dříve zadaná připojení pracovního prostoru:
PLATÍ PRO: Python SDK azureml v1
from azureml.core.container_registry import RegistryIdentity identity = RegistryIdentity() identity.resource_id= "<user-assigned managed identity resource ID>" identity.client_id="<user-assigned managed identity client ID>" env.docker.base_image_registry.registry_identity=identity env.docker.base_image = "my-acr.azurecr.io/my-repo/my-image:latest"
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.
Vytvoření pracovního prostoru se spravovanou identitou přiřazenou uživatelem
Při vytváření pracovního prostoru můžete použít vlastní spravovanou identitu přiřazenou uživatelem, která se použije pro přístup k přidruženým prostředkům: ACR, KeyVault, Storage a App Insights.
Důležité
Při vytváření pracovního prostoru se spravovanou identitou přiřazenou uživatelem musíte vytvořit přidružené prostředky sami a udělte těmto prostředkům role spravované identity. K přiřazení použijte šablonu ARM přiřazení role.
K vytvoření pracovního prostoru použijte Azure CLI nebo Python SDK. Při použití rozhraní příkazového řádku zadejte ID pomocí parametru --primary-user-assigned-identity
. Při použití sady SDK použijte primary_user_assigned_identity
. Tady jsou příklady použití Azure CLI a Pythonu k vytvoření nového pracovního prostoru pomocí těchto parametrů:
Azure CLI
PLATÍ PRO: Rozšíření Azure CLI ml v1
az ml workspace create -w <workspace name> -g <resource group> --primary-user-assigned-identity <managed identity ARM ID>
Python
PLATÍ PRO: Python SDK azureml v1
from azureml.core import Workspace
ws = Workspace.create(name="workspace name",
subscription_id="subscription id",
resource_group="resource group name",
primary_user_assigned_identity="managed identity ARM ID")
Pomocí šablony ARM můžete také vytvořit pracovní prostor se spravovanou identitou přiřazenou uživatelem.
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. K předání spravované identity použijte argument user-assigned-identity-for-cmk-encryption (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.
Další kroky
- Další informace o podnikovém zabezpečení ve službě Azure Machine Learning
- Informace o přístupu k datům založeným na identitách
- Seznamte se se spravovanými identitami ve výpočetním clusteru.