Nastavení ověřování mezi službou Azure Machine Učení 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 azure machine Učení a službami, na které spoléhá, může dojít k více způsobům ověřování.

  • Pracovní prostor Azure Machine Učení 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 Učení používá Azure Container Registry (ACR) k ukládání imagí Dockeru používaných k trénování a nasazování modelů. Pokud povolíte, aby služba Azure Machine Učení automaticky vytvořila ACR, povolí účet správce.
  • Výpočetní cluster Azure Machine Učení 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 Azure Machine Učení Python SDK v2:

Azure Container Registry a typy identit

Následující 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 s rolí ACRPull přiřazenou k identitě

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 Učení z webu Azure Portal. Při vytváření pracovního prostoru postupujte následovně:

  1. 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.
  2. 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 Učení 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) + key Vault Správa istrator (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í.
Aktualizace typu identity ze SAI na UAI|SAI, můžete změnit typ z "user_assigned" na "system_assigned, user_assigned".

Výpočtový cluster

Poznámka:

Výpočetní clustery Azure Machine Učení podporují pouze jednu identitu přiřazenou systémem nebo více identit přiřazených uživatelem, nikoli 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:

  1. 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.
  2. 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 Učení. 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í azure Machine Učení úložišť dat.

Když používáte přístup k datům založeným na identitě, Azure Machine Učení vás vyzve k zadání tokenu Microsoft Entra pro ověření přístupu k datům 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ě úložiště v Azure, služba Azure Machine Učení 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 je pro váš scénář potřeba přístup mezi tenanty, obraťte se na alias týmu podpory dat Azure Učení 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 nečinné vypnutí, 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 Učení. 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í na výpočetních clusterech Azure Machine Učení můžete ověřit úložiště 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é přes Azure Machine Učení CLI a 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.

  1. 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.

  2. Vytvořte počítač Azure Učení úložiště dat 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.

  3. 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.

  1. 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.

  2. 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 Učení 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, kdy mají přístup k úložišti jenom určité IP adresy a podsítě, pak Azure Machine Učení používá MSI pracovního prostoru k dosažení 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 Učení používá spravovanou identitu k sestavení a vyžádání imagí Dockeru. Při konfiguraci služby Azure Machine Učení pro použití služby ACR se zakázaným uživatelem správce existují dva pracovní postupy:

  • Povolte službě Azure Machine Učení vytvořit instanci ACR a potom uživatele s rolí správce zakázat.
  • Přeneste existující službu ACR s uživatelem správce, který už je zakázaný.

Azure Machine Učení s automaticky vytvořenou instancí ACR

  1. Vytvořte nový pracovní prostor Azure Machine Učení.

  2. Proveďte akci, která vyžaduje službu Azure Container Registry. Například kurz: Trénování prvního modelu.

  3. Získejte název ACR vytvořeného clusterem.

    PLATÍ PRO:Rozšíření Azure CLI ml v2 (aktuální)

    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>
    
  4. 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. 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 Učení pak zadejte ID prostředku Azure služby ACR. Následující příklad ukazuje vytvoření nového pracovního prostoru Azure Machine Učení, 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.

PLATÍ PRO:Rozšíření Azure CLI ml v2 (aktuální)

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>

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 Učení 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 Učení 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> -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 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 Učení do základní image z privátní služby ACR pro trénování nebo odvozování

PLATÍ PRO:Rozšíření Azure CLI ml v2 (aktuální)

V tomto scénáři služba Azure Machine Učení sestaví prostředí 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.

  1. Vytvořte spravovanou identitu přiřazenou uživatelem a udělte identitě přístup ACRPull k privátní službě ACR.

  2. Udělte spravované identitě pracovního prostoru 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í.

    1. Získejte ID objektu zabezpečení spravované identity přiřazené systémem pracovního prostoru:

      PLATÍ PRO:Rozšíření Azure CLI ml v2 (aktuální)

      az ml workspace show -w <workspace name> -g <resource group> --query identityPrincipalId
      
    2. 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>.

  3. Pomocí příkazu zadejte externí ACR a ID klienta spravované identity přiřazené uživatelem az ml connection v připojeních pracovního prostoru. Tento příkaz přijímá soubor YAML, který poskytuje informace o připojení. Následující příklad ukazuje formát pro zadání spravované identity. client_id Nahraďte hodnoty hodnotami resource_id pro vaši spravovanou identitu:

    PLATÍ PRO:Rozšíření Azure CLI ml v2 (aktuální)

    name: test_ws_conn_cr_managed
    type: container_registry
    target: https://test-feed.com
    credentials:
      type: managed_identity
      client_id: client_id
      resource_id: resource_id
    

    Následující příkaz ukazuje, jak pomocí souboru YAML vytvořit připojení k vašemu pracovnímu prostoru. Nahraďte <yaml file>hodnotu a <resource group><workspace name>nahraďte hodnotami pro vaši konfiguraci:

    az ml connection create --file <yml file> --resource-group <resource group> --workspace-name <workspace>
    
  4. 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 azure-ai-ml v2 (aktuální)

    $schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
    name: private-acr-example
    image: <acr url>/pytorch/pytorch:latest
    description: Environment created from private ACR.
    

Další kroky