Toplu işlem uç noktalarında yetkilendirme

Batch uç noktaları Microsoft Entra kimlik doğrulamayı veya aad_token'yi destekler. Bir toplu iş uç noktasını çağırmak için toplu iş uç noktası URI'sine geçerli bir Microsoft Entra kimlik doğrulama belirteci sunmanız gerekir. Yetkilendirme, uç nokta düzeyinde uygulanır. Aşağıdaki makalede toplu iş uç noktalarıyla ve güvenlik gereksinimleriyle doğru şekilde nasıl etkileşim kurulacakları açıklanmaktadır.

Yetkilendirme nasıl çalışır?

Bir toplu iş uç noktasını çağırmak için, bir güvenlik ilkesini temsil eden geçerli bir Microsoft Entra belirteci sunmanız gerekir. Bu sorumlu bir kullanıcı sorumlusu veya hizmet sorumlusu olabilir. Her durumda, bir uç noktayı çağırdığınızda, token ile ilişkili kimlik altında bir toplu dağıtım işi oluşturursunuz. Kimliğin başarılı bir şekilde iş oluşturmak için aşağıdaki izinlere ihtiyacı vardır:

  • Toplu işlem uç noktalarını ve kurulumları okuyun.
  • Toplu çıkarım uç noktaları ve dağıtımları üzerinde görevler oluşturun.
  • Denemeler ve çalıştırmalar oluşturun.
  • Veri depolarına veri okuma ve yazma.
  • Veri deposu sırlarını listele.

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

Önemli

Veri depoyu nasıl yapılandırdığınıza bağlı olarak, temel alınan verileri okumak üzere bir toplu iş uç noktasını çağırmak için kimliği kullanamayabilirsiniz. Daha fazla bilgi için bkz. Veri erişimi için işlem kümelerini yapılandırma.

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

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 Azure Machine Learning Stüdyosu'da kullanıcı arabiriminden toplu iş uç noktalarını çağıramazsınız. İş oluşturmak için bunun yerine Azure Machine Learning CLI v2'yi kullanın.

Önkoşullar

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

Kimlik bilgilerinizi kullanarak görevleri çalıştırma

Oturum açmış durumdaki kullanıcının kimliğini kullanarak bir toplu iş uç noktası yürütmek için ş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 bir toplu dağıtım işi çalıştırmak için aşağıdaki komutu kullanı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

Microsoft Entra ID'de önceden oluşturduğunuz hizmet sorumlusunu kullanarak bir toplu iş uç noktasını çalıştırmak için kimlik doğrulaması amacıyla bir gizli bilgi oluşturun. Şu adımları izleyin:

  1. 3. Seçenek: Yeni bir istemci gizli dizisi oluşturma bölümünde 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. Diğer ayrıntılar 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 bir toplu dağıtım işi çalıştırmak için aşağıdaki komutu kullanın:

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

İşleri yönetilen kimlik kullanarak çalıştırma

Toplu iş uç noktası ve dağıtımları ç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. Azure rolü atama adımları için talimatlara bunları nasıl atayacağınızı görmek üzere bakın.

"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 izni verildi
Veri deposu Evet Çalışma alanında veri deposunun kimlik bilgileri Erişim anahtarı veya SAS
Veri kaynağı Evet Çalışma alanında veri deposunun kimlik bilgileri Erişim Anahtarı veya SAS
Veri deposu Hayır İşin kimliği + Hesaplama kümesinin yönetilen kimliği RBAC
Veri kaynağı Hayır İşin kimliği + Hesaplama kümesinin yönetilen kimliği RBAC
Azure Blob Saklama Alanı Uygulanmaz İşin kimliği + Hesaplama kümesinin yönetilen kimliği RBAC
1. Nesil Azure Data Lake Storage Uygulanmaz İşin kimliği + Hesaplama kümesinin yönetilen kimliği POSIX
Azure Data Lake Storage İkinci Nesil Uygulanmaz İşin kimliği + Hesaplama kümesinin yönetilen kimliği POSIX ve RBAC

İşin kimliği + İşlem kümesinin yönetilen kimliği görüntülendiği tablodaki öğeler için, depolama hesaplarını bağlama ve yapılandırma için işlem kümesinin yönetilen kimliği kullanılır. Ancak görev kimliği, ayrıntılı erişim denetimi sağlamak için temel verileri okumak amacıyla 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 ve ardından İşlem kümeleri'ne gidin.

  3. Dağıtımınızın kullandığı işlem kümesini seçin. Bu eylem işlem kümesinin Ayrıntılar sayfasını açar.

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

    1. Sayfanın Yönetilen kimlik bölümüne gidin ve hesaplama birimine yönetilen kimlik atanıp atanmadığını kontrol edin. Değilse, yönetilen kimliği düzenlemek için kalem simgesini seçin.

    2. Yönetilen kimlik atama'yı etkinleştirmek ve gerektiğinde yapılandırmak için yanındaki kaydırıcıyı seçin. 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.

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

  6. 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 ardından Ekle>Rol ataması'na 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 bulun. 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.

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

Sonraki adımlar