Aracılığıyla paylaş


Toplu iş uç noktaları üzerinde yetkilendirme

Batch uç noktaları Microsoft Entra kimlik doğrulamayı veya aad_token'yi destekler. Bu, bir toplu iş uç noktasını çağırmak için kullanıcının toplu iş uç noktası URI'sine geçerli bir Microsoft Entra kimlik doğrulama belirteci sunması gerektiği anlamına gelir. Yetkilendirme, uç nokta düzeyinde zorlanır. Aşağıdaki makalede, toplu iş uç noktalarıyla doğru etkileşim kurma ve bunun için güvenlik gereksinimleri açıklanmaktadır.

Yetkilendirme nasıl çalışır?

Bir toplu iş uç noktasını çağırmak için kullanıcının bir güvenlik sorumlusunu temsil eden geçerli bir Microsoft Entra belirteci sunması gerekir. Bu sorumlu bir kullanıcı sorumlusu veya hizmet sorumlusu olabilir. Her durumda, bir uç nokta çağrıldıktan sonra belirteçle ilişkilendirilmiş kimlik altında bir toplu dağıtım işi oluşturulur. Kimliğin başarılı bir şekilde iş oluşturabilmesi için aşağıdaki izinlere sahip olması gerekir:

  • Toplu iş uç noktalarını/dağıtımlarını okuyun.
  • Toplu çıkarım uç noktaları/dağıtımında işler oluşturun.
  • Denemeler/çalıştırmalar oluşturun.
  • Veri depolarını okuma ve yazma.
  • Veri deposu gizli dizilerini listeler.

RBAC izinlerinin ayrıntılı listesi için bkz . Toplu uç nokta çağrısı için RBAC'yi yapılandırma.

Önemli

Bir toplu iş uç noktasını çağırmak için kullanılan kimlik, veri deposunun nasıl yapılandırıldığına bağlı olarak temel alınan verileri okumak için kullanılamayabilir. Daha fazla ayrıntı için bkz . İşlem kümelerini veri erişimi için yapılandırma.

Farklı kimlik bilgisi türlerini kullanarak işleri çalıştırma

Aşağıdaki örneklerde, farklı kimlik bilgisi türlerini kullanarak toplu dağıtım işlerini başlatmanın farklı yolları gösterilmektedir:

Önemli

Özel bağlantı özellikli çalışma alanları üzerinde çalışırken toplu iş uç noktaları Azure Machine Learning stüdyosu kullanıcı arabiriminden çağrılamıyor. İş oluşturmak için lütfen bunun yerine Azure Machine Learning CLI v2'yi kullanın.

Önkoşullar

  • Bu örnekte, bir modelin toplu iş uç noktası olarak doğru dağıtıldığını varsayar. Özellikle toplu dağıtımlarda MLflow modellerini kullanma öğreticisinde oluşturulan kalp durumu sınıflandırıcısını kullanıyoruz.

Kullanıcının kimlik bilgilerini kullanarak işleri çalıştırma

Bu durumda, şu anda oturum açmış olan kullanıcının kimliğini kullanarak bir toplu iş uç noktası yürütmek istiyoruz. Şu adımları izleyin:

  1. Etkileşimli veya cihaz kodu kimlik doğrulaması kullanarak oturum açmak için Azure CLI'yi kullanın:

    az login
    
  2. Kimlik doğrulamasından sonra aşağıdaki komutu kullanarak bir toplu dağıtım işi çalıştırın:

    az ml batch-endpoint invoke --name $ENDPOINT_NAME \
                                --input https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci
    

Hizmet sorumlusu kullanarak işleri çalıştırma

Bu durumda, Microsoft Entra Id'de önceden oluşturulmuş bir hizmet sorumlusu kullanarak bir toplu iş uç noktası yürütmek istiyoruz. Kimlik doğrulamasını tamamlamak için kimlik doğrulamasını gerçekleştirmek için bir gizli dizi oluşturmanız gerekir. Şu adımları izleyin:

  1. 3. Seçenek: Yeni bir istemci gizli dizisi oluşturma'da açıklandığı gibi kimlik doğrulaması için kullanılacak bir gizli dizi oluşturun.

  2. Hizmet sorumlusu kullanarak kimlik doğrulaması yapmak için aşağıdaki komutu kullanın. Daha fazla ayrıntı için bkz . Azure CLI ile oturum açma.

    az login --service-principal \
             --tenant <tenant> \
             -u <app-id> \
             -p <password-or-cert> 
    
  3. Kimlik doğrulamasından sonra aşağıdaki komutu kullanarak bir toplu dağıtım işi çalıştırın:

    az ml batch-endpoint invoke --name $ENDPOINT_NAME \
                                --input https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci/
    

Yönetilen kimlik kullanarak işleri çalıştırma

Toplu iş uç noktasını ve dağıtımlarını çağırmak için yönetilen kimlikleri kullanabilirsiniz. Bu yönetim kimliğinin toplu iş uç noktasına ait olmadığını, ancak uç noktayı yürütmek ve dolayısıyla bir toplu iş oluşturmak için kullanılan kimlik olduğuna dikkat edin. Bu senaryoda hem kullanıcı tarafından atanan hem de sistem tarafından atanan kimlikler kullanılabilir.

Azure kaynakları için yönetilen kimliklerle yapılandırılmış kaynaklarda yönetilen kimliği kullanarak oturum açabilirsiniz. Kaynağın kimliği ile oturum açma işlemi --identity bayrağıyla gerçekleştirilir. Diğer ayrıntılar için bkz . Azure CLI ile oturum açma.

az login --identity

Kimlik doğrulamasından sonra aşağıdaki komutu kullanarak bir toplu dağıtım işi çalıştırın:

az ml batch-endpoint invoke --name $ENDPOINT_NAME \
                            --input https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci

Batch Uç Noktaları çağrısı için RBAC'yi yapılandırma

Batch Uç Noktaları, tüketicilerin iş oluşturmak için kullanabileceği dayanıklı bir API'yi kullanıma sunar. Çağıran, bu işleri oluşturabilmek için uygun izni gerektirir. Yerleşik güvenlik rollerinden birini kullanabilir veya amaçlar için özel bir rol oluşturabilirsiniz.

Bir toplu iş uç noktasını başarıyla çağırmak için, uç noktaları çağırmak için kullanılan kimliğe aşağıdaki açık eylemlerin verilmesi gerekir. Bunları atama yönergeleri için bkz . Azure rolü atama adımları.

"actions": [
    "Microsoft.MachineLearningServices/workspaces/read",
    "Microsoft.MachineLearningServices/workspaces/data/versions/write",
    "Microsoft.MachineLearningServices/workspaces/datasets/registered/read",
    "Microsoft.MachineLearningServices/workspaces/datasets/registered/write",
    "Microsoft.MachineLearningServices/workspaces/datasets/unregistered/read",
    "Microsoft.MachineLearningServices/workspaces/datasets/unregistered/write",
    "Microsoft.MachineLearningServices/workspaces/datastores/read",
    "Microsoft.MachineLearningServices/workspaces/datastores/write",
    "Microsoft.MachineLearningServices/workspaces/datastores/listsecrets/action",
    "Microsoft.MachineLearningServices/workspaces/listStorageAccountKeys/action",
    "Microsoft.MachineLearningServices/workspaces/batchEndpoints/read",
    "Microsoft.MachineLearningServices/workspaces/batchEndpoints/write",
    "Microsoft.MachineLearningServices/workspaces/batchEndpoints/deployments/read",
    "Microsoft.MachineLearningServices/workspaces/batchEndpoints/deployments/write",
    "Microsoft.MachineLearningServices/workspaces/batchEndpoints/deployments/jobs/write",
    "Microsoft.MachineLearningServices/workspaces/batchEndpoints/jobs/write",
    "Microsoft.MachineLearningServices/workspaces/computes/read",
    "Microsoft.MachineLearningServices/workspaces/computes/listKeys/action",
    "Microsoft.MachineLearningServices/workspaces/metadata/secrets/read",
    "Microsoft.MachineLearningServices/workspaces/metadata/snapshots/read",
    "Microsoft.MachineLearningServices/workspaces/metadata/artifacts/read",
    "Microsoft.MachineLearningServices/workspaces/metadata/artifacts/write",
    "Microsoft.MachineLearningServices/workspaces/experiments/read",
    "Microsoft.MachineLearningServices/workspaces/experiments/runs/submit/action",
    "Microsoft.MachineLearningServices/workspaces/experiments/runs/read",
    "Microsoft.MachineLearningServices/workspaces/experiments/runs/write",
    "Microsoft.MachineLearningServices/workspaces/metrics/resource/write",
    "Microsoft.MachineLearningServices/workspaces/modules/read",
    "Microsoft.MachineLearningServices/workspaces/models/read",
    "Microsoft.MachineLearningServices/workspaces/endpoints/pipelines/read",
    "Microsoft.MachineLearningServices/workspaces/endpoints/pipelines/write",
    "Microsoft.MachineLearningServices/workspaces/environments/read",
    "Microsoft.MachineLearningServices/workspaces/environments/write",
    "Microsoft.MachineLearningServices/workspaces/environments/build/action",
    "Microsoft.MachineLearningServices/workspaces/environments/readSecrets/action"
]

Veri erişimi için işlem kümelerini yapılandırma

Batch uç noktaları, yalnızca yetkili kullanıcıların toplu dağıtımları çağırabilmesini ve iş oluşturabilmesini sağlar. Ancak, giriş verilerinin nasıl yapılandırıldığına bağlı olarak, temel alınan verileri okumak için diğer kimlik bilgileri kullanılabilir. Hangi kimlik bilgilerinin kullanıldığını anlamak için aşağıdaki tabloyu kullanın:

Veri giriş türü Depoda kimlik bilgileri Kullanılan kimlik bilgileri Erişim tarafından verildi
Veri deposu Yes Çalışma alanında veri deposunun kimlik bilgileri Erişim anahtarı veya SAS
Veri varlığı Yes Çalışma alanında veri deposunun kimlik bilgileri Erişim Anahtarı veya SAS
Veri deposu Hayır İşin kimliği + İşlem kümesinin Yönetilen kimliği RBAC
Veri varlığı Hayır İşin kimliği + İşlem kümesinin Yönetilen kimliği RBAC
Azure Blob Storage Geçerli değil İşin kimliği + İşlem kümesinin Yönetilen kimliği RBAC
Azure Data Lake Storage Gen1 Geçerli değil İşin kimliği + İşlem kümesinin Yönetilen kimliği POSIX
Azure Data Lake Storage 2. Nesil Geçerli değil İşin kimliği + İşlem kümesinin Yönetilen kimliği POSIX ve RBAC

İş kimliği + İşlem kümesinin Yönetilen kimliği'nin görüntülendiği tablodaki öğeler için, depolama hesaplarını bağlamak ve yapılandırmak için işlem kümesinin yönetilen kimliği kullanılır. Ancak işin kimliği, ayrıntılı erişim denetimi elde etmek için temel alınan verileri okumak için hala kullanılır. Bu, depolamadan verileri başarıyla okumak için dağıtımın çalıştığı işlem kümesinin yönetilen kimliğinin depolama hesabına en az Depolama Blob Veri Okuyucusu erişimine sahip olması gerektiği anlamına gelir.

İşlem kümesini veri erişimi için yapılandırmak için şu adımları izleyin:

  1. Azure Machine Learning stüdyosu'a gidin.

  2. İşlem'e gidin, ardından İşlem kümeleri'ne gidin ve dağıtımınızın kullandığı işlem kümesini seçin.

  3. İşlem kümesine yönetilen kimlik atayın:

    1. Yönetilen kimlik bölümünde, işlemde atanmış bir yönetilen kimlik olup olmadığını doğrulayın. Aksi takdirde Düzenle seçeneğini belirleyin.

    2. Yönetilen kimlik ata'yı seçin ve gerektiği gibi yapılandırın. Sistem Tarafından Atanan Yönetilen Kimlik veya Kullanıcı Tarafından Atanan Yönetilen Kimlik kullanabilirsiniz. Sistem Tarafından Atanan Yönetilen Kimlik kullanılıyorsa, "[çalışma alanı adı]/computes/[işlem kümesi adı]" olarak adlandırılır.

    3. Değişiklikleri kaydedin.

    Bir kümeye yönetilen kimlik atama adımlarını gösteren animasyon.

  4. Azure portalına gidin ve verilerin bulunduğu ilişkili depolama hesabına gidin. Veri girişiniz bir Veri Varlığı veya Veri Deposu ise, bu varlıkların yerleştirildiği depolama hesabını arayın.

  5. Depolama hesabında Depolama Blobu Veri Okuyucusu erişim düzeyini atayın:

    1. Erişim denetimi (IAM) bölümüne gidin.

    2. Rol ataması sekmesini seçin ve rol ataması ekle'ye> tıklayın.

    3. Depolama Blobu Veri Okuyucusu adlı rolü arayın, seçin ve İleri'ye tıklayın.

    4. Üye seç'e tıklayın.

    5. Oluşturduğunuz yönetilen kimliği arayın. Sistem Tarafından Atanan Yönetilen Kimlik kullanılıyorsa, "[çalışma alanı adı]/computes/[işlem kümesi adı]" olarak adlandırılır.

    6. Hesabı ekleyin ve sihirbazı tamamlayın.

    Oluşturulan yönetilen kimliği depolama hesabına atama adımlarını gösteren animasyon.

  6. Uç noktanız, seçilen depolama hesabından iş ve giriş verileri almaya hazırdır.

Sonraki adımlar