Otorisasi pada titik akhir batch

Titik akhir batch mendukung autentikasi Microsoft Entra, atau aad_token. Itu berarti bahwa untuk memanggil titik akhir batch, pengguna harus menunjukkan token autentikasi Microsoft Entra yang valid ke URI titik akhir batch. Otorisasi diberlakukan pada tingkat titik akhir. Artikel berikut menjelaskan cara berinteraksi dengan titik akhir batch dengan benar dan persyaratan keamanan untuknya.

Cara kerja otorisasi

Untuk memanggil titik akhir batch, pengguna harus menunjukkan token Microsoft Entra yang valid yang mewakili prinsip keamanan. Perwakilan ini dapat menjadi prinsipal pengguna atau perwakilan layanan. Bagaimanapun, setelah titik akhir dipanggil, pekerjaan penyebaran batch dibuat di bawah identitas yang terkait dengan token. Identitas memerlukan izin berikut untuk berhasil membuat pekerjaan:

  • Baca titik akhir/penyebaran batch.
  • Buat pekerjaan di titik akhir/penyebaran inferensi batch.
  • Membuat eksperimen/eksekusi.
  • Membaca dan menulis dari/ke penyimpanan data.
  • Mencantumkan rahasia datastore.

Lihat Mengonfigurasi RBAC untuk memanggil titik akhir batch untuk daftar terperinci izin RBAC.

Penting

Identitas yang digunakan untuk memanggil titik akhir batch mungkin tidak digunakan untuk membaca data yang mendasar tergantung pada bagaimana penyimpanan data dikonfigurasi. Silakan lihat Mengonfigurasi kluster komputasi untuk akses data untuk detail selengkapnya.

Cara menjalankan pekerjaan menggunakan berbagai jenis kredensial

Contoh berikut menunjukkan berbagai cara untuk memulai pekerjaan penyebaran batch menggunakan berbagai jenis kredensial:

Penting

Saat mengerjakan ruang kerja yang mendukung tautan privat, titik akhir batch tidak dapat dipanggil dari UI di studio Azure Pembelajaran Mesin. Silakan gunakan Azure Pembelajaran Mesin CLI v2 sebagai gantinya untuk pembuatan pekerjaan.

Prasyarat

  • Contoh ini mengasumsikan bahwa Anda memiliki model yang disebarkan dengan benar sebagai titik akhir batch. Terutama, kami menggunakan pengklasifikasi kondisi jantung yang dibuat dalam tutorial Menggunakan model MLflow dalam penyebaran batch.

Menjalankan pekerjaan menggunakan kredensial pengguna

Dalam hal ini, kami ingin menjalankan titik akhir batch menggunakan identitas pengguna yang saat ini masuk. Ikuti langkah-langkah ini:

  1. Gunakan Azure CLI untuk masuk menggunakan autentikasi kode interaktif atau perangkat:

    az login
    
  2. Setelah diautentikasi, gunakan perintah berikut untuk menjalankan pekerjaan penyebaran batch:

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

Menjalankan pekerjaan menggunakan perwakilan layanan

Dalam hal ini, kami ingin menjalankan titik akhir batch menggunakan perwakilan layanan yang sudah dibuat di ID Microsoft Entra. Untuk menyelesaikan autentikasi, Anda harus membuat rahasia untuk melakukan autentikasi. Ikuti langkah-langkah ini:

  1. Buat rahasia yang akan digunakan untuk autentikasi seperti yang dijelaskan di Opsi 3: Buat rahasia klien baru.

  2. Untuk mengautentikasi menggunakan perwakilan layanan, gunakan perintah berikut. Untuk detail selengkapnya lihat Masuk dengan Azure CLI.

    az login --service-principal \
             --tenant <tenant> \
             -u <app-id> \
             -p <password-or-cert> 
    
  3. Setelah diautentikasi, gunakan perintah berikut untuk menjalankan pekerjaan penyebaran batch:

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

Menjalankan pekerjaan menggunakan identitas terkelola

Anda dapat menggunakan identitas terkelola untuk memanggil titik akhir dan penyebaran batch. Perhatikan bahwa identitas pengelolaan ini bukan milik titik akhir batch, tetapi identitas tersebut digunakan untuk menjalankan titik akhir dan karenanya membuat pekerjaan batch. Identitas yang ditetapkan pengguna dan yang ditetapkan sistem dapat digunakan dalam skenario ini.

Di sumber daya yang dikonfigurasi untuk identitas terkelola untuk sumber daya Azure, Anda dapat masuk menggunakan identitas terkelola. Masuk dengan identitas sumber daya dilakukan melalui bendera --identity. Untuk detail selengkapnya, lihat Masuk dengan Azure CLI.

az login --identity

Setelah diautentikasi, gunakan perintah berikut untuk menjalankan pekerjaan penyebaran batch:

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

Mengonfigurasi RBAC untuk memanggil Titik Akhir Batch

Titik Akhir Batch mengekspos konsumen API yang tahan lama dapat digunakan untuk menghasilkan pekerjaan. Pemanggil meminta izin yang tepat untuk dapat menghasilkan pekerjaan tersebut. Anda dapat menggunakan salah satu peran keamanan bawaan atau Anda dapat membuat peran kustom untuk tujuan tersebut.

Agar berhasil memanggil titik akhir batch, Anda memerlukan tindakan eksplisit berikut yang diberikan ke identitas yang digunakan untuk memanggil titik akhir. Lihat Langkah-langkah untuk menetapkan peran Azure untuk instruksi menetapkannya.

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

Mengonfigurasi kluster komputasi untuk akses data

Titik akhir batch memastikan bahwa hanya pengguna yang berwenang yang dapat memanggil penyebaran batch dan menghasilkan pekerjaan. Namun, tergantung pada bagaimana data input dikonfigurasi, kredensial lain mungkin digunakan untuk membaca data yang mendasar. Gunakan tabel berikut untuk memahami kredensial mana yang digunakan:

Jenis input data Kredensial di penyimpanan Kredensial yang digunakan Akses yang diberikan oleh
Penyimpanan data Ya Kredensial penyimpanan data di ruang kerja Kunci akses atau SAS
Aset data Ya Kredensial penyimpanan data di ruang kerja Kunci Akses atau SAS
Penyimpanan data No Identitas pekerjaan + Identitas terkelola kluster komputasi RBAC
Aset data No Identitas pekerjaan + Identitas terkelola kluster komputasi RBAC
Azure Blob Storage Tidak berlaku Identitas pekerjaan + Identitas terkelola kluster komputasi RBAC
Azure Data Lake Storage Gen1 Tidak berlaku Identitas pekerjaan + Identitas terkelola kluster komputasi POSIX
Azure Data Lake Storage Gen2 Tidak berlaku Identitas pekerjaan + Identitas terkelola kluster komputasi POSIX dan RBAC

Untuk item tersebut dalam tabel tempat Identitas pekerjaan + Identitas terkelola kluster komputasi ditampilkan, identitas terkelola kluster komputasi digunakan untuk memasang dan mengonfigurasi akun penyimpanan. Namun, identitas pekerjaan masih digunakan untuk membaca data yang mendasar yang memungkinkan Anda mencapai kontrol akses terperinci. Itu berarti bahwa untuk berhasil membaca data dari penyimpanan, identitas terkelola kluster komputasi tempat penyebaran berjalan harus memiliki setidaknya akses Storage Blob Data Reader ke akun penyimpanan.

Untuk mengonfigurasi kluster komputasi untuk akses data, ikuti langkah-langkah berikut:

  1. Buka studio Azure Pembelajaran Mesin.

  2. Navigasi ke Komputasi, lalu Komputasi kluster, dan pilih kluster komputasi yang digunakan penyebaran Anda.

  3. Tetapkan identitas terkelola ke kluster komputasi:

    1. Di bagian Identitas terkelola, verifikasi apakah komputasi memiliki identitas terkelola yang ditetapkan. Jika tidak, pilih opsi Edit.

    2. Pilih Tetapkan identitas terkelola dan konfigurasikan sesuai kebutuhan. Anda dapat menggunakan Identitas Terkelola yang Ditetapkan Sistem atau Identitas Terkelola yang Ditetapkan Pengguna. Jika menggunakan Identitas Terkelola yang Ditetapkan Sistem, identitas tersebut dinamai sebagai "[nama ruang kerja]/komputasi/[nama kluster komputasi]".

    3. Simpan perubahan.

    Animation showing the steps to assign a managed identity to a cluster.

  4. Buka portal Azure dan navigasikan ke akun penyimpanan terkait tempat data berada. Jika input data Anda adalah Aset Data atau Penyimpanan Data, cari akun penyimpanan tempat aset tersebut ditempatkan.

  5. Tetapkan tingkat akses Pembaca Data Blob Penyimpanan di akun penyimpanan:

    1. Buka bagian Kontrol akses (IAM).

    2. Pilih tab Penetapan peran, lalu klik Tambahkan>penetapan Peran.

    3. Cari peran bernama Pembaca Data Blob Penyimpanan, pilih peran tersebut, dan klik Berikutnya.

    4. Klik Pilih anggota.

    5. Cari identitas terkelola yang telah Anda buat. Jika menggunakan Identitas Terkelola yang Ditetapkan Sistem, identitas tersebut dinamai sebagai "[nama ruang kerja]/komputasi/[nama kluster komputasi]".

    6. Tambahkan akun, dan selesaikan wizard.

    Animation showing the steps to assign the created managed identity to the storage account.

  6. Titik akhir Anda siap menerima pekerjaan dan memasukkan data dari akun penyimpanan yang dipilih.

Langkah berikutnya