Menyambungkan ke penyimpanan dengan menggunakan akses data berbasis identitas dengan SDK v1

Dalam artikel ini, Anda akan mempelajari cara menyambungkan ke layanan penyimpanan di Azure dengan akses data berbasis identitas dan datastore Azure Pembelajaran Mesin, melalui Azure Pembelajaran Mesin SDK for Python.

Biasanya, datastore menggunakan autentikasi berbasis kredensial untuk memverifikasi bahwa Anda memiliki izin untuk mengakses layanan penyimpanan. Datastore menyimpan informasi koneksi, seperti ID langganan dan otorisasi token Anda, di brankas kunci yang terkait dengan ruang kerja. 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.

Untuk membuat datastore dengan akses data berbasis identitas melalui UI studio Azure Machine Learning, lihat Menyambungkan ke data dengan studio Azure Machine Learning.

Untuk membuat datastore yang menggunakan autentikasi berbasis info masuk, seperti kunci akses atau perwakilan layanan, lihat Menyambungkan ke layanan penyimpanan di Azure.

Akses data berbasis identitas di Azure Machine Learning

Anda dapat menerapkan akses data berbasis identitas di Azure Pembelajaran Mesin dalam dua skenario. Skenario ini cocok untuk akses berbasis identitas saat Anda bekerja dengan data rahasia, dan Anda memerlukan manajemen akses data yang lebih terperinci:

Peringatan

Akses data berbasis identitas tidak didukung di eksperimen ML otomatis.

  • Mengakses layanan penyimpanan
  • Melatih model pembelajaran mesin dengan data privat

Mengakses layanan penyimpanan

Anda dapat terhubung ke layanan penyimpanan melalui akses data berbasis identitas dengan datastore Azure Machine Learning atau himpunan data Azure Machine Learning.

Kredensial autentikasi Anda disimpan di datastore, yang memastikan bahwa Anda memiliki izin untuk mengakses layanan penyimpanan. Ketika info masuk ini didaftarkan melalui datastore, setiap pengguna dengan peran Pembaca ruang kerja dapat mengambilnya. Skala akses itu dapat menjadi perhatian keamanan bagi beberapa organisasi. Pelajari selengkapnya tentang peran Pembaca ruang kerja.

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 tersebut memungkinkan manajemen akses data di tingkat penyimpanan, dan mempertahankan keamanan kredensial.

Perilaku yang sama berlaku saat 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.

Pelatihan model pada data privat

Skenario pembelajaran mesin tertentu melibatkan model pelatihan dengan data privat. Dalam kasus seperti itu, ilmuwan data perlu menjalankan alur kerja pelatihan tanpa paparan data input rahasia. Dalam skenario ini, identitas terkelola komputasi pelatihan mengautentikasi akses data. Pendekatan ini memungkinkan admin penyimpanan untuk memberikan akses Storage Blob Data Reader ke identitas terkelola yang digunakan komputasi pelatihan untuk menjalankan pekerjaan pelatihan. Masing-masing ilmuwan data tidak perlu diberikan akses. Untuk informasi selengkapnya, kunjungi Menyiapkan identitas terkelola pada kluster komputasi.

Prasyarat

Membuat dan mendaftarkan datastore

Saat Anda mendaftarkan layanan penyimpanan di Azure sebagai datastore, Anda secara otomatis membuat dan mendaftarkan datastore tersebut ke ruang kerja tertentu. Lihat Izin akses penyimpanan untuk panduan tentang jenis izin yang diperlukan. Anda juga dapat membuat penyimpanan secara manual yang ingin Anda sambungkan tanpa izin khusus, dan Anda hanya memerlukan namanya.

Lihat Bekerja dengan jaringan virtual untuk detail tentang cara terhubung ke penyimpanan data di belakang jaringan virtual.

Dalam kode berikut, perhatikan tidak adanya parameter autentikasi seperti sas_token, account_key, subscription_id, dan perwakilan layanan client_id. Kelalaian ini menunjukkan bahwa Azure Pembelajaran Mesin menggunakan akses data berbasis identitas untuk autentikasi. Pembuatan datastore biasanya terjadi secara interaktif di buku catatan atau melalui studio. Autentikasi akses data menggunakan token Microsoft Entra Anda.

Catatan

Nama datastore seharusnya hanya terdiri dari huruf kecil, angka, dan garis bawah.

Kontainer Azure blob

Untuk mendaftarkan kontainer blob Azure sebagai datastore, gunakan register_azure_blob_container().

Kode berikut membuat datastore credentialless_blob, mendaftarkannya ke ruang kerja ws, dan menetapkannya ke variabel blob_datastore. Datastore ini mengakses my_container_name kontainer blob pada akun my-account-name penyimpanan.

# Create blob datastore without credentials.
blob_datastore = Datastore.register_azure_blob_container(workspace=ws,
                                                      datastore_name='credentialless_blob',
                                                      container_name='my_container_name',
                                                      account_name='my_account_name')

Azure Data Lake Storage Gen1

Gunakan register_azure_data_lake() untuk mendaftarkan datastore yang tersambung ke Azure Data Lake Storage Gen1.

Kode berikut membuat datastore credentialless_adls1, mendaftarkannya ke ruang kerja workspace, dan menetapkannya ke variabel adls_dstore. Datastore ini mengakses akun adls_storage Azure Data Lake Storage.

# Create Azure Data Lake Storage Gen1 datastore without credentials.
adls_dstore = Datastore.register_azure_data_lake(workspace = workspace,
                                                 datastore_name='credentialless_adls1',
                                                 store_name='adls_storage')

