Azure Machine Learning ile diğer hizmetler arasında kimlik doğrulamayı ayarlama

ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)Python SDK azure-ai-ml v2 (geçerli)

Azure Machine Learning, birden çok Azure hizmetinden oluşmaktadır. Azure Machine Learning ile bağlı olduğu hizmetler arasında kimlik doğrulamasının gerçekleşmesinin birden çok yolu vardır.

  • Azure Machine Learning çalışma alanı, diğer hizmetlerle iletişim kurmak için yönetilen bir kimlik kullanır. Varsayılan olarak, bu sistem tarafından atanan bir yönetilen kimliktir. Bunun yerine kullanıcı tarafından atanan bir yönetilen kimlik de kullanabilirsiniz.
  • Azure Machine Learning, modelleri eğitmek ve dağıtmak için kullanılan Docker görüntülerini depolamak için Azure Container Registry'yi (ACR) kullanır. Azure Machine Learning'in otomatik olarak ACR oluşturmasına izin verirseniz yönetici hesabı etkinleştirilir.
  • Azure Machine Learning işlem kümesi, Azure Key Vault'tan veri depoları için bağlantı bilgilerini almak ve ACR'den Docker görüntülerini çekmek için yönetilen kimlik kullanır. Ayrıca veri depolarına kimlik tabanlı erişim yapılandırabilirsiniz ve bunun yerine işlem kümesinin yönetilen kimliğini kullanırsınız.
  • Veri depolama hizmetine ve yapılandırmanıza bağlı olarak veri erişimi birden çok yol boyunca gerçekleşebilir. Örneğin, veri deposunda kimlik doğrulaması bir hesap anahtarı, belirteç, güvenlik sorumlusu, yönetilen kimlik veya kullanıcı kimliği kullanabilir.
  • Yönetilen çevrimiçi uç noktalar çıkarım gerçekleştirirken Azure kaynaklarına erişmek için yönetilen kimlik kullanabilir. Daha fazla bilgi için bkz. Çevrimiçi uç noktadan Azure kaynaklarına erişme.

Önkoşullar

Bu makaledeki adımları takip etmeden önce aşağıdaki önkoşullara sahip olduğunuzdan emin olun:

  • Azure Machine Learning çalışma alanı. Yoksa, oluşturmak için Hızlı Başlangıç: Çalışma alanı kaynakları oluşturma makalesindeki adımları kullanın.

  • Azure CLI ve ml uzantısı veya Azure Machine Learning Python SDK v2:

    • Azure CLI ve uzantısını yüklemek için bkz . CLI'yı (v2) yükleme, ayarlama ve kullanma.

      Önemli

      Bu makaledeki CLI örneklerinde Bash (veya uyumlu) kabuğu kullandığınız varsayılır. Örneğin, bir Linux sisteminden veya Linux için Windows Alt Sistemi.

    • Python SDK v2'yi yüklemek için aşağıdaki komutu kullanın:

      pip install azure-ai-ml azure-identity
      

      SDK'nın mevcut yüklemesini en son sürüme güncelleştirmek için aşağıdaki komutu kullanın:

      pip install --upgrade azure-ai-ml azure-identity
      

      Daha fazla bilgi için bkz . Azure Machine Learning için Python SDK v2'yi yükleme.

Azure Container Registry ve kimlik türleri

Aşağıdaki tabloda, kimlik doğrulama yöntemine ve Azure Container Registry'nin genel ağ erişim yapılandırmasına bağlı olarak Azure Container Registry'de kimlik doğrulaması yaparken destek matrisi listelenir.

Kimlik doğrulama yöntemi Genel ağ erişimi
devre dışı bırakıldı
Azure Container Registry
Genel ağ erişimi etkin
Yönetici kullanıcı
Çalışma alanı sistem tarafından atanan yönetilen kimlik
ACRPull rolü kimliğe atanmış çalışma alanı kullanıcı tarafından atanan yönetilen kimlik

Kullanıcı tarafından atanan yönetilen kimlik

Çalışma alanı

Azure portaldan Azure Machine Learning çalışma alanı oluştururken kullanıcı tarafından atanan yönetilen kimlik ekleyebilirsiniz. Çalışma alanını oluştururken aşağıdaki adımları kullanın:

  1. Temel Bilgiler sayfasında, çalışma alanıyla birlikte kullanmak istediğiniz Azure Depolama Hesabı, Azure Container Registry ve Azure Key Vault'ı seçin.
  2. Kimlik sayfasında Kullanıcı tarafından atanan kimlik'i ve ardından kullanılacak yönetilen kimliği seçin.

Azure Machine Learning çalışma alanınızın çalışma alanıyla ilişkili kaynaklardaki verilere erişebilmesi için kullanıcı tarafından atanan yönetilen kimliğinizde aşağıdaki Azure RBAC rol atamaları gereklidir.

Kaynak İzin
Azure Machine Learning çalışma alanı Katılımcı
Azure Depolama Katkıda Bulunan (denetim düzlemi) + Depolama Blob Veri Katkıda Bulunanı (veri düzlemi, isteğe bağlı, Azure Machine Learning stüdyosu veri önizlemesini etkinleştirmek için)
Azure Key Vault (RBAC izin modeli kullanılırken) Katkıda bulunan (kontrol düzlemi) + Key Vault Yönetici istrator (veri düzlemi)
Azure Key Vault (erişim ilkeleri izin modeli kullanılırken) Katkıda bulunan + temizleme işlemlerinin yanı sıra tüm erişim ilkesi izinleri
Azure Container Registry Katılımcı
Azure Application Insights Katılımcı

Kullanıcı tarafından atanan yönetilen kimliğinizde rol atamalarının otomatik olarak oluşturulması için bu ARM şablonunu kullanabilirsiniz.

İpucu

Şifreleme için müşteri tarafından yönetilen anahtarlara sahip bir çalışma alanı için, depolama alanından Key Vault'a kimlik doğrulaması yapmak için kullanıcı tarafından atanan yönetilen kimliği geçirebilirsiniz. user-assigned-identity-for-cmk-encryption Yönetilen kimliği geçirmek için (CLI) veya user_assigned_identity_for_cmk_encryption (SDK) parametrelerini kullanın. Bu yönetilen kimlik, çalışma alanı birincil kullanıcı tarafından atanan yönetilen kimlikle aynı veya farklı olabilir.

Birden çok kullanıcı tarafından atanan kimlikle çalışma alanı oluşturmak için aşağıdaki yöntemlerden birini kullanın:

ŞUNUN IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

az ml workspace create -f workspace_creation_with_multiple_UAIs.yml --subscription <subscription ID> --resource-group <resource group name> --name <workspace name>

workspace_creation_with_multiple_UAIs.yml içeriği aşağıdaki gibidir:

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>

Bir çalışma alanı için kullanıcı tarafından atanan kimlikleri güncelleştirmek için yeni bir kimlik eklemek veya mevcut kimlikleri silmek de dahil olmak üzere aşağıdaki yöntemlerden birini kullanın:

ŞUNUN IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

az ml workspace update -f workspace_update_with_multiple_UAIs.yml --subscription <subscription ID> --resource-group <resource group name> --name <workspace name>

workspace_update_with_multiple_UAIs.yml içeriği aşağıdaki gibidir:

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>

İpucu

Yeni UAI eklemek için, mevcut UAI'lere ek olarak user_assigned_identities bölümünün altında yeni UAI kimliğini belirtebilirsiniz. Mevcut tüm UAI kimliklerinin geçirilmesi gerekir.
Mevcut bir veya daha fazla URI'yi silmek için, korunması gereken UAI kimliklerini user_assigned_identities bölümünün altına koyabilirsiniz; geri kalan UAI kimlikleri silinir.
KIMLIK türünü SAI'den UAI'ye güncelleştirmek için|SAI, türü "user_assigned" yerine "system_assigned, user_assigned" olarak değiştirebilirsiniz.

İşlem kümesi

Not

Azure Machine Learning işlem kümeleri, aynı anda değil, yalnızca bir sistem tarafından atanan kimliği veya kullanıcı tarafından atanan birden çok kimliği destekler.

Varsayılan yönetilen kimlik , sistem tarafından atanan yönetilen kimlik veya kullanıcı tarafından atanan ilk yönetilen kimliktir.

Çalıştırma sırasında kimliğin iki uygulaması vardır:

  1. Sistem, kullanıcının depolama bağlamalarını, kapsayıcı kayıt defterini ve veri depolarını ayarlamak için bir kimlik kullanır.

    • Bu durumda, sistem varsayılan yönetilen kimliği kullanır.
  2. Gönderilen iş için kodun içinden kaynaklara erişmek için bir kimlik uygularsınız:

    • Bu durumda, kimlik bilgilerini almak için kullanmak istediğiniz yönetilen kimliğe karşılık gelen client_id sağlayın.
    • Alternatif olarak, DEFAULT_IDENTITY_CLIENT_ID ortam değişkeni aracılığıyla kullanıcı tarafından atanan kimliğin istemci kimliğini alın.

    Örneğin, varsayılan yönetilen kimliğe sahip bir veri deposu için belirteç almak için:

    client_id = os.environ.get('DEFAULT_IDENTITY_CLIENT_ID')
    credential = ManagedIdentityCredential(client_id=client_id)
    token = credential.get_token('https://storage.azure.com/')
    

Yönetilen kimlikle bir işlem kümesi yapılandırmak için aşağıdaki yöntemlerden birini kullanın:

ŞUNUN IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

az ml compute create -f create-cluster.yml

create-cluster.yml içeriği aşağıdaki gibidir:

$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"

Karşılaştırma için aşağıdaki örnek, sistem tarafından atanan yönetilen kimliği kullanan bir küme oluşturan bir YAML dosyasından alınmaktadır:

$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

Mevcut bir işlem kümeniz varsa, kullanıcı tarafından yönetilen ve sistem tarafından yönetilen kimlik arasında değişiklik yapabilirsiniz. Aşağıdaki örneklerde yapılandırmanın nasıl değiştireceği gösterilmektedir:

Kullanıcı tarafından atanan yönetilen kimlik

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"

Sistem tarafından atanan yönetilen kimlik

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

Veri depolama

Kimlik tabanlı veri erişimi kullanan bir veri deposu oluşturduğunuzda Azure hesabınız (Microsoft Entra belirteci), depolama hizmetine erişim izniniz olduğunu onaylamak için kullanılır. Kimlik tabanlı veri erişimi senaryosunda kimlik doğrulaması kimlik bilgileri kaydedilmez. Veri deposunda yalnızca depolama hesabı bilgileri depolanır.

Buna karşılık, çalışma alanıyla ilişkili anahtar kasasındadepolama hesabı anahtarınız veya SAS belirteciniz gibi kimlik bilgileri tabanlı kimlik doğrulama önbelleği bağlantı bilgilerini kullanan veri depoları. Bu yaklaşım, yeterli izinlere sahip diğer çalışma alanı kullanıcılarının bu kimlik bilgilerini alabilmesiyle ilgili sınırlamaya sahiptir ve bu da bazı kuruluşlar için güvenlik sorunu olabilir.

Veri erişiminin kimliğinin nasıl doğrulanmış olduğu hakkında daha fazla bilgi için Veri yönetimi makalesine bakın. Verilere kimlik tabanlı erişimi yapılandırma hakkında bilgi için bkz . Veri depoları oluşturma.

Azure Machine Learning'de kimlik tabanlı veri erişimi uygulayabileceğiniz iki senaryo vardır. Bu senaryolar, gizli verilerle çalışırken ve daha ayrıntılı veri erişimi yönetimine ihtiyaç duyduğunuzda kimlik tabanlı erişim için uygundur:

  • Depolama hizmetlerine erişme
  • Makine öğrenmesi modellerini eğitin

Kimlik tabanlı erişim, kullanıcılar veya işlem kaynakları gibi hangi kimliklerin verilere erişimi olduğunu kısıtlamak için rol tabanlı erişim denetimlerini (RBAC) kullanmanıza olanak tanır.

Depolama hizmetlerine erişme

Azure Machine Learning veri depoları ile kimlik tabanlı veri erişimi aracılığıyla depolama hizmetlerine bağlanabilirsiniz.

Kimlik tabanlı veri erişimini kullandığınızda Azure Machine Learning, kimlik bilgilerinizi veri deposunda tutmak yerine veri erişimi kimlik doğrulaması için Microsoft Entra belirtecinizi ister. Bu yaklaşım, depolama düzeyinde veri erişimi yönetimine olanak tanır ve kimlik bilgilerini gizli tutar.

Aynı davranış, yerel bilgisayarınızdaki veya işlem örneğinizdeki bir Jupyter Notebook aracılığıyla verilerle etkileşimli olarak çalışırken de geçerlidir.

Not

Kimlik bilgileri tabanlı kimlik doğrulaması aracılığıyla depolanan kimlik bilgileri abonelik kimlikleri, paylaşılan erişim imzası (SAS) belirteçleri ve istemci kimlikleri ve kiracı kimlikleri gibi depolama erişim anahtarı ve hizmet sorumlusu bilgilerini içerir.

Azure'da depolama hizmetinize güvenli bir şekilde bağlanmanıza yardımcı olmak için Azure Machine Learning, ilgili veri depolama alanına erişim izniniz olmasını gerektirir.

Uyarı

Depolama hesaplarına kiracılar arası erişim desteklenmez. Senaryonuz için kiracılar arası erişim gerekiyorsa özel kod çözümüyle ilgili yardım için lütfen adresinden amldatasupport@microsoft.com Azure Machine Learning Veri Desteği ekip diğer adına ulaşın.

Kimlik tabanlı veri erişimi yalnızca aşağıdaki depolama hizmetlerine bağlantıları destekler.

  • Azure Blob Depolama
  • Azure Data Lake Storage Gen1
  • Azure Data Lake Storage Gen2

Bu depolama hizmetlerine erişmek için depolama hesabına en az Depolama Blob Veri Okuyucusu erişiminiz olmalıdır. Azure portalı aracılığıyla erişim düzeyinizi yalnızca depolama hesabı sahipleri değiştirebilir.

Yönetilen kimliği kullanarak işlemdeki eğitim işleri için verilere erişme

Bazı makine öğrenmesi senaryoları özel verilerle çalışmayı içerir. Bu gibi durumlarda, veri bilimciler Microsoft Entra kullanıcıları olarak verilere doğrudan erişemeyebilir. Bu senaryoda, bir işlem yönetilen kimliği veri erişimi kimlik doğrulaması için kullanılabilir. Bu senaryoda verilere yalnızca eğitim işini yürüten bir işlem örneğinden veya makine öğrenmesi işlem kümesinden erişilebilir. Bu yaklaşımla yönetici, depolama alanında işlem örneği veya işlem kümesi yönetilen kimliği Depolama Blob Veri Okuyucusu izinlerini verir. Tek tek veri bilim insanlarına erişim izni verilmesi gerekmez.

İşlem yönetilen kimliğiyle kimlik doğrulamasını etkinleştirmek için:

  • Yönetilen kimlik etkin olarak işlem oluşturma. İşlem kümesi bölümüne veya işlem örneği için Yönetilen kimlik atama bölümüne bakın.

    Önemli

    İşlem örneği boşta kapatma için de yapılandırıldıysa, yönetilen kimliğin Azure Machine Learning çalışma alanına katkıda bulunan erişimi olmadığı sürece işlem örneği işlem yapılmadığı için kapanmaz. İzin atama hakkında daha fazla bilgi için bkz. Azure Machine Learning çalışma alanlarına erişimi yönetme.

  • Depolama hesabında en az Depolama Blob Veri Okuyucusu rolü vermek için işlem yönetilen kimliği verin.

  • Kimlik tabanlı kimlik doğrulamasının etkinleştirildiği tüm veri depolarını oluşturun. Bkz . Veri depoları oluşturma.

Not

İşlem örneği veya küme için oluşturulan sistem tarafından yönetilen kimliğin adı, Microsoft Entra kimliğinizde /workspace-name/computes/compute-name biçiminde olacaktır.

Kimlik tabanlı kimlik doğrulaması etkinleştirildikten sonra, eğitim işlerinizdeki verilere erişirken işlem yönetilen kimliği varsayılan olarak kullanılır. İsteğe bağlı olarak, sonraki bölümde açıklanan adımları kullanarak kullanıcı kimliğiyle kimlik doğrulaması yapabilirsiniz.

Depolama için Azure RBAC'yi yapılandırma hakkında bilgi için bkz . rol tabanlı erişim denetimleri.

Kullanıcı kimliğini kullanarak işlem kümelerindeki eğitim işleri için verilere erişme

ŞUNUN IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

Azure Machine Learning işlem kümeleri üzerinde eğitim yaparken, kullanıcı Microsoft Entra belirtecinizle depolamada kimlik doğrulaması yapabilirsiniz.

Bu kimlik doğrulama modu şunları yapmanızı sağlar:

  • Farklı çalışma alanı kullanıcılarının depolama hesapları içindeki farklı depolama hesaplarına veya klasörlerine erişebilmesi için ayrıntılı izinler ayarlayın.
  • Veri bilimciler depolama sistemlerindeki mevcut izinleri yeniden kullansın.
  • Depolama günlükleri verilere erişmek için kullanılan kimlikleri gösterdiğinden depolama erişimini denetleyin.

Önemli

Bu işlev aşağıdaki sınırlamalara sahiptir

  • Özellik, Azure Machine Learning CLI ve Python SDK V2 aracılığıyla gönderilen denemeler için desteklenir, ancak ML Studio aracılığıyla desteklenmez.
  • Kullanıcı kimliği ve işlem yönetilen kimliği aynı iş içinde kimlik doğrulaması için kullanılamaz.
  • İşlem hattı işleri için, kullanıcı kimliğini kök işlem hattı düzeyinde değil, işlem üzerinde yürütülecek tek tek adım düzeyinde ayarlamanızı öneririz. ( Kimlik ayarı hem kök işlem hattı hem de adım düzeylerinde destekleniyor olsa da, her ikisi de ayarlandıysa adım düzeyi ayarı önceliklidir. Ancak, işlem hattı bileşenlerini içeren işlem hatları için kimlik, yürütülecek tek tek adımlarda ayarlanmalıdır. Kök işlem hattı veya işlem hattı bileşeni düzeyinde ayarlanan kimlik çalışmaz. Bu nedenle, basitlik için kimliği tek tek adım düzeyinde ayarlamanızı öneririz.)

Aşağıdaki adımlarda CLI'dan işlem kümelerindeki eğitim işleri için kullanıcı kimliğiyle veri erişiminin nasıl ayarlanacağı özetlenmiştir.

  1. Kullanıcı kimliğine depolama kaynaklarına erişim izni verin. Örneğin, kullanmak istediğiniz belirli depolama hesabına Depolama BlobReader erişimi verin veya Azure Data Lake 2. Nesil depolamadaki belirli klasörlere veya dosyalara ACL tabanlı izin verin.

  2. Depolama hesabı için önbelleğe alınmış kimlik bilgileri olmadan bir Azure Machine Learning veri deposu oluşturun. Bir veri deposunda depolama hesabı anahtarı gibi önbelleğe alınmış kimlik bilgileri varsa, bu kimlik bilgileri kullanıcı kimliği yerine kullanılır.

  3. Aşağıdaki iş belirtiminde gösterildiği gibi, özellik kimliği türü: user_identity olarak ayarlanmış bir eğitim işi gönderin. Eğitim işi sırasında depolama için kimlik doğrulaması, işi gönderen kullanıcının kimliği aracılığıyla gerçekleşir.

    Not

    Kimlik özelliği belirtilmemiş bırakılırsa ve veri deposunda önbelleğe alınmış kimlik bilgileri yoksa işlem yönetilen kimliği geri dönüş seçeneği olur.

    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
    

Aşağıdaki adımlarda Python SDK'sından işlem kümelerindeki eğitim işleri için kullanıcı kimliğiyle veri erişiminin nasıl ayarlanacağı özetlenmiştir.

  1. Cli için yukarıda açıklandığı gibi veri erişimi verin ve veri deposu oluşturun.

  2. kimlik parametresi azure.ai.ml.UserIdentityConfiguration olarak ayarlanmış bir eğitim işi gönderin. Bu parametre ayarı, işin işi gönderen kullanıcı adına verilere erişmesini sağlar.

    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)
    

Önemli

Kullanıcı kimliği etkin kimlik doğrulamasıyla iş gönderimi sırasında kod anlık görüntüleri sağlama toplamı doğrulamasıyla kurcalanmaya karşı korunur. Mevcut işlem hattı bileşenleriniz varsa ve bunları kullanıcı kimliği etkinleştirilmiş olarak kimlik doğrulamasıyla kullanmayı planlıyorsanız, bunları yeniden yüklemeniz gerekebilir. Aksi takdirde, sağlama toplamı doğrulaması sırasında iş başarısız olabilir.

Sanal ağlarla çalışma

Varsayılan olarak, Azure Machine Learning bir güvenlik duvarının arkasındaki veya sanal ağın içindeki bir depolama hesabıyla iletişim kuramaz.

Depolama hesaplarını yalnızca belirli sanal ağlardan erişime izin verecek şekilde yapılandırabilirsiniz. Bu yapılandırma, verilerin ağ dışına sızmadığından emin olmak için ek adımlar gerektirir. Bu davranış, kimlik bilgisi tabanlı veri erişimi için aynıdır. Daha fazla bilgi için bkz . Veri sızdırmayı önleme.

Depolama hesabınızda sanal ağ ayarları varsa, hangi kimlik türüne ve izin erişimine ihtiyaç duyulduğunu belirler. Örneğin, veri önizleme ve veri profili için sanal ağ ayarları, veri erişiminin kimliğini doğrulamak için hangi kimlik türünün kullanıldığını belirler.

  • Depolama alanına yalnızca belirli IP'lerin ve alt ağların erişmesine izin verilen senaryolarda Azure Machine Learning, veri önizlemelerini ve profillerini gerçekleştirmek için çalışma alanı MSI'sini kullanır.

  • Depolama alanınız ADLS 2. Nesil veya Blob ise ve sanal ağ ayarları varsa, müşteriler oluşturma sırasında tanımlanan veri deposu ayarlarına bağlı olarak kullanıcı kimliğini veya çalışma alanı MSI'sini kullanabilir.

  • Sanal ağ ayarı "Güvenilen hizmetler listesindeki Azure hizmetlerinin bu depolama hesabına erişmesine izin ver" ise Çalışma Alanı MSI kullanılır.

Senaryo: Yönetici kullanıcı olmadan Azure Container Registry

ACR için yönetici kullanıcıyı devre dışı bırakdığınızda Azure Machine Learning, Docker görüntüleri oluşturmak ve çekmek için yönetilen bir kimlik kullanır. Azure Machine Learning'i yönetici kullanıcı devre dışıyken ACR kullanacak şekilde yapılandırırken iki iş akışı vardır:

  • Azure Machine Learning'in ACR örneğini oluşturmasına ve ardından yönetici kullanıcıyı devre dışı bırakmasına izin verin.
  • Yönetici kullanıcının zaten devre dışı olduğu mevcut bir ACR'yi getirin.

Otomatik olarak oluşturulan ACR örneğiyle Azure Machine Learning

  1. Yeni bir Azure Machine Learning çalışma alanı oluşturun.

  2. Azure Container Registry gerektiren bir eylem gerçekleştirin. Örneğin, Öğretici: İlk modelinizi eğitme.

  3. Küme tarafından oluşturulan ACR'nin adını alın.

    ŞUNUN IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

    az ml workspace show -w <my workspace> \
    -g <my resource group>
    --query containerRegistry
    

    Bu komut aşağıdaki metne benzer bir değer döndürür. Metnin yalnızca ACR örneği adı olan son bölümünü istiyorsunuz:

    /subscriptions/<subscription id>/resourceGroups/<my resource group>/providers/MicrosoftContainerReggistry/registries/<ACR instance name>
    
  4. Yönetici kullanıcıyı devre dışı bırakmak için ACR'yi güncelleştirin:

    az acr update --name <ACR instance name> --admin-enabled false
    

Kendi ACR'nizi getirin

ACR yönetici kullanıcısının abonelik ilkesine izin vermemesi durumunda, önce yönetici kullanıcı olmadan ACR oluşturmanız ve ardından bunu çalışma alanıyla ilişkilendirmeniz gerekir. Ayrıca, yönetici kullanıcı devre dışı bırakılmış mevcut ACR'niz varsa, bunu çalışma alanına ekleyebilirsiniz.

Bağımsız değişken ayarlamadan --admin-enabled Azure CLI'dan veya yönetici kullanıcıyı etkinleştirmeden Azure portalından ACR oluşturun. Ardından Azure Machine Learning çalışma alanı oluştururken ACR'nin Azure kaynak kimliğini belirtin. Aşağıdaki örnekte, mevcut bir ACR kullanan yeni bir Azure Machine Learning çalışma alanı oluşturma işlemi gösterilmektedir:

İpucu

parametresinin değerini almak için --container-registry az acr show komutunu kullanarak ACR'nize ilişkin bilgileri gösterin. alanı, id ACR'nizin kaynak kimliğini içerir.

ŞUNUN IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

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>

Eğitim için Docker görüntülerine erişmek için yönetilen kimlikle işlem oluşturma

Çalışma alanı ACR'sine erişmek için sistem tarafından atanan yönetilen kimliğin etkinleştirildiği makine öğrenmesi işlem kümesi oluşturun. İşlem oluştururken Azure portalından veya Studio'dan ya da azure CLI'dan aşağıdakini kullanarak kimliği etkinleştirebilirsiniz. Daha fazla bilgi için bkz . İşlem kümeleri ile yönetilen kimlik kullanma.

ŞUNUN IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

az ml compute create --name cpu-cluster --type <cluster name>  --identity-type systemassigned

Eğitim için Docker görüntülerinin çekilmesini sağlamak için ACR çalışma alanında yönetilen kimliğe otomatik olarak ACRPull rolü verilir.

Not

önce işlem oluşturursanız, ACR çalışma alanı oluşturulmadan önce ACRPull rolünü el ile atamanız gerekir.

Çıkarım için Docker görüntülerini kullanma

Daha önce açıklandığı gibi yönetici kullanıcısı olmadan ACR'yi yapılandırdıktan sonra, Azure Kubernetes hizmetinizden (AKS) yönetici anahtarları olmadan çıkarım için Docker görüntülerine erişebilirsiniz. AKS oluşturduğunuzda veya çalışma alanına eklediğinizde, kümenin hizmet sorumlusuna otomatik olarak ACRPull çalışma alanı ACR erişimi atanır.

Not

Kendi AKS kümenizi getirirseniz, kümede yönetilen kimlik yerine hizmet sorumlusu etkinleştirilmelidir.

Senaryo: Özel bir Azure Container Registry kullanma

Azure Machine Learning varsayılan olarak Microsoft tarafından yönetilen bir genel depodan gelen Docker temel görüntülerini kullanır. Ardından bu görüntüler üzerinde eğitim veya çıkarım ortamınızı oluşturur. Daha fazla bilgi için bkz . ML ortamları nedir?.

Kuruluşunuzda özel bir temel görüntü kullanmak için yönetilen kimlikleri kullanarak özel ACR'nize erişebilirsiniz. İki kullanım örneği vardır:

  • Eğitim için temel görüntüyü olduğu gibi kullanın.
  • Temel olarak özel görüntüyle Azure Machine Learning yönetilen görüntüsü oluşturun.

Docker temel görüntüsünü olduğu gibi eğitim için makine öğrenmesi işlem kümesine çekme

Daha önce açıklandığı gibi sistem tarafından atanan yönetilen kimliğin etkinleştirildiği makine öğrenmesi işlem kümesi oluşturun. Ardından yönetilen kimliğin asıl kimliğini belirleyin.

ŞUNUN IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

az ml compute show --name <cluster name> -w <workspace> -g <resource group>

İsteğe bağlı olarak, kullanıcı tarafından atanan yönetilen kimliği atamak için işlem kümesini güncelleştirebilirsiniz:

ŞUNUN IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

az ml compute update --name <cluster name> --user-assigned-identities <my-identity-id>

İşlem kümesinin temel görüntüleri çekmesine izin vermek için özel ACR'de yönetilen hizmet kimliğine ACRPull rolü verin

ŞUNUN IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

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>"

Son olarak, bir ortam oluşturun ve ortam YAML dosyasında temel görüntü konumunu belirtin.

ŞUNUN IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

$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>

Artık ortamı bir eğitim işinde kullanabilirsiniz.

Eğitim veya çıkarım için özel ACR'den temel görüntüye Azure Machine Learning yönetilen ortamı oluşturma

ŞUNUN IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

Bu senaryoda Azure Machine Learning hizmeti, özel bir ACR'den sağladığınız temel görüntünün üzerine eğitim veya çıkarım ortamını oluşturur. ACR Görevleri kullanılarak ACR çalışma alanında görüntü derleme görevi gerçekleştiğinden, erişime izin vermek için daha fazla adım gerçekleştirmeniz gerekir.

  1. Kullanıcı tarafından atanan yönetilen kimlik oluşturun ve kimliğe özel ACR'ye ACRPull erişimi verin.

  2. Önceki adımda kullanıcı tarafından atanan yönetilen kimlikte çalışma alanı yönetilen kimliğineYönetilen Kimlik operatörü rolü verin. Bu rol, çalışma alanının yönetilen ortamı oluşturmak için kullanıcı tarafından atanan yönetilen kimliği ACR Görevi'ne atamasına olanak tanır.

    1. Çalışma alanı sistem tarafından atanan yönetilen kimliğin asıl kimliğini alın:

      ŞUNUN IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

      az ml workspace show -w <workspace name> -g <resource group> --query identityPrincipalId
      
    2. Yönetilen Kimlik İşleci rolünü verin:

      az role assignment create --assignee <principal ID> --role managedidentityoperator --scope <user-assigned managed identity resource ID>
      

      Kullanıcı tarafından atanan yönetilen kimlik kaynak kimliği, /subscriptions/<subscription ID>/resourceGroups/<resource group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<user-assigned managed identity name>kullanıcı tarafından atanan kimliğin Biçimindeki Azure kaynak kimliğidir.

  3. komutunu kullanarak çalışma alanı bağlantılarında kullanıcı tarafından atanan yönetilen kimliğin dış ACR'sini az ml connection ve istemci kimliğini belirtin. Bu komut, bağlantı hakkında bilgi sağlayan bir YAML dosyası kabul eder. Aşağıdaki örnekte yönetilen kimlik belirtme biçimi gösterilmektedir. client_id ve resource_id değerlerini yönetilen kimliğinizin değerleriyle değiştirin:

    ŞUNUN IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

    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
    

    Aşağıdaki komut, çalışma alanınızla bağlantı oluşturmak için YAML dosyasının nasıl kullanılacağını gösterir. , <workspace name>ve <resource group> değerlerini yapılandırmanızın değerleriyle değiştirin<yaml file>:

    az ml connection create --file <yml file> --resource-group <resource group> --workspace-name <workspace>
    
  4. Yapılandırma tamamlandıktan sonra, eğitim veya çıkarım için ortamlar oluştururken özel ACR'deki temel görüntüleri kullanabilirsiniz. Aşağıdaki kod parçacığı, ortam tanımında temel görüntü ACR'sinin ve görüntü adının nasıl belirtileceğini gösterir:

    ŞUNLAR IÇIN GEÇERLIDIR: Python SDK'sı azure-ai-ml v2 (geçerli)

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

Sonraki adımlar