Mengelola akses ke ruang kerja Azure Pembelajaran Mesin

Artikel ini menjelaskan cara mengelola akses (otorisasi) ke ruang kerja Azure Pembelajaran Mesin. Anda dapat menggunakan kontrol akses berbasis peran Azure (Azure RBAC) untuk mengelola akses ke sumber daya Azure, memberi pengguna kemampuan untuk membuat sumber daya baru atau menggunakan sumber daya yang sudah ada. Pengguna di ID Microsoft Entra Anda diberi peran tertentu, yang memberikan akses ke sumber daya. Azure menyediakan peran bawaan dan kemampuan untuk membuat peran kustom.

Tip

Meskipun artikel ini berfokus pada Azure Pembelajaran Mesin, layanan individual menyediakan pengaturan RBAC mereka sendiri. Misalnya, dengan menggunakan informasi dalam artikel ini, Anda dapat mengonfigurasi siapa yang dapat mengirimkan permintaan penilaian ke model yang disebarkan sebagai layanan web di Azure Kubernetes Service. Namun, Azure Kubernetes Service menyediakan serangkaian peran Azure tersendiri. Untuk informasi RBAC khusus layanan yang mungkin berguna dengan Azure Pembelajaran Mesin, lihat tautan berikut:

Peringatan

Menerapkan beberapa peran mungkin membatasi fungsionalitas UI di studio Azure Pembelajaran Mesin untuk pengguna lain. Misalnya, jika peran pengguna tidak memiliki kemampuan untuk membuat instans komputasi, opsi untuk membuat instans komputasi tidak tersedia di studio. Ini adalah perilaku yang diharapkan, dan ini mencegah pengguna agar tidak mencoba operasi yang akan menampilkan kesalahan akses ditolak.

Peran default

Ruang kerja Azure Pembelajaran Mesin memiliki peran bawaan yang tersedia secara default. Saat menambahkan pengguna ke ruang kerja, mereka dapat diberi salah satu peran berikut.

Peran Tingkat akses
Ilmuwan Data AzureML Dapat melakukan semua tindakan dalam ruang kerja Azure Machine Learning, kecuali untuk membuat atau menghapus sumber daya komputasi dan memodifikasi ruang kerja itu sendiri.
Operator Komputasi AzureML Dapat membuat, mengelola, menghapus, dan mengakses sumber daya komputasi dalam ruang kerja.
Pembaca Tindakan baca-saja di ruang kerja. Pembaca dapat mencantumkan dan melihat aset, termasuk info masuk penyimpanan data, di ruang kerja. Pembaca tidak dapat membuat atau memperbarui aset ini.
Kontributor Melihat, membuat, mengedit, atau menghapus (jika berlaku) aset di ruang kerja. Misalnya, kontributor dapat membuat eksperimen, membuat atau melampirkan kluster komputasi, mengirimkan eksekusi, dan menerapkan layanan web.
Pemilik Akses penuh ke ruang kerja, termasuk kemampuan untuk melihat, membuat, mengedit, atau menghapus (jika berlaku) aset di ruang kerja. Selain itu, Anda dapat mengubah penetapan peran.

Selain itu, registri Azure Pembelajaran Mesin memiliki peran Pengguna AzureML Registry yang dapat ditetapkan ke sumber daya registri untuk memberikan izin tingkat pengguna kepada ilmuwan data. Agar izin tingkat administrator membuat atau menghapus registri, gunakan peran Kontributor atau Pemilik.

Peran Tingkat akses
Pengguna AzureML Registry Bisa mendapatkan registri, dan membaca, menulis, dan menghapus aset di dalamnya. Tidak dapat membuat sumber daya registri baru atau menghapusnya.

Anda dapat menggabungkan peran untuk memberikan tingkat akses yang berbeda. Misalnya, Anda dapat memberikan pengguna ruang kerja peran AzureML Data Scientist dan Operator Komputasi AzureML untuk mengizinkan pengguna melakukan eksperimen saat membuat komputasi dengan cara layanan mandiri.

Penting

Akses peran dapat dicakup ke beberapa tingkat di Azure. Misalnya, seseorang dengan akses pemilik ke ruang kerja mungkin tidak memiliki akses pemilik ke grup sumber daya yang berisi ruang kerja. Untuk informasi selengkapnya, lihat Cara kerja Azure RBAC.

Mengelola akses ruang kerja

Jika Anda adalah pemilik ruang kerja, Anda dapat menambahkan dan menghapus peran untuk ruang kerja. Anda juga dapat menetapkan peran kepada pengguna. Gunakan tautan berikut untuk menemukan cara mengelola akses:

Misalnya, gunakan Azure CLI untuk menetapkan peran Kontributor ke joe@contoso.com untuk grup sumber daya this-rg dengan perintah berikut:

az role assignment create --role "Contributor" --assignee "joe@contoso.com" --resource-group this-rg

Menggunakan grup keamanan Microsoft Entra untuk mengelola akses ruang kerja

Anda dapat menggunakan grup keamanan Microsoft Entra untuk mengelola akses ke ruang kerja. Pendekatan ini memiliki beberapa keuntungan:

  • Pemimpin tim atau proyek dapat mengelola akses pengguna ke ruang kerja sebagai pemilik grup keamanan, tanpa memerlukan peran Pemilik pada sumber daya ruang kerja secara langsung.
  • Anda dapat mengatur, mengelola, dan mencabut izin pengguna di ruang kerja dan sumber daya lain sebagai grup, tanpa harus mengelola izin berdasarkan pengguna demi pengguna.
  • Menggunakan grup Microsoft Entra membantu Anda menghindari mencapai batas langganan pada penetapan peran.

Untuk menggunakan grup keamanan Microsoft Entra:

  1. Membuat grup keamanan.
  2. Menambahkan pemilik grup. Pengguna ini memiliki izin untuk menambahkan atau menghapus anggota grup. Pemilik grup tidak diharuskan menjadi anggota grup, atau memiliki peran RBAC langsung di ruang kerja.
  3. Tetapkan peran RBAC pada ruang kerja, seperti AzureML Data Scientist, Reader, atau Contributor.
  4. Menambahkan anggota grup. Anggota mendapatkan akses ke ruang kerja.

Membuat peran kustom

Jika peran bawaan tidak cukup, Anda dapat membuat peran kustom. Peran kustom mungkin memiliki izin baca, tulis, hapus, dan komputasi sumber daya di ruang kerja tersebut. Anda dapat menyediakan peran di tingkat ruang kerja tertentu, tingkat grup sumber daya tertentu, atau tingkat langganan tertentu.

Catatan

Anda harus menjadi pemilik sumber daya pada tingkat tersebut untuk membuat peran kustom dalam sumber daya tersebut.

Untuk membuat peran kustom, pertama-tama buatlah file JSON definisi peran yang menentukan izin cakupan untuk peran tersebut. Contoh berikut mendefinisikan peran Kustom Ilmuwan Data kustom yang dilingkup pada tingkat ruang kerja tertentu:

data_scientist_custom_role.json :

{
    "Name": "Data Scientist Custom",
    "IsCustom": true,
    "Description": "Can run experiment but can't create or delete compute.",
    "Actions": ["*"],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/*/delete",
        "Microsoft.MachineLearningServices/workspaces/write",
        "Microsoft.MachineLearningServices/workspaces/computes/*/write",
        "Microsoft.MachineLearningServices/workspaces/computes/*/delete", 
        "Microsoft.Authorization/*/write"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>"
    ]
}

Tip

Anda dapat mengubah kolom AssignableScopes untuk mengatur cakupan peran kustom ini di tingkat langganan, tingkat grup sumber daya, atau tingkat ruang kerja tertentu. Peran kustom di atas hanyalah sebuah contoh, lihat beberapa peran kustom yang disarankan untuk layanan Pembelajaran Mesin Microsoft Azure.

Peran kustom ini dapat melakukan semua tindakan di ruang kerja, kecuali berikut:

  • Peran ini tidak dapat menghapus ruang kerja.
  • Ini tidak dapat membuat atau memperbarui ruang kerja.
  • Ini tidak dapat membuat atau memperbarui sumber daya komputasi.
  • Ini tidak dapat menghapus sumber daya komputasi.
  • Peran ini tidak dapat menambahkan, menghapus, atau mengubah penetapan peran.

Untuk menyebarkan peran kustom ini, gunakan perintah Azure CLI berikut ini:

az role definition create --role-definition data_scientist_custom_role.json

Setelah penyebaran, peran ini akan tersedia di ruang kerja yang ditentukan. Sekarang Anda dapat menambahkan dan menetapkan peran ini di portal Microsoft Azure.

Untuk informasi selengkapnya tentang peran kustom, lihat Peran kustom Azure.

Operasi Pembelajaran Mesin Microsoft Azure

Untuk informasi selengkapnya tentang operasi (tindakan dan non-tindakan) yang dapat digunakan dengan peran kustom, lihat Operasi penyedia sumber. Anda juga dapat menggunakan perintah Azure CLI berikut ini untuk mencantumkan operasi:

az provider operation show –n Microsoft.MachineLearningServices

Mencantumkan peran kustom

Di Azure CLI, jalankan perintah berikut ini:

az role definition list --subscription <subscriptionId> --custom-role-only true

Guna melihat definisi peran untuk peran kustom tertentu, gunakan perintah Azure CLI berikut ini. <roleName> harus dalam format yang sama yang dikembalikan oleh perintah sebelumnya:

az role definition list -n <roleName> --subscription <subscriptionId>

Perbarui peran kustom

Di Azure CLI, jalankan perintah berikut ini:

az role definition update --role-definition update_def.json --subscription <subscriptionId>

Anda harus memiliki izin pada keseluruhan cakupan definisi peran baru Anda. Misalnya, jika peran baru ini memiliki cakupan di tiga langganan, Anda harus memiliki izin pada ketiga langganan tersebut.

Catatan

Penerapan pembaruan peran dapat memakan waktu 15 menit hingga satu jam di semua penetapan peran dalam cakupan tersebut.

Menggunakan templat Azure Resource Manager untuk pengulangan

Jika Anda mengantisipasi bahwa Anda harus membuat ulang penetapan peran yang kompleks, templat Azure Resource Manager dapat menjadi bantuan yang signifikan. machine-learning-dependencies-role-assignment template menampilkan cara tugas peran dapat ditetapkan di kode sumber untuk digunakan kembali.

Skenario umum

Tabel berikut adalah ringkasan aktivitas Pembelajaran Mesin Microsoft Azure dan izin yang diperlukan untuk melakukannya dalam cakupan terkecil. Misalnya, jika aktivitas dapat dilakukan dengan cakupan ruang kerja (Kolom 4), maka semua cakupan yang lebih tinggi dengan izin tersebut juga berfungsi secara otomatis. Untuk aktivitas tertentu, izin berbeda antara API V1 dan V2.

Penting

Semua jalur dalam tabel ini yang dimulai dengan / adalah jalur relatif ke Microsoft.MachineLearningServices/:

Tinggi Cakupan tingkat langganan Cakupan tingkat grup sumber daya Cakupan tingkat ruang kerja
Membuat ruang kerja baru 1 Tidak diperlukan Pemilik atau kontributor N/A (menjadi Pemilik atau mewarisi peran dengan cakupan yang lebih tinggi setelah pembuatan)
Meminta kuota Amlcompute tingkat langganan atau mengatur kuota tingkat ruang kerja Pemilik, atau kontributor, atau peran kustom
yang mengizinkan /locations/updateQuotas/action
pada cakupan langganan
Tidak berwenang Tidak berwenang
Membuat kluster komputasi baru Tidak diperlukan Tidak diperlukan Pemilik, kontributor, atau peran kustom yang mengizinkan: /workspaces/computes/write
Membuat instans komputasi baru Tidak diperlukan Tidak diperlukan Pemilik, kontributor, atau peran kustom yang mengizinkan: /workspaces/computes/write
Mengirimkan semua jenis eksekusi (V1) Tidak diperlukan Tidak diperlukan Pemilik, kontributor, atau peran kustom yang memungkinkan: /workspaces/*/read, , /workspaces/environments/write, /workspaces/experiments/runs/write/workspaces/metadata/artifacts/write, /workspaces/metadata/snapshots/write, /workspaces/environments/build/action, /workspaces/experiments/runs/submit/action,/workspaces/environments/readSecrets/action
Mengirimkan semua jenis eksekusi (V2) Tidak diperlukan Tidak diperlukan Pemilik, kontributor, atau peran kustom yang memungkinkan: /workspaces/*/read, , /workspaces/environments/write, /workspaces/jobs/*/workspaces/metadata/artifacts/write, /workspaces/metadata/codes/*/write, /workspaces/environments/build/action,/workspaces/environments/readSecrets/action
Menerbitkan alur dan titik akhir (V1) Tidak diperlukan Tidak diperlukan Pemilik, kontributor, atau peran kustom yang memungkinkan: /workspaces/endpoints/pipelines/*, , /workspaces/pipelinedrafts/*/workspaces/modules/*
Menerbitkan alur dan titik akhir (V2) Tidak diperlukan Tidak diperlukan Pemilik, kontributor, atau peran kustom yang memungkinkan: /workspaces/endpoints/pipelines/*, , /workspaces/pipelinedrafts/*/workspaces/components/*
Melampirkan sumber daya AKS 2 Tidak diperlukan Pemilik atau kontributor pada grup sumber daya yang berisi AKS
Menyebarkan model terdaftar pada sumber daya AKS/ACI Tidak diperlukan Tidak diperlukan Pemilik, kontributor, atau peran kustom yang memungkinkan: /workspaces/services/aks/write, /workspaces/services/aci/write
Penilaian terhadap titik akhir AKS yang disebarkan Tidak diperlukan Tidak diperlukan Pemilik, kontributor, atau peran kustom yang memungkinkan: /workspaces/services/aks/score/action, /workspaces/services/aks/listkeys/action (saat Anda tidak menggunakan Microsoft Entra auth) ATAU /workspaces/read (saat Anda menggunakan autentikasi token)
Mengakses penyimpanan menggunakan notebook interaktif Tidak diperlukan Tidak diperlukan Pemilik, kontributor, atau peran kustom yang memungkinkan: /workspaces/computes/read, , /workspaces/notebooks/samples/read/workspaces/notebooks/storage/*, /workspaces/listStorageAccountKeys/action,/workspaces/listNotebookAccessToken/read
Membuat peran kustom baru Pemilik, kontributor, atau peran kustom yang mengizinkan Microsoft.Authorization/roleDefinitions/write Tidak diperlukan Pemilik, kontributor, atau peran kustom yang mengizinkan: /workspaces/computes/write
Membuat/mengelola titik akhir dan penyebaran online Tidak diperlukan Untuk menyebarkan di studio, Microsoft.Resources/deployments/write Pemilik, kontributor, atau peran kustom yang Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*memungkinkan .
Mengambil info masuk autentikasi untuk titik akhir online Tidak diperlukan Tidak diperlukan Pemilik, kontributor, atau peran kustom yang Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/action mengizinkan dan Microsoft.MachineLearningServices/workspaces/onlineEndpoints/listkeys/action
  1. Jika Anda menerima kegagalan saat mencoba membuat ruang kerja untuk pertama kalinya, pastikan peran Anda mengizinkan Microsoft.MachineLearningServices/register/action. Tindakan ini memungkinkan Anda mendaftarkan penyedia sumber Pembelajaran Mesin Microsoft Azure dengan langganan Azure Anda.

  2. Saat melampirkan kluster AKS, Anda juga harus memiliki Peran Admin Kluster Azure Kubernetes Service pada kluster.

Menyebarkan ke jaringan virtual atau subnet

  • Untuk menyebarkan sumber daya ke dalam jaringan virtual atau subnet, akun pengguna Anda harus memiliki izin untuk tindakan berikut di kontrol akses berbasis peran Azure (Azure RBAC):

    • "Microsoft.Network/*/read" pada sumber daya jaringan virtual. Izin ini tidak diperlukan untuk penyebaran templat Azure Resource Manager (ARM).
    • "Microsoft.Network/virtualNetworks/join/action" pada sumber daya jaringan virtual.
    • "Microsoft.Network/virtualNetworks/subnet/join/action" pada sumber daya subnet.

    Untuk informasi selengkapnya tentang Azure RBAC dengan pembuatan jaringan, lihat Peran bawaan jaringan

Perbedaan antara tindakan untuk API V1 dan V2

Ada perbedaan tertentu antara tindakan untuk API V1 dan API V2.

Aset Jalur tindakan untuk API V1 Jalur tindakan untuk API V2
Dataset Microsoft.Machine Pembelajaran Services/workspaces/datasets Microsoft.Machine Pembelajaran Services/workspaces/datasets/versions
Eksperimen berjalan dan pekerjaan Microsoft.Machine Pembelajaran Services/workspaces/experiments Microsoft.Machine Pembelajaran Services/workspaces/jobs
Model Microsoft.Machine Pembelajaran Services/workspaces/models Microsoft.Machine Pembelajaran Services/workspaces/models/versions
Rekam jepret dan kode Microsoft.Machine Pembelajaran Services/workspaces/snapshots Microsoft.Machine Pembelajaran Services/workspaces/codes/versions
Modul dan komponen Microsoft.Machine Pembelajaran Services/workspaces/modules Microsoft.Machine Pembelajaran Services/workspaces/components

Anda dapat membuat peran kustom kompatibel dengan API V1 dan V2 dengan menyertakan kedua tindakan, atau menggunakan kartubebas yang menyertakan kedua tindakan, misalnya Microsoft.MachineLearningServices/workspaces/datasets/*/read.

Membuat ruang kerja menggunakan kunci yang dikelola pelanggan

Saat menggunakan kunci yang dikelola pelanggan (CMK), Azure Key Vault digunakan untuk menyimpan kunci. Perwakilan layanan atau pengguna yang digunakan untuk membuat ruang kerja harus memiliki akses pemilik atau kontributor ke brankas kunci.

Dalam brankas kunci, perwakilan layanan atau pengguna harus memiliki akses buat, dapatkan, hapus, dan hapus menyeluruh ke kunci melalui kebijakan akses brankas kunci. Untuk informasi selengkapnya, lihat Keamanan Azure Key Vault.

Identitas terkelola yang ditetapkan pengguna dengan kluster komputasi Azure Pembelajaran Mesin

Untuk menetapkan identitas yang ditetapkan pengguna ke kluster komputasi Pembelajaran Mesin Microsoft Azure, Anda memerlukan izin tulis untuk membuat komputasi dan Peran Operator Identitas Terkelola. Untuk informasi selengkapnya tentang Azure RBAC dengan Identitas Terkelola, baca Cara mengelola identitas yang ditetapkan pengguna

Operasi MLflow

Untuk melakukan operasi MLflow dengan ruang kerja Pembelajaran Mesin Microsoft Azure, gunakan cakupan berikut untuk peran kustom Anda:

Operasi MLflow Cakupan
(V1) Mencantumkan, membaca, membuat, memperbarui, atau menghapus eksperimen Microsoft.MachineLearningServices/workspaces/experiments/*
(V2) Mencantumkan, membaca, membuat, memperbarui, atau menghapus pekerjaan Microsoft.MachineLearningServices/workspaces/jobs/*
Dapatkan model terdaftar berdasarkan nama, ambil daftar semua model terdaftar di registri, cari model terdaftar, model versi terbaru untuk setiap tahap permintaan, dapatkan versi model terdaftar, versi model pencarian, dapatkan URI tempat artefak versi model disimpan, cari eksekusi menurut ID eksperimen Microsoft.MachineLearningServices/workspaces/models/*/read
Membuat model terdaftar baru, memperbarui nama/deskripsi model terdaftar, mengganti nama model terdaftar yang ada, membuat model versi baru, memperbarui deskripsi versi model, mentransisikan model terdaftar ke salah satu tahap Microsoft.MachineLearningServices/workspaces/models/*/write
Menghapus model terdaftar beserta semua versinya, menghapus versi tertentu dari model terdaftar Microsoft.MachineLearningServices/workspaces/models/*/delete

Contoh peran kustom

Saintis data

Memungkinkan ilmuwan data melakukan semua operasi di dalam ruang kerja, kecuali:

  • Pembuatan komputasi
  • Penyebaran model ke kluster AKS produksi
  • Penyebaran titik akhir alur dalam produksi

data_scientist_custom_role.json :

{
    "Name": "Data Scientist Custom",
    "IsCustom": true,
    "Description": "Can run experiment but can't create or delete compute or deploy production endpoints.",
    "Actions": [
        "Microsoft.MachineLearningServices/workspaces/*/read",
        "Microsoft.MachineLearningServices/workspaces/*/action",
        "Microsoft.MachineLearningServices/workspaces/*/delete",
        "Microsoft.MachineLearningServices/workspaces/*/write"
    ],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/delete",
        "Microsoft.MachineLearningServices/workspaces/write",
        "Microsoft.MachineLearningServices/workspaces/computes/*/write",
        "Microsoft.MachineLearningServices/workspaces/computes/*/delete", 
        "Microsoft.Authorization/*",
        "Microsoft.MachineLearningServices/workspaces/computes/listKeys/action",
        "Microsoft.MachineLearningServices/workspaces/listKeys/action",
        "Microsoft.MachineLearningServices/workspaces/services/aks/write",
        "Microsoft.MachineLearningServices/workspaces/services/aks/delete",
        "Microsoft.MachineLearningServices/workspaces/endpoints/pipelines/write"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscriptionId>"
    ]
}

Ilmuwan data terbatas

Definisi peran yang lebih terbatas tanpa kartu bebas dalam tindakan yang diizinkan. Peran ini dapat melakukan semua operasi di dalam ruang kerja, kecuali:

  • Pembuatan komputasi
  • Penyebaran model ke kluster AKS produksi
  • Penyebaran titik akhir alur dalam produksi

data_scientist_restricted_custom_role.json :

{
    "Name": "Data Scientist Restricted Custom",
    "IsCustom": true,
    "Description": "Can run experiment but can't create or delete compute or deploy production endpoints",
    "Actions": [
        "Microsoft.MachineLearningServices/workspaces/*/read",
        "Microsoft.MachineLearningServices/workspaces/computes/start/action",
        "Microsoft.MachineLearningServices/workspaces/computes/stop/action",
        "Microsoft.MachineLearningServices/workspaces/computes/restart/action",
        "Microsoft.MachineLearningServices/workspaces/computes/applicationaccess/action",
        "Microsoft.MachineLearningServices/workspaces/notebooks/storage/write",
        "Microsoft.MachineLearningServices/workspaces/notebooks/storage/delete",
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/write",
        "Microsoft.MachineLearningServices/workspaces/experiments/write",
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/submit/action",
        "Microsoft.MachineLearningServices/workspaces/pipelinedrafts/write",
        "Microsoft.MachineLearningServices/workspaces/metadata/snapshots/write",
        "Microsoft.MachineLearningServices/workspaces/metadata/artifacts/write",
        "Microsoft.MachineLearningServices/workspaces/environments/write",
        "Microsoft.MachineLearningServices/workspaces/models/*/write",
        "Microsoft.MachineLearningServices/workspaces/modules/write",
        "Microsoft.MachineLearningServices/workspaces/components/*/write",
        "Microsoft.MachineLearningServices/workspaces/datasets/*/write", 
        "Microsoft.MachineLearningServices/workspaces/datasets/*/delete",
        "Microsoft.MachineLearningServices/workspaces/computes/listNodes/action",
        "Microsoft.MachineLearningServices/workspaces/environments/build/action"
    ],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/computes/write",
        "Microsoft.MachineLearningServices/workspaces/write",
        "Microsoft.MachineLearningServices/workspaces/computes/delete",
        "Microsoft.MachineLearningServices/workspaces/delete",
        "Microsoft.MachineLearningServices/workspaces/computes/listKeys/action",
        "Microsoft.MachineLearningServices/workspaces/connections/listsecrets/action",
        "Microsoft.MachineLearningServices/workspaces/listKeys/action",
        "Microsoft.Authorization/*",
        "Microsoft.MachineLearningServices/workspaces/datasets/registered/profile/read",
        "Microsoft.MachineLearningServices/workspaces/datasets/registered/preview/read",
        "Microsoft.MachineLearningServices/workspaces/datasets/unregistered/profile/read",
        "Microsoft.MachineLearningServices/workspaces/datasets/unregistered/preview/read",
        "Microsoft.MachineLearningServices/workspaces/datasets/registered/schema/read",    
        "Microsoft.MachineLearningServices/workspaces/datasets/unregistered/schema/read",
        "Microsoft.MachineLearningServices/workspaces/datastores/write",
        "Microsoft.MachineLearningServices/workspaces/datastores/delete"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscriptionId>"
    ]
}

Ilmuwan data MLflow

Memungkinkan ilmuwan data melakukan semua operasi yang didukung Pembelajaran Mesin MLflow Azure kecuali:

  • Pembuatan komputasi
  • Penyebaran model ke kluster AKS produksi
  • Penyebaran titik akhir alur dalam produksi

mlflow_data_scientist_custom_role.json :

{
    "Name": "MLFlow Data Scientist Custom",
    "IsCustom": true,
    "Description": "Can perform azureml mlflow integrated functionalities that includes mlflow tracking, projects, model registry",
    "Actions": [
        "Microsoft.MachineLearningServices/workspaces/experiments/*",
        "Microsoft.MachineLearningServices/workspaces/jobs/*",
        "Microsoft.MachineLearningServices/workspaces/models/*"
    ],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/delete",
        "Microsoft.MachineLearningServices/workspaces/write",
        "Microsoft.MachineLearningServices/workspaces/computes/*/write",
        "Microsoft.MachineLearningServices/workspaces/computes/*/delete", 
        "Microsoft.Authorization/*",
        "Microsoft.MachineLearningServices/workspaces/computes/listKeys/action",
        "Microsoft.MachineLearningServices/workspaces/listKeys/action",
        "Microsoft.MachineLearningServices/workspaces/services/aks/write",
        "Microsoft.MachineLearningServices/workspaces/services/aks/delete",
        "Microsoft.MachineLearningServices/workspaces/endpoints/pipelines/write"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscriptionId>"
    ]
}

MLOps

Memungkinkan Anda menetapkan peran ke perwakilan layanan dan menggunakannya untuk mengotomatiskan alur MLOps Anda. Misalnya, untuk mengirimkan eksekusi terhadap alur yang sudah dipublikasikan:

mlops_custom_role.json :

{
    "Name": "MLOps Custom",
    "IsCustom": true,
    "Description": "Can run pipelines against a published pipeline endpoint",
    "Actions": [
        "Microsoft.MachineLearningServices/workspaces/read",
        "Microsoft.MachineLearningServices/workspaces/endpoints/pipelines/read",
        "Microsoft.MachineLearningServices/workspaces/metadata/artifacts/read",
        "Microsoft.MachineLearningServices/workspaces/metadata/snapshots/read",
        "Microsoft.MachineLearningServices/workspaces/environments/read",    
        "Microsoft.MachineLearningServices/workspaces/metadata/secrets/read",
        "Microsoft.MachineLearningServices/workspaces/modules/read",
        "Microsoft.MachineLearningServices/workspaces/components/read",       
        "Microsoft.MachineLearningServices/workspaces/datasets/*/read",
        "Microsoft.MachineLearningServices/workspaces/datastores/read",
        "Microsoft.MachineLearningServices/workspaces/environments/write",
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/read",       
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/write",
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/submit/action",
        "Microsoft.MachineLearningServices/workspaces/experiments/jobs/read",       
        "Microsoft.MachineLearningServices/workspaces/experiments/jobs/write",
        "Microsoft.MachineLearningServices/workspaces/metadata/artifacts/write",
        "Microsoft.MachineLearningServices/workspaces/metadata/snapshots/write",
        "Microsoft.MachineLearningServices/workspaces/metadata/codes/*/write",       
        "Microsoft.MachineLearningServices/workspaces/environments/build/action",
    ],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/computes/write",
        "Microsoft.MachineLearningServices/workspaces/write",
        "Microsoft.MachineLearningServices/workspaces/computes/delete",
        "Microsoft.MachineLearningServices/workspaces/delete",
        "Microsoft.MachineLearningServices/workspaces/computes/listKeys/action",
        "Microsoft.MachineLearningServices/workspaces/listKeys/action",
        "Microsoft.Authorization/*"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscriptionId>"
    ]
}

Admin Ruang Kerja

Memungkinkan Anda melakukan semua operasi dalam cakupan ruang kerja, kecuali:

  • Membuat ruang kerja baru
  • Menetapkan kuota tingkat langganan atau ruang kerja

Admin ruang kerja juga tidak dapat membuat peran baru. Peran ini hanya dapat menetapkan peran bawaan atau kustom yang ada dalam cakupan ruang kerjanya:

workspace_admin_custom_role.json :

{
    "Name": "Workspace Admin Custom",
    "IsCustom": true,
    "Description": "Can perform all operations except quota management and upgrades",
    "Actions": [
        "Microsoft.MachineLearningServices/workspaces/*/read",
        "Microsoft.MachineLearningServices/workspaces/*/action",
        "Microsoft.MachineLearningServices/workspaces/*/write",
        "Microsoft.MachineLearningServices/workspaces/*/delete",
        "Microsoft.Authorization/roleAssignments/*"
    ],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/write"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscriptionId>"
    ]
}

Pelabelan data

Ada peran bawaan untuk pelabelan data, hanya dilingkup untuk pelabelan data. Peran kustom berikut memberikan tingkat akses lain untuk proyek pelabelan data.

Prospek tim pelabelan memungkinkan Anda meninjau dan menolak himpunan data berlabel dan melihat wawasan pelabelan. Selain itu, peran ini juga memungkinkan Anda untuk melakukan peran pembuat label.

labeling_team_lead_custom_role.json :

{
    "Name": "Labeling Team Lead",
    "IsCustom": true,
    "Description": "Team lead for Labeling Projects",
    "Actions": [
        "Microsoft.MachineLearningServices/workspaces/read",
        "Microsoft.MachineLearningServices/workspaces/labeling/labels/read",
        "Microsoft.MachineLearningServices/workspaces/labeling/labels/write",
        "Microsoft.MachineLearningServices/workspaces/labeling/labels/reject/action",
        "Microsoft.MachineLearningServices/workspaces/labeling/labels/update/action",
        "Microsoft.MachineLearningServices/workspaces/labeling/projects/read",
        "Microsoft.MachineLearningServices/workspaces/labeling/projects/summary/read"
    ],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/labeling/projects/write",
        "Microsoft.MachineLearningServices/workspaces/labeling/projects/delete",
        "Microsoft.MachineLearningServices/workspaces/labeling/export/action"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscriptionId>"
    ]
}

Pemecahan Masalah

Berikut adalah beberapa hal yang perlu diperhatikan saat Anda menggunakan Azure RBAC:

  • Saat Anda membuat sumber daya di Azure, seperti ruang kerja, Anda tidak secara langsung menjadi pemilik sumber daya. Peran Anda diwariskan dari peran cakupan tertinggi yang diotorisasi dalam langganan tersebut. Sebagai contoh jika Anda adalah Administrator Jaringan, dan memiliki izin untuk membuat ruang kerja Pembelajaran Mesin, Anda akan diberi peran Administrator Jaringan terhadap ruang kerja tersebut, dan bukan peran Pemilik.

  • Untuk melakukan operasi kuota di ruang kerja, Anda memerlukan izin tingkat langganan. Ini berarti pengaturan kuota tingkat langganan atau kuota tingkat ruang kerja untuk sumber daya komputasi terkelola hanya dapat terjadi jika Anda memiliki izin tulis pada cakupan langganan.

  • Untuk menyebarkan di studio, Anda memerlukan Microsoft.Resources/deployments/write AND Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/write. Untuk penyebaran SDK/CLI, Anda memerlukan Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/write. Hubungi pemilik ruang kerja/grup sumber daya Anda untuk izin tambahan.

  • Ketika ada dua penetapan peran untuk pengguna Microsoft Entra yang sama dengan bagian Tindakan/NotActions yang bertentangan, operasi Anda yang tercantum dalam NotActions dari satu peran mungkin tidak berlaku jika mereka juga terdaftar sebagai Tindakan dalam peran lain. Untuk mempelajari selengkapnya tentang cara Azure menguraikan penetapan peran, baca Cara Azure RBAC menentukan apakah pengguna memiliki akses ke sumber daya

  • Terkadang diperlukan waktu hingga satu jam agar penetapan peran baru Anda diterapkan pada izin yang di-cache di seluruh tumpukan.

Langkah berikutnya