Menyambungkan ke Azure Storage menggunakan identitas terkelola (Azure AI Search)
Artikel ini menjelaskan cara mengonfigurasi koneksi layanan pencarian ke akun Azure Storage menggunakan identitas terkelola alih-alih memberikan kredensial di string koneksi.
Anda dapat menggunakan identitas terkelola yang ditetapkan sistem atau identitas terkelola yang ditetapkan pengguna. Identitas terkelola adalah login Microsoft Entra dan memerlukan penetapan peran untuk akses ke Azure Storage.
Prasyarat
Catatan
Jika penyimpanan dilindungi jaringan dan di wilayah yang sama dengan layanan pencarian Anda, Anda harus menggunakan identitas terkelola yang ditetapkan sistem dan salah satu opsi jaringan berikut: terhubung sebagai layanan tepercaya, atau menyambungkan menggunakan aturan instans sumber daya.
Membuat penetapan peran di Azure Storage
Masuk ke portal Azure dan temukan akun penyimpanan Anda.
Pilih Kontrol Akses (IAM) .
Pilih Tambahkan lalu pilih Penetapan peran.
Dari daftar peran fungsi pekerjaan, pilih peran yang diperlukan untuk layanan pencarian Anda:
Tugas Penetapan peran Pengindeksan blob menggunakan pengindeks Menambahkan Pembaca Data Blob Penyimpanan Pengindeksan ADLS Gen2 menggunakan pengindeks Menambahkan Pembaca Data Blob Penyimpanan Pengindeksan tabel menggunakan pengindeks Menambahkan Pembaca dan Akses Data Pengindeksan file menggunakan pengindeks Menambahkan Pembaca dan Akses Data Menulis ke penyimpanan pengetahuan Tambahkan Storage Blob DataContributor untuk proyeksi objek dan file, serta Pembaca dan Akses Data untuk proyeksi tabel. Menulis ke cache pengayaan Menambahkan Kontributor Data Blob Penyimpanan Simpan status sesi debug Menambahkan Kontributor Data Blob Penyimpanan Pilih Selanjutnya.
Pilih Identitas terkelola lalu pilih Anggota.
Filter menurut identitas terkelola yang ditetapkan sistem atau identitas terkelola yang ditetapkan pengguna. Anda akan melihat identitas terkelola yang sebelumnya Anda buat untuk layanan pencarian Anda. Jika Anda tidak memilikinya, lihat Mengonfigurasi pencarian untuk menggunakan identitas terkelola. Jika Anda sudah menyiapkannya tetapi tidak tersedia, beri beberapa menit.
Pilih identitas dan simpan penetapan peran.
Menentukan identitas terkelola dalam string koneksi
Setelah memiliki penetapan peran, Anda dapat menyiapkan koneksi ke Azure Storage yang beroperasi di bawah peran tersebut.
Pengindeks menggunakan objek sumber data untuk koneksi ke sumber data eksternal. Bagian ini menjelaskan cara menentukan identitas terkelola yang ditetapkan sistem atau identitas terkelola yang ditetapkan pengguna pada sumber data string koneksi. Anda dapat menemukan contoh string koneksi lainnya di artikel identitas terkelola.
Tip
Anda dapat membuat koneksi sumber data ke Azure Storage di portal Azure, menentukan sistem atau identitas terkelola yang ditetapkan pengguna, lalu melihat definisi JSON untuk melihat bagaimana string koneksi diformulasikan.
Identitas terkelola yang ditetapkan sistem
Anda harus memiliki identitas terkelola yang ditetapkan sistem yang sudah dikonfigurasi, dan identitas tersebut harus memiliki penetapan peran di Azure Storage.
Untuk koneksi yang dibuat menggunakan identitas terkelola yang ditetapkan sistem, satu-satunya perubahan pada definisi sumber data adalah format credentials
properti .
ResourceId
Berikan yang tidak memiliki kunci akun atau kata sandi. ResourceId
harus menyertakan ID langganan akun penyimpanan, grup sumber daya akun penyimpanan, dan nama akun penyimpanan.
POST https://[service name].search.windows.net/datasources?api-version=2024-07-01
{
"name" : "blob-datasource",
"type" : "azureblob",
"credentials" : {
"connectionString" : "ResourceId=/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MY-DEMO-RESOURCE-GROUP/providers/Microsoft.Storage/storageAccounts/MY-DEMO-STORAGE-ACCOUNT/;"
},
"container" : {
"name" : "my-container", "query" : "<optional-virtual-directory-name>"
}
}
Identitas terkelola yang ditetapkan pengguna
Anda harus memiliki identitas terkelola yang ditetapkan pengguna yang sudah dikonfigurasi dan terkait dengan layanan pencarian Anda, dan identitas harus memiliki penetapan peran di Azure Storage.
Koneksi yang dibuat melalui identitas terkelola yang ditetapkan pengguna menggunakan kredensial yang sama dengan identitas terkelola yang ditetapkan sistem, ditambah properti identitas tambahan yang berisi kumpulan identitas terkelola yang ditetapkan pengguna. Hanya satu identitas terkelola yang ditetapkan pengguna yang harus disediakan saat membuat sumber data. Atur userAssignedIdentity
ke identitas terkelola yang ditetapkan pengguna.
ResourceId
Berikan yang tidak memiliki kunci akun atau kata sandi. ResourceId
harus menyertakan ID langganan akun penyimpanan, grup sumber daya akun penyimpanan, dan nama akun penyimpanan.
identity
Berikan menggunakan sintaks yang diperlihatkan dalam contoh berikut.
POST https://[service name].search.windows.net/datasources?api-version=2024-07-01
{
"name" : "blob-datasource",
"type" : "azureblob",
"credentials" : {
"connectionString" : "ResourceId=/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MY-DEMO-RESOURCE-GROUP/providers/Microsoft.Storage/storageAccounts/MY-DEMO-STORAGE-ACCOUNT/;"
},
"container" : {
"name" : "my-container", "query" : "<optional-virtual-directory-name>"
},
"identity" : {
"@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity",
"userAssignedIdentity" : "/subscriptions/00000000-0000-0000-0000-00000000/resourcegroups/MY-DEMO-RESOURCE-GROUP/providers/Microsoft.ManagedIdentity/userAssignedIdentities/MY-DEMO-USER-MANAGED-IDENTITY"
}
}
Informasi koneksi dan izin pada layanan jarak jauh divalidasi pada waktu proses selama eksekusi pengindeks. Jika pengindeks berhasil, sintaks koneksi dan penetapan peran valid. Untuk informasi selengkapnya, lihat Menjalankan atau mengatur ulang pengindeks, keterampilan, atau dokumen.
Mengakses data aman jaringan di akun penyimpanan
Akun penyimpanan Azure dapat diamankan lebih lanjut menggunakan firewall dan jaringan virtual. Jika Anda ingin mengindeks konten dari akun penyimpanan yang diamankan menggunakan firewall atau jaringan virtual, lihat Membuat koneksi pengindeks ke Azure Storage sebagai layanan tepercaya.