Azure Data Lake Storage Gen2

Gunakan register_azure_data_lake_gen2() untuk mendaftarkan datastore yang tersambung ke Azure Data Lake Storage Gen2.

Kode berikut membuat datastore credentialless_adls2, mendaftarkannya ke ruang kerja ws, dan menetapkannya ke variabel adls2_dstore. Datastore ini mengakses sistem file tabular di myadls2 akun penyimpanan.

# Create Azure Data Lake Storage Gen2 datastore without credentials.
adls2_dstore = Datastore.register_azure_data_lake_gen2(workspace=ws, 
                                                       datastore_name='credentialless_adls2', 
                                                       filesystem='tabular', 
                                                       account_name='myadls2')

Azure SQL database

Untuk database Azure SQL, gunakan register_azure_sql_database() untuk mendaftarkan penyimpanan data yang terhubung ke penyimpanan database Azure SQL.

Kode berikut membuat dan mendaftarkan penyimpanan data credentialless_sqldb ke ruang kerja ws dan menetapkannya ke variabel, sqldb_dstore. Penyimpanan data ini mengakses database mydb di myserver server DB SQL.

# Create a sqldatabase datastore without credentials
                                                       
sqldb_dstore = Datastore.register_azure_sql_database(workspace=ws,
                                                       datastore_name='credentialless_sqldb',
                                                       server_name='myserver',
                                                       database_name='mydb')                                                       
                                                   

Izin akses penyimpanan

Untuk memastikan bahwa Anda terhubung dengan aman ke layanan penyimpanan Anda di Azure, Azure Pembelajaran Mesin 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
  • Azure SQL Database

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.

Jika Anda lebih suka tidak menggunakan identitas pengguna (ID Microsoft Entra), Anda juga dapat memberikan izin identitas sistem terkelola ruang kerja (MSI) untuk membuat datastore. Untuk melakukannya, Anda harus memiliki izin Pemilik ke akun penyimpanan, dan Anda harus menambahkan grant_workspace_access= True parameter ke metode pendaftaran data Anda.

Jika Anda melatih model pada target komputasi jarak jauh dan ingin mengakses data untuk pelatihan, identitas komputasi harus diberikan setidaknya peran Pembaca Data Blob Penyimpanan dari layanan penyimpanan. Pelajari cara menyiapkan identitas terkelola pada kluster komputasi.

Bekerja dengan jaringan virtual

Secara default, Azure Pembelajaran Mesin tidak dapat berkomunikasi dengan akun penyimpanan yang terletak di belakang firewall, atau di jaringan virtual.

Anda dapat mengonfigurasi akun penyimpanan untuk mengizinkan akses hanya dari dalam jaringan virtual tertentu. Konfigurasi ini memerlukan lebih banyak langkah, untuk memastikan bahwa data tidak bocor di luar jaringan. Perilaku ini sama untuk akses data berbasis info masuk. Untuk informasi selengkapnya, lihat Cara mengonfigurasi skenario jaringan virtual.

Jika akun penyimpanan Anda memiliki pengaturan jaringan virtual, akun 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 di daftar layanan tepercaya untuk mengakses akun penyimpanan ini", maka Ruang kerja MSI digunakan.

Menggunakan data dalam penyimpanan

Kami menyarankan agar Anda menggunakan himpunan data Azure Machine Learning saat berinteraksi dengan data Anda di penyimpanan dengan Azure Machine Learning.

Penting

Himpunan data menggunakan akses data berbasis identitas tidak didukung untuk eksperimen ML otomatis.

Himpunan data memaketkan data Anda ke dalam objek habis pakai yang jarang dievaluasi untuk tugas pembelajaran mesin, seperti pelatihan. Selain itu, dengan himpunan data Anda dapat mengunduh atau memasang file dengan format apa pun dari layanan penyimpanan Azure seperti Azure Blob Storage dan Azure Data Lake Storage ke target komputasi.

Untuk membuat himpunan data, Anda dapat mereferensikan jalur dari penyimpanan data yang juga menggunakan akses data berbasis identitas.

  • Jika jenis akun penyimpanan yang mendasar Anda adalah Blob atau ADLS Gen 2, identitas pengguna Anda memerlukan peran Pembaca Blob.
  • Jika penyimpanan dasar Anda adalah ADLS Gen 1, Anda dapat mengatur izin melalui Daftar Kontrol Akses (ACL) penyimpanan.

Dalam contoh berikut, blob_datastore sudah ada dan menggunakan akses data berbasis identitas.

blob_dataset = Dataset.Tabular.from_delimited_files(blob_datastore,'test.csv') 

Anda juga dapat melewati pembuatan datastore, dan membuat himpunan data langsung dari URL penyimpanan. Fungsionalitas ini saat ini hanya mendukung blob Azure dan Azure Data Lake Storage Gen1 dan Gen2. Pembuatan berdasarkan URL penyimpanan hanya memerlukan identitas pengguna untuk mengautentikasi.

blob_dset = Dataset.File.from_files('https://myblob.blob.core.windows.net/may/keras-mnist-fashion/')

Saat Anda mengirimkan pekerjaan pelatihan yang menggunakan himpunan data yang dibuat dengan akses data berbasis identitas, identitas terkelola komputasi pelatihan digunakan untuk autentikasi akses data. Token Microsoft Entra Anda tidak digunakan. Untuk skenario ini, pastikan bahwa identitas terkelola komputasi diberikan setidaknya peran Storage Blob Data Reader dari layanan penyimpanan. Untuk informasi selengkapnya, lihat Menyiapkan identitas terkelola pada kluster komputasi.

Langkah berikutnya