Menyiapkan autentikasi antara Azure Pembelajaran Mesin dan layanan lainnya
BERLAKU UNTUK:Ekstensi ml Azure CLI v2 (saat ini)Python SDK azure-ai-ml v2 (saat ini)
Azure Pembelajaran Mesin terdiri dari beberapa layanan Azure. Ada beberapa cara agar autentikasi dapat terjadi antara Azure Pembelajaran Mesin dan layanan yang diandalkannya.
- Ruang kerja Azure Pembelajaran Mesin menggunakan identitas terkelola untuk berkomunikasi dengan layanan lain. Secara default, ini adalah identitas terkelola yang ditetapkan sistem. Anda juga dapat menggunakan identitas terkelola yang ditetapkan pengguna sebagai gantinya.
- Azure Pembelajaran Mesin menggunakan Azure Container Registry (ACR) untuk menyimpan gambar Docker yang digunakan untuk melatih dan menyebarkan model. Jika Anda mengizinkan Azure Pembelajaran Mesin membuat ACR secara otomatis, azure Pembelajaran Mesin akan mengaktifkan akun admin.
- Kluster komputasi Azure Pembelajaran Mesin menggunakan identitas terkelola untuk mengambil informasi koneksi untuk datastore dari Azure Key Vault dan untuk menarik gambar Docker dari ACR. Anda juga dapat mengonfigurasi akses berbasis identitas ke penyimpanan data, yang akan menggunakan identitas terkelola kluster komputasi.
- Akses data dapat terjadi di sepanjang beberapa jalur tergantung pada layanan penyimpanan data dan konfigurasi Anda. Misalnya, autentikasi ke datastore dapat menggunakan kunci akun, token, prinsip keamanan, identitas terkelola, atau identitas pengguna.
- Titik akhir online terkelola dapat menggunakan identitas terkelola untuk mengakses sumber daya Azure saat melakukan inferensi. Untuk mengetahui informasi selengkapnya, lihat Mengakses sumber daya Azure dari titik akhir online.
Prasyarat
Sebelum mengikuti langkah-langkah dalam artikel ini, pastikan Anda memiliki prasyarat berikut:
Ruang kerja Azure Machine Learning. Jika Anda tidak memilikinya, gunakan langkah-langkah dalam artikel Mulai Cepat: Membuat sumber daya ruang kerja untuk membuatnya.
Azure CLI dan
ml
ekstensi atau Azure Pembelajaran Mesin Python SDK v2:Untuk menginstal Azure CLI dan ekstensi, lihat Menginstal, menyiapkan, dan menggunakan CLI (v2).
Penting
Contoh CLI dalam artikel ini mengasumsikan bahwa Anda menggunakan shell Bash (atau kompatibel). Misalnya, dari sistem Linux atau Subsistem Windows untuk Linux.
Untuk memasang SDK Python v2, gunakan perintah berikut:
pip install azure-ai-ml azure-identity
Untuk memperbarui penginstalan SDK yang ada ke versi terbaru, gunakan perintah berikut:
pip install --upgrade azure-ai-ml azure-identity
Untuk informasi selengkapnya, lihat Menginstal Python SDK v2 untuk Azure Pembelajaran Mesin.
Untuk menetapkan peran, ID masuk untuk langganan Azure Anda harus memiliki peran Operator Identitas Terkelola, atau peran lain yang memberikan tindakan yang diperlukan (seperti Pemilik).
Anda harus terbiasa membuat dan bekerja dengan Identitas Terkelola.
Azure Container Registry dan jenis identitas
Tabel ini mencantumkan matriks dukungan saat mengautentikasi ke Azure Container Registry, tergantung pada metode autentikasi dan konfigurasi akses jaringan publik Azure Container Registry.
Metode autentikasi | Akses jaringan publik dinonaktifkan |
Akses jaringan Publik Azure Container Registry diaktifkan |
---|---|---|
Pengguna admin | ✓ | ✓ |
Identitas terkelola yang ditetapkan sistem ruang kerja | ✓ | ✓ |
Identitas terkelola yang ditetapkan pengguna ruang kerja dengan peran ACRPull yang ditetapkan ke identitas |
✓ |
Identitas terkelola yang ditetapkan pengguna
Ruang kerja
Anda dapat menambahkan identitas terkelola yang ditetapkan pengguna saat membuat ruang kerja Azure Pembelajaran Mesin dari portal Azure. Gunakan langkah-langkah berikut saat membuat ruang kerja:
- Dari halaman Dasar , pilih Akun Azure Storage, Azure Container Registry, dan Azure Key Vault yang ingin Anda gunakan dengan ruang kerja.
- Dari halaman Identitas , pilih Identitas yang ditetapkan pengguna lalu pilih identitas terkelola yang akan digunakan.
Penetapan peran Azure RBAC berikut diperlukan pada identitas terkelola yang ditetapkan pengguna untuk ruang kerja Azure Pembelajaran Mesin Anda untuk mengakses data pada sumber daya terkait ruang kerja.
Sumber daya | Izin |
---|---|
Ruang kerja Azure Machine Learning | Kontributor |
Azure Storage | Kontributor (sarana kontrol) + Kontributor Data Blob Penyimpanan (bidang data, opsional, untuk mengaktifkan pratinjau data di studio Azure Pembelajaran Mesin) |
Azure Key Vault (saat menggunakan model izin RBAC) | Kontributor (sarana kontrol) + Administrator Key Vault (bidang data) |
Azure Key Vault (saat menggunakan model izin kebijakan akses) | Kontributor + izin kebijakan akses apa pun selain operasi penghapusan menyeluruh |
Azure Container Registry | Kontributor |
Azure Application Insights | Kontributor |
Untuk pembuatan penetapan peran otomatis pada identitas terkelola yang ditetapkan pengguna, Anda dapat menggunakan templat ARM ini.
Tip
Untuk ruang kerja dengan kunci yang dikelola pelanggan untuk enkripsi, Anda dapat meneruskan identitas terkelola yang ditetapkan pengguna untuk mengautentikasi dari penyimpanan ke Key Vault. user-assigned-identity-for-cmk-encryption
Gunakan parameter (CLI) atau user_assigned_identity_for_cmk_encryption
(SDK) untuk meneruskan identitas terkelola. Identitas terkelola ini dapat sama atau berbeda dengan identitas terkelola yang ditetapkan oleh pengguna utama ruang kerja.
Untuk membuat ruang kerja dengan beberapa identitas yang ditetapkan pengguna, gunakan salah satu metode berikut:
BERLAKU UNTUK: Ekstensi ml Azure CLI v2 (saat ini)
az ml workspace create -f workspace_creation_with_multiple_UAIs.yml --subscription <subscription ID> --resource-group <resource group name> --name <workspace name>
Di mana konten workspace_creation_with_multiple_UAIs.yml adalah sebagai berikut:
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>
Untuk memperbarui identitas yang ditetapkan pengguna untuk ruang kerja, termasuk menambahkan identitas baru atau menghapus identitas yang sudah ada, gunakan salah satu metode berikut:
BERLAKU UNTUK: Ekstensi ml Azure CLI v2 (saat ini)
az ml workspace update -f workspace_update_with_multiple_UAIs.yml --subscription <subscription ID> --resource-group <resource group name> --name <workspace name>
Di mana konten workspace_update_with_multiple_UAIs.yml adalah sebagai berikut:
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>
Tip
Untuk menambahkan UAI baru, Anda dapat menentukan ID UAI baru di bawah bagian user_assigned_identities selain UEA yang ada, anda harus meneruskan semua ID UAI yang ada.
Untuk menghapus satu atau beberapa UEA yang ada, Anda dapat menempatkan ID UAI yang perlu dipertahankan di bawah bagian user_assigned_identities, ID UAI lainnya akan dihapus.
Untuk memperbarui jenis identitas dari SAI ke UAI|SAI, Anda dapat mengubah jenis dari "user_assigned" menjadi "system_assigned, user_assigned".
Menambahkan identitas terkelola yang ditetapkan pengguna ke ruang kerja selain identitas yang ditetapkan sistem
Dalam beberapa skenario, Anda mungkin perlu menggunakan identitas terkelola yang ditetapkan pengguna selain identitas ruang kerja default yang ditetapkan sistem. Untuk menambahkan identitas terkelola yang ditetapkan pengguna, tanpa mengubah identitas ruang kerja yang ada, gunakan langkah-langkah berikut:
Buat identitas terkelola yang ditetapkan pengguna. Simpan ID untuk identitas terkelola yang Anda buat.
Untuk melampirkan identitas terkelola ke ruang kerja, Anda memerlukan file YAML yang menentukan identitas. Berikut ini adalah contoh konten file YAML.
<TENANT_ID>
Ganti ,<RESOURCE_GROUP>
, dan<USER_MANAGED_ID>
dengan nilai Anda.identity: type: system_assigned,user_assigned tenant_id: <TENANT_ID> user_assigned_identities: '/subscriptions/<SUBSCRIPTION_ID/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER_MANAGED_ID>': {}
Gunakan perintah Azure CLI
az ml workspace update
untuk memperbarui ruang kerja Anda. Tentukan file YAML dari langkah sebelumnya menggunakan--file
parameter . Contoh berikut menunjukkan seperti apa perintah ini:az ml workspace update --resource-group <RESOURCE_GROUP> --name <WORKSPACE_NAME> --file <YAML_FILE_NAME>.yaml
Kluster komputasi
Catatan
Klaster komputasi Azure Machine Learning hanya mendukung satu identitas yang ditetapkan sistem atau beberapa identitas yang ditetapkan pengguna, tidak keduanya secara bersamaan.
Identitas terkelola default adalah identitas terkelola yang ditetapkan sistem atau identitas terkelola pertama yang ditetapkan pengguna.
Selama menjalankan ada dua aplikasi identitas:
Sistem ini menggunakan identitas untuk mengatur dudukan penyimpanan pengguna, registri kontainer, dan toko data.
- Dalam hal ini, sistem akan menggunakan identitas yang dikelola secara default.
Anda menerapkan identitas untuk mengakses sumber daya dari dalam kode untuk pekerjaan yang dikirimkan:
- Dalam hal ini, berikan client_id sesuai dengan identitas terkelola yang ingin Anda gunakan untuk mengambil kredensial.
- Atau, dapatkan ID klien identitas yang ditetapkan pengguna melalui variabel DEFAULT_IDENTITY_CLIENT_ID lingkungan.
Misalnya, untuk mengambil token untuk toko data dengan identitas yang dikelola default:
client_id = os.environ.get('DEFAULT_IDENTITY_CLIENT_ID') credential = ManagedIdentityCredential(client_id=client_id) token = credential.get_token('https://storage.azure.com/')
Untuk mengonfigurasi kluster komputasi dengan identitas terkelola, gunakan salah satu metode berikut:
BERLAKU UNTUK: Ekstensi ml Azure CLI v2 (saat ini)
az ml compute create -f create-cluster.yml
Dimana isi dari create-cluster.yml adalah sebagai berikut:
$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"
Sebagai perbandingan, contoh berikut adalah dari file YAML yang membuat kluster yang menggunakan identitas terkelola yang ditetapkan sistem:
$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
Jika Anda memiliki kluster komputasi yang ada, Anda dapat mengubah antara identitas yang dikelola pengguna dan dikelola sistem. Contoh berikut menunjukkan cara mengubah konfigurasi:
Identitas terkelola yang ditetapkan pengguna
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"
Identitas terkelola yang ditetapkan sistem
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
Penyimpanan data
Saat Anda membuat datastore yang menggunakan akses data berbasis identitas, akun Azure Anda (token Microsoft Entra) digunakan untuk mengonfirmasi bahwa Anda memiliki izin untuk mengakses layanan penyimpanan. Dalam skenario akses data berbasis identitas, tidak ada info masuk autentikasi yang disimpan. Hanya informasi akun penyimpanan yang disimpan di datastore.
Sebaliknya, penyimpanan data yang menggunakan informasi koneksi cache autentikasi berbasis kredensial, seperti kunci akun penyimpanan atau token SAS Anda, di brankas kunci yang terkait dengan ruang kerja. Pendekatan ini memiliki batasan bahwa pengguna ruang kerja lain dengan izin yang memadai dapat mengambil kredensial tersebut, yang mungkin menjadi perhatian keamanan bagi beberapa organisasi.
Untuk informasi selengkapnya tentang cara akses data diautentikasi, lihat artikel Administrasi data . Untuk informasi tentang mengonfigurasi akses berbasis identitas ke data, lihat Membuat penyimpanan data.
Ada dua skenario ketika Anda dapat menerapkan akses data berbasis identitas di Azure Machine Learning. Skenario ini cocok untuk akses berbasis identitas saat Anda bekerja dengan data rahasia dan membutuhkan manajemen akses data yang lebih terperinci:
- Mengakses layanan penyimpanan
- Pelatihan model pembelajaran mesin
Akses berbasis identitas memungkinkan Anda menggunakan kontrol akses berbasis peran (RBAC) untuk membatasi identitas mana, seperti pengguna atau sumber daya komputasi, yang memiliki akses ke data.
Mengakses layanan penyimpanan
Anda dapat terhubung ke layanan penyimpanan melalui akses data berbasis identitas dengan datastore Azure Pembelajaran Mesin.
Saat Anda menggunakan akses data berbasis identitas, Azure Pembelajaran Mesin meminta token Microsoft Entra Anda untuk autentikasi akses data alih-alih menyimpan kredensial Anda di datastore. Pendekatan itu memungkinkan manajemen akses data di tingkat penyimpanan dan menjaga info masuk tetap rahasia.
Perilaku yang sama berlaku saat Anda bekerja dengan data secara interaktif melalui Jupyter Notebook di komputer lokal atau instans komputasi Anda.
Catatan
Info masuk yang disimpan melalui autentikasi berbasis info masuk mencakup ID langganan, token tanda tangan akses bersama (SAS), dan kunci akses penyimpanan dan informasi perwakilan layanan, seperti ID klien dan ID penyewa.
Untuk membantu memastikan bahwa Anda terhubung dengan aman ke layanan penyimpanan Anda di Azure, Azure Machine Learning mengharuskan Anda memiliki izin untuk mengakses penyimpanan data yang sesuai.
Peringatan
Akses antar penyewa ke akun penyimpanan tidak didukung. Jika akses lintas penyewa diperlukan untuk skenario Anda, silakan hubungi alias tim Dukungan Data Azure Pembelajaran Mesin di amldatasupport@microsoft.com untuk bantuan dengan solusi kode kustom.
Akses data berbasis identitas hanya mendukung koneksi ke layanan penyimpanan berikut:
- Azure Blob Storage
- Azure Data Lake Storage Gen1
- Azure Data Lake Storage Gen2
Untuk mengakses layanan penyimpanan ini, Anda harus memiliki setidaknya akses Pembaca Data Blob Penyimpanan. Hanya pemilik akun penyimpanan yang dapat mengubah tingkat akses Anda melalui portal Microsoft Azure.
Mengakses data untuk pekerjaan pelatihan tentang komputasi menggunakan identitas terkelola
Skenario pembelajaran mesin tertentu melibatkan bekerja dengan data privat. Dalam kasus seperti itu, ilmuwan data mungkin tidak memiliki akses langsung ke data sebagai pengguna Microsoft Entra. Dalam skenario ini, identitas terkelola komputasi dapat digunakan untuk autentikasi akses data. Dalam skenario ini, data hanya dapat diakses dari instans komputasi atau kluster komputasi pembelajaran mesin yang menjalankan pekerjaan pelatihan. Dengan pendekatan ini, admin memberikan instans komputasi atau identitas terkelola kluster komputasi izin Storage Blob Data Reader pada penyimpanan. Masing-masing ilmuwan data tidak perlu diberikan akses.
Untuk mengaktifkan autentikasi dengan identitas terkelola komputasi:
Buat komputasi dengan identitas terkelola diaktifkan. Lihat bagian kluster komputasi, atau untuk instans komputasi, bagian Tetapkan identitas terkelola.
Penting
Jika instans komputasi juga dikonfigurasi untuk matikan diam, instans komputasi tidak akan dimatikan karena tidak aktif kecuali identitas terkelola memiliki akses kontributor ke ruang kerja Azure Pembelajaran Mesin. Untuk informasi selengkapnya tentang menetapkan izin, lihat Mengelola akses ke ruang kerja Azure Pembelajaran Mesin.
Berikan identitas terkelola komputasi setidaknya peran Pembaca Data Blob Penyimpanan di akun penyimpanan.
Buat penyimpanan data apa pun dengan autentikasi berbasis identitas diaktifkan. Lihat Membuat penyimpanan data.
Catatan
Nama identitas terkelola sistem yang dibuat untuk instans komputasi atau kluster akan dalam format /workspace-name/computes/compute-name di ID Microsoft Entra Anda.
Setelah autentikasi berbasis identitas diaktifkan, identitas terkelola komputasi digunakan secara default saat mengakses data dalam pekerjaan pelatihan Anda. Secara opsional, Anda dapat mengautentikasi dengan identitas pengguna menggunakan langkah-langkah yang dijelaskan di bagian berikutnya.
Untuk informasi tentang menggunakan konfigurasi Azure RBAC untuk penyimpanan, lihat kontrol akses berbasis peran.
Mengakses data untuk pekerjaan pelatihan pada kluster komputasi menggunakan identitas pengguna
BERLAKU UNTUK: Ekstensi ml Azure CLI v2 (saat ini)
Saat melatih kluster komputasi Azure Pembelajaran Mesin, Anda dapat mengautentikasi ke penyimpanan dengan token Microsoft Entra pengguna Anda.
Mode autentikasi ini memungkinkan Anda untuk:
- Menyiapkan izin terperinci, yang mana pengguna ruang kerja yang berbeda memiliki akses ke akun atau folder penyimpanan yang berbeda dalam akun penyimpanan.
- Biarkan ilmuwan data menggunakan kembali izin yang ada pada sistem penyimpanan.
- Mengaudit akses penyimpanan karena log penyimpanan menunjukkan identitas mana yang digunakan untuk mengakses data.
Penting
Fungsi ini memiliki batasan berikut
- Fitur didukung untuk eksperimen yang dikirimkan melalui Azure Pembelajaran Mesin CLI dan Python SDK V2, tetapi tidak melalui ML Studio.
- Identitas pengguna dan identitas terkelola komputasi tidak dapat digunakan untuk autentikasi dalam pekerjaan yang sama.
- Untuk pekerjaan alur, sebaiknya atur identitas pengguna pada tingkat langkah individual yang akan dijalankan pada komputasi, bukan di tingkat alur akar. ( Meskipun pengaturan identitas didukung pada tingkat alur akar dan langkah, pengaturan tingkat langkah lebih diutamakan jika keduanya diatur. Namun, untuk alur yang berisi komponen alur, identitas harus diatur pada langkah-langkah individual yang akan dijalankan. Identitas yang ditetapkan pada alur akar atau tingkat komponen alur tidak akan berfungsi. Oleh karena itu, kami menyarankan pengaturan identitas pada tingkat langkah individual untuk kesederhanaan.)
Langkah-langkah berikut menguraikan cara menyiapkan akses data dengan identitas pengguna untuk pekerjaan pelatihan pada kluster komputasi dari CLI.
Berikan akses identitas pengguna ke sumber daya penyimpanan. Misalnya, berikan akses StorageBlobReader ke akun penyimpanan tertentu yang ingin Anda gunakan atau berikan izin berbasis ACL ke folder atau file tertentu di penyimpanan Azure Data Lake Gen 2.
Buat penyimpanan data Azure Machine Learning tanpa cache info masuk untuk akun penyimpanan. Jika penyimpanan data memiliki cache info masuk, seperti kunci akun penyimpanan, info masuk kredensial tersebut digunakan alih-alih identitas pengguna.
Kirim pekerjaan pelatihan dengan properti identity yang diatur ke jenis: user_identity, seperti yang ditunjukkan dalam spesifikasi pekerjaan berikut. Selama pekerjaan pelatihan, autentikasi ke penyimpanan terjadi melalui identitas pengguna yang mengirimkan pekerjaan.
Catatan
Jika properti identity dibiarkan tidak ditentukan dan penyimpanan data tidak memiliki cache info masuk, identitas terkelola komputasi menjadi opsi fallback.
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
Langkah-langkah berikut menguraikan cara menyiapkan akses data dengan identitas pengguna untuk pekerjaan pelatihan pada kluster komputasi dari Python SDK.
Berikan akses data dan buat penyimpanan data seperti yang dijelaskan di atas untuk CLI.
Kirim pekerjaan pelatihan dengan parameter identitas yang diatur ke azure.ai.ml.UserIdentityConfiguration. Pengaturan parameter ini memungkinkan pekerjaan untuk mengakses data atas nama pengguna yang mengirimkan pekerjaan.
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)
Penting
Selama pengiriman pekerjaan dengan autentikasi dengan identitas pengguna diaktifkan, rekam jepret kode dilindungi dari pengubahan dengan validasi checksum. Jika Anda memiliki komponen alur yang ada dan ingin menggunakannya dengan autentikasi dengan identitas pengguna diaktifkan, Anda mungkin perlu mengunggahnya kembali. Jika tidak, pekerjaan mungkin gagal selama validasi checksum.
Bekerja dengan jaringan virtual
Secara default, Azure Machine Learning tidak dapat berkomunikasi dengan akun penyimpanan yang berada di belakang firewall atau di jaringan virtual.
Anda dapat mengonfigurasi akun penyimpanan untuk mengizinkan akses hanya dari dalam jaringan virtual tertentu. Konfigurasi ini memerlukan langkah tambahan untuk memastikan data tidak bocor di luar jaringan. Perilaku ini sama untuk akses data berbasis info masuk. Untuk informasi selengkapnya, lihat Cara mencegah penyelundupan data.
Jika akun penyimpanan Anda memiliki pengaturan jaringan virtual, hal tersebut menentukan jenis identitas dan akses izin yang diperlukan. Misalnya untuk pratinjau data dan profil data, pengaturan jaringan virtual menentukan jenis identitas apa yang digunakan untuk mengautentikasi akses data.
Dalam skenario di mana hanya IP dan subnet tertentu yang diizinkan untuk mengakses penyimpanan, maka Azure Machine Learning menggunakan MSI ruang kerja untuk menyelesaikan pratinjau dan profil data.
Jika penyimpanan Anda adalah ADLS Gen 2 atau Blob dan memiliki pengaturan jaringan virtual, pelanggan dapat menggunakan identitas pengguna atau ruang kerja MSI tergantung pada pengaturan penyimpanan data yang ditentukan selama pembuatan.
Jika pengaturan jaringan virtual adalah "Izinkan layanan Azure pada daftar layanan tepercaya untuk mengakses akun penyimpanan ini", maka MSI Ruang Kerja digunakan.
Skenario: Azure Container Registry tanpa pengguna admin
Saat Anda menonaktifkan pengguna admin untuk ACR, Azure Pembelajaran Mesin menggunakan identitas terkelola untuk membangun dan menarik gambar Docker. Ada dua alur kerja saat mengonfigurasi Azure Pembelajaran Mesin untuk menggunakan ACR dengan pengguna admin dinonaktifkan:
- Izinkan Azure Pembelajaran Mesin membuat instans ACR lalu nonaktifkan pengguna admin setelahnya.
- Bawa ACR yang ada dengan pengguna admin yang sudah dinonaktifkan.
Azure Pembelajaran Mesin dengan instans ACR yang dibuat secara otomatis
Buat ruang kerja Azure Pembelajaran Mesin baru.
Lakukan tindakan yang memerlukan Azure Container Registry. Misalnya, Tutorial: Melatih model pertama Anda.
Dapatkan nama ACR yang dibuat oleh kluster.
BERLAKU UNTUK: Ekstensi ml Azure CLI v2 (saat ini)
az ml workspace show --name <my workspace name> \ --resource-group <my resource group> \ --subscription <my subscription id> \ --query container_registry
Perintah ini mengembalikan nilai yang mirip dengan teks berikut. Anda hanya menginginkan bagian terakhir teks, yaitu nama instans ACR:
/subscriptions/<subscription id>/resourceGroups/<my resource group>/providers/MicrosoftContainerReggistry/registries/<ACR instance name>
Perbarui ACR untuk menonaktifkan pengguna admin:
az acr update --name <ACR instance name> --admin-enabled false
Membawa ACR Anda sendiri
Jika pengguna admin ACR tidak diizinkan oleh kebijakan langganan, Anda harus terlebih dahulu membuat ACR tanpa pengguna admin, lalu mengaitkannya dengan ruang kerja.
Membuat ACR dari Azure CLI tanpa mengatur argumen --admin-enabled
, atau dari portal Microsoft Azure tanpa mengaktifkan pengguna admin. Kemudian, saat membuat ruang kerja Pembelajaran Mesin Microsoft Azure, tentukan ID sumber daya Azure ACR. Contoh berikut menunjukkan pembuatan ruang kerja Azure Pembelajaran Mesin baru yang menggunakan ACR yang sudah ada:
BERLAKU UNTUK: Ekstensi ml Azure CLI v2 (saat ini)
az ml workspace create -n <workspace name> \
-g <workspace resource group> \
-l <region> \
--container-registry /subscriptions/<subscription id>/resourceGroups/<acr resource group>/providers/Microsoft.ContainerRegistry/registries/<acr name>
Tip
Untuk mendapatkan nilai parameter --container-registry
, gunakan perintah az acr show untuk menampilkan informasi untuk ACR Anda. Bidang id
berisi ID sumber daya untuk ACR Anda.
Selain itu, jika Anda sudah memiliki ACR yang sudah ada dengan pengguna admin dinonaktifkan, Anda dapat melampirkannya ke ruang kerja dengan memperbaruinya. Contoh berikut menunjukkan pembaruan ruang kerja Azure Pembelajaran Mesin untuk menggunakan ACR yang sudah ada:
BERLAKU UNTUK: Ekstensi ml Azure CLI v2 (saat ini)
az ml workspace update --update-dependent-resources \
--name <workspace name> \
--resource-group <workspace resource group> \
--container-registry /subscriptions/<subscription id>/resourceGroups/<acr resource group>/providers/Microsoft.ContainerRegistry/registries/<acr name>
Buat komputasi dengan identitas terkelola untuk mengakses gambar Docker untuk pelatihan
Untuk mengakses ACR ruang kerja, buat kluster komputasi pembelajaran mesin dengan identitas terkelola yang ditetapkan sistem diaktifkan. Anda dapat mengaktifkan identitas dari portal Azure atau Studio saat membuat komputasi, atau dari Azure CLI dengan menggunakan parameter berikut ini. Untuk informasi selengkapnya, lihat menggunakan identitas terkelola dengan kluster komputasi.
BERLAKU UNTUK: Ekstensi ml Azure CLI v2 (saat ini)
az ml compute create --name cpu-cluster --type <cluster name> --identity-type systemassigned
Identitas terkelola secara otomatis diberikan peran ACRPull pada ACR ruang kerja untuk memungkinkan menarik gambar Docker untuk pelatihan.
Catatan
Jika Anda membuat komputasi terlebih dahulu, sebelum ACR ruang kerja dibuat, Anda harus menetapkan peran ACRPull secara manual.
Menggunakan gambar Docker untuk inferensi
Setelah mengonfigurasi ACR tanpa pengguna admin seperti yang dijelaskan sebelumnya, Anda dapat mengakses gambar Docker untuk inferensi tanpa kunci admin dari Azure Kubernetes Service (AKS). Saat Anda membuat atau melampirkan AKS ke ruang kerja, perwakilan layanan kluster secara otomatis menetapkan akses ACRPull ke ACR ruang kerja.
Catatan
Jika Anda membawa kluster AKS Anda sendiri, kluster harus mengaktifkan perwakilan layanan, bukan identitas terkelola.
Skenario: Menggunakan Azure Container Registry privat
Secara default, Pembelajaran Mesin Microsoft Azure menggunakan gambar dasar Docker yang berasal dari repositori publik yang dikelola oleh Microsoft. Kemudian, lingkungan pelatihan atau inferensi Anda dibangun pada gambar-gambar tersebut. Untuk informasi selengkapnya, lihat Apa itu lingkungan ML?.
Untuk menggunakan gambar dasar kustom internal ke perusahaan Anda, Anda dapat menggunakan identitas terkelola untuk mengakses ACR pribadi Anda. Ada dua kasus penggunaan:
- Gunakan gambar dasar untuk pelatihan apa adanya.
- Bangun gambar terkelola Pembelajaran Mesin Microsoft Azure dengan gambar kustom sebagai dasar.
Tarik gambar dasar Docker ke kluster komputasi pembelajaran mesin untuk pelatihan apa adanya
Buat kluster komputasi pembelajaran mesin dengan identitas terkelola yang ditetapkan sistem diaktifkan seperti yang dijelaskan sebelumnya. Kemudian, tentukan ID pokok identitas dikelola.
BERLAKU UNTUK: Ekstensi ml Azure CLI v2 (saat ini)
az ml compute show --name <cluster name> -n <workspace> -g <resource group>
Secara opsional, Anda dapat memperbarui kluster komputasi untuk menetapkan identitas terkelola yang ditetapkan pengguna:
BERLAKU UNTUK: Ekstensi ml Azure CLI v2 (saat ini)
az ml compute update --name <cluster name> --user-assigned-identities <my-identity-id>
Untuk memungkinkan kluster komputasi menarik gambar dasar, berikan peran ACRPull identitas layanan terkelola pada ACR pribadi
BERLAKU UNTUK: Ekstensi ml Azure CLI v2 (saat ini)
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>"
Terakhir, buat lingkungan dan tentukan lokasi gambar dasar dalam file YAML lingkungan.
BERLAKU UNTUK: Ekstensi ml Azure CLI v2 (saat ini)
$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>
Anda sekarang dapat menggunakan lingkungan dalam pekerjaan pelatihan.
Bangun lingkungan yang dikelola Pembelajaran Mesin Microsoft Azure menjadi gambar dasar dari ACR pribadi untuk pelatihan atau inferensi
Catatan
Menyambungkan ke ACR privat menggunakan identitas terkelola yang ditetapkan pengguna saat ini tidak didukung. Kunci admin adalah satu-satunya jenis autentikasi yang didukung untuk ACR privat.
Langkah berikutnya
- Pelajari lebih lanjut keamanan perusahaan dalam Azure Machine Learning
- Pelajari tentang administrasi data
- Pelajari identitas terkelola di kluster komputasi.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk