Bagikan melalui


Gunakan Azure OpenAI On Your Data dengan aman

Catatan

Pada Juni 2024, formulir aplikasi untuk titik akhir privat yang dikelola Microsoft ke Azure AI Search tidak lagi diperlukan.

Titik akhir privat terkelola akan dihapus dari jaringan virtual yang dikelola Microsoft pada Juli 2025. Jika Anda telah menyediakan titik akhir privat terkelola melalui proses aplikasi sebelum Juni 2024, aktifkan layanan tepercaya Azure AI Search sedini mungkin untuk menghindari gangguan layanan.

Gunakan artikel ini untuk mempelajari cara menggunakan Azure OpenAI On Your Data dengan aman dengan melindungi data dan sumber daya dengan kontrol akses berbasis peran ID Microsoft Entra, jaringan virtual, dan titik akhir privat.

Artikel ini hanya berlaku saat menggunakan Azure OpenAI On Your Data dengan teks. Ini tidak berlaku untuk Azure OpenAI On Your Data dengan gambar.

Arsitektur penyerapan data

Saat Anda menggunakan Azure OpenAI On Your Data untuk menyerap data dari penyimpanan blob Azure, file lokal, atau URL ke Azure AI Search, proses berikut digunakan untuk memproses data.

Diagram memperlihatkan proses penyerapan data.

  • Langkah 1 dan 2 hanya digunakan untuk unggahan file.
  • Mengunduh URL ke penyimpanan blob Anda tidak diilustrasikan dalam diagram ini. Setelah halaman web diunduh dari internet dan diunggah ke penyimpanan blob, langkah 3 dan seterusnya sama.
  • Dua pengindeks, dua indeks, dua sumber data, dan keterampilan kustom dibuat di sumber daya Azure AI Search.
  • Kontainer gugus dibuat di penyimpanan blob.
  • Jika jadwal memicu penyerapan, proses penyerapan dimulai dari langkah 7.
  • API Azure OpenAI preprocessing-jobs menerapkan protokol API web keterampilan pelanggan Azure AI Search, dan memproses dokumen dalam antrean.
  • Azure OpenAI:
    1. Secara internal menggunakan pengindeks pertama yang dibuat sebelumnya untuk memecahkan dokumen.
    2. Menggunakan algoritma berbasis heuristik untuk melakukan penggugusan. Ini menghormati tata letak tabel dan elemen pemformatan lainnya dalam batas gugus untuk memastikan kualitas potongan terbaik.
    3. Jika Anda memilih untuk mengaktifkan pencarian vektor, Azure OpenAI menggunakan pengaturan penyematan yang dipilih untuk mem-vektorisasi gugus.
  • Ketika semua data yang dipantau layanan diproses, Azure OpenAI memicu pengindeks kedua.
  • Pengindeks menyimpan data yang diproses ke dalam layanan Pencarian Azure AI.

Untuk identitas terkelola yang digunakan dalam panggilan layanan, hanya identitas terkelola yang ditetapkan sistem yang didukung. Identitas terkelola yang ditetapkan pengguna tidak didukung.

Arsitektur inferensi

Diagram yang menunjukkan proses penggunaan API inferensi.

Saat Anda mengirim panggilan API untuk mengobrol dengan model Azure OpenAI pada data Anda, layanan perlu mengambil bidang indeks selama inferensi untuk melakukan pemetaan bidang. Oleh karena itu, layanan ini mengharuskan identitas Azure OpenAI memiliki Search Service Contributor peran untuk layanan pencarian bahkan selama inferensi.

Jika dependensi penyematan disediakan dalam permintaan inferensi, Azure OpenAI akan mem-vektorisasi kueri yang ditulis ulang, dan kueri dan vektor dikirim ke Pencarian Azure AI untuk pencarian vektor.

Kontrol akses tingkat dokumen

Catatan

Kontrol akses tingkat dokumen hanya didukung untuk pencarian Azure AI.

Azure OpenAI On Your Data memungkinkan Anda membatasi dokumen yang dapat digunakan sebagai respons untuk pengguna yang berbeda dengan filter keamanan Azure AI Search. Saat Anda mengaktifkan akses tingkat dokumen, Azure AI Search akan memangkas hasil pencarian berdasarkan keanggotaan grup Microsoft Entra pengguna yang ditentukan dalam filter. Anda hanya dapat mengaktifkan akses tingkat dokumen pada indeks Azure AI Search yang sudah ada. Untuk mengaktifkan akses tingkat dokumen:

  1. Untuk mendaftarkan aplikasi Anda dan membuat pengguna dan grup, ikuti langkah-langkah dalam dokumentasi Pencarian Azure AI.

  2. Indeks dokumen Anda dengan grup yang diizinkan. Pastikan bidang keamanan baru Anda memiliki skema:

    {"name": "group_ids", "type": "Collection(Edm.String)", "filterable": true }
    

    group_ids adalah nama bidang default. Jika Anda menggunakan nama bidang yang berbeda seperti my_group_ids, Anda dapat memetakan bidang dalam pemetaan bidang indeks.

  3. Pastikan setiap dokumen sensitif dalam indeks memiliki nilai bidang keamanan ini yang diatur ke grup dokumen yang diizinkan.

  4. Di Azure OpenAI Studio, tambahkan sumber data Anda. di bagian pemetaan bidang indeks, Anda dapat memetakan nol atau satu nilai ke bidang grup yang diizinkan, selama skema kompatibel. Jika bidang grup yang diizinkan tidak dipetakan, akses tingkat dokumen dinonaktifkan.

Azure OpenAI Studio

Setelah indeks Pencarian Azure AI tersambung, respons Anda di studio memiliki akses dokumen berdasarkan izin Microsoft Entra dari pengguna yang masuk.

Aplikasi web

Jika Anda menggunakan aplikasi web yang diterbitkan, Anda perlu menyebarkannya kembali untuk meningkatkan ke versi terbaru. Versi terbaru aplikasi web mencakup kemampuan untuk mengambil grup akun Microsoft Entra pengguna yang masuk, menyimpannya di cache, dan menyertakan ID grup dalam setiap permintaan API.

API

Saat menggunakan API, berikan filter parameter di setiap permintaan API. Contohnya:

{
    "messages": [
        {
            "role": "user",
            "content": "who is my manager?"
        }
    ],
    "dataSources": [
        {
            "type": "AzureCognitiveSearch",
            "parameters": {
                "endpoint": "'$AZURE_AI_SEARCH_ENDPOINT'",
                "key": "'$AZURE_AI_SEARCH_API_KEY'",
                "indexName": "'$AZURE_AI_SEARCH_INDEX'",
                "filter": "my_group_ids/any(g:search.in(g, 'group_id1, group_id2'))"
            }
        }
    ]
}
  • my_group_ids adalah nama bidang yang Anda pilih untuk Grup yang diizinkan selama pemetaan bidang.
  • group_id1, group_id2 adalah grup yang dikaitkan dengan pengguna yang masuk. Aplikasi klien dapat mengambil dan menyimpan grup pengguna.

Konfigurasi sumber daya

Gunakan bagian berikut untuk mengonfigurasi sumber daya Anda untuk penggunaan aman yang optimal. Bahkan jika Anda berencana untuk hanya mengamankan bagian dari sumber daya Anda, Anda masih perlu mengikuti semua langkah.

Artikel ini menjelaskan pengaturan jaringan yang terkait dengan menonaktifkan jaringan publik untuk sumber daya Azure OpenAI, sumber daya pencarian Azure AI, dan akun penyimpanan. Menggunakan jaringan yang dipilih dengan aturan IP tidak didukung, karena alamat IP layanan bersifat dinamis.

Buat grup sumber daya

Buat grup sumber daya, sehingga Anda dapat mengatur semua sumber daya yang relevan. Sumber daya dalam grup sumber daya termasuk tetapi tidak terbatas pada:

  • Satu jaringan Virtual
  • Tiga layanan utama: satu Azure OpenAI, satu Pencarian Azure AI, satu Akun Penyimpanan
  • Tiga titik akhir Privat, masing-masing ditautkan ke satu layanan kunci
  • Tiga antarmuka Jaringan, masing-masing dikaitkan dengan satu titik akhir privat
  • Satu gateway jaringan virtual, untuk akses dari komputer klien lokal
  • Satu Aplikasi Web dengan jaringan virtual terintegrasi
  • Satu zona DNS Privat, sehingga Aplikasi Web menemukan IP Azure OpenAI Anda

Membuat jaringan virtual

Jaringan virtual memiliki tiga subnet.

  1. Subnet pertama digunakan untuk gateway jaringan virtual.
  2. Subnet kedua digunakan untuk titik akhir privat untuk tiga layanan utama.
  3. Subnet ketiga kosong, dan digunakan untuk integrasi jaringan virtual keluar Web App.

Diagram yang menunjukkan arsitektur jaringan virtual.

Mengonfigurasi Azure OpenAI

Subdomain kustom yang diaktifkan

Subdomain kustom diperlukan untuk autentikasi berbasis ID Microsoft Entra, dan zona DNS privat. Jika sumber daya Azure OpenAI dibuat menggunakan templat ARM, subdomain kustom harus ditentukan secara eksplisit.

Aktifkan identitas terkelola

Untuk mengizinkan Akun Pencarian dan Penyimpanan Azure AI Anda mengenali layanan Azure OpenAI Anda melalui autentikasi ID Microsoft Entra, Anda perlu menetapkan identitas terkelola untuk layanan Azure OpenAI Anda. Cara term mudah adalah dengan beralih pada identitas terkelola yang ditetapkan sistem pada portal Azure. Cuplikan layar memperlihatkan opsi identitas terkelola yang ditetapkan sistem di portal Azure.

Untuk mengatur identitas terkelola melalui API manajemen, lihat dokumentasi referensi API manajemen.


"identity": {
  "principalId": "12345678-abcd-1234-5678-abc123def",
  "tenantId": "1234567-abcd-1234-1234-abcd1234",
  "type": "SystemAssigned, UserAssigned", 
  "userAssignedIdentities": {
    "/subscriptions/1234-5678-abcd-1234-1234abcd/resourceGroups/my-resource-group",
    "principalId": "12345678-abcd-1234-5678-abcdefg1234", 
    "clientId": "12345678-abcd-efgh-1234-12345678"
  }
}

Mengaktifkan layanan tepercaya

Untuk mengizinkan Azure AI Search memanggil Azure OpenAI preprocessing-jobs Anda sebagai API web keterampilan kustom, sementara Azure OpenAI tidak memiliki akses jaringan publik, Anda perlu menyiapkan Azure OpenAI untuk melewati Azure AI Search sebagai layanan tepercaya berdasarkan identitas terkelola. Azure OpenAI mengidentifikasi lalu lintas dari Azure AI Search Anda dengan memverifikasi klaim di JSON Web Token (JWT). Azure AI Search harus menggunakan autentikasi identitas terkelola yang ditetapkan sistem untuk memanggil API web keterampilan kustom.

Atur networkAcls.bypass sebagai AzureServices dari API manajemen. Untuk informasi selengkapnya, lihat Artikel jaringan virtual.

Langkah ini hanya dapat dilewati jika Anda memiliki tautan privat bersama untuk sumber daya Azure AI Search Anda.

Nonaktifkan akses jaringan publik

Anda dapat menonaktifkan akses jaringan publik sumber daya Azure OpenAI Anda di portal Azure.

Untuk mengizinkan akses ke layanan Azure OpenAI Anda dari komputer klien Anda, seperti menggunakan Azure OpenAI Studio, Anda perlu membuat koneksi titik akhir privat yang terhubung ke sumber daya Azure OpenAI Anda.

Anda dapat menggunakan tingkat harga dasar dan yang lebih tinggi untuk sumber daya pencarian. Ini tidak diperlukan, tetapi jika Anda menggunakan tingkat harga S2, opsi tingkat lanjut tersedia.

Aktifkan identitas terkelola

Untuk mengizinkan sumber daya Anda yang lain mengenali Azure AI Search menggunakan autentikasi ID Microsoft Entra, Anda perlu menetapkan identitas terkelola untuk Azure AI Search Anda. Cara term mudah adalah dengan beralih pada sistem yang ditetapkan identitas terkelola dalam portal Azure.

Cuplikan layar memperlihatkan pengaturan identitas terkelola untuk Pencarian Azure AI di portal Azure.

Mengaktifkan kontrol akses berbasis peran

Karena Azure OpenAI menggunakan identitas terkelola untuk mengakses Azure AI Search, Anda perlu mengaktifkan kontrol akses berbasis peran di Azure AI Search Anda. Untuk melakukannya di portal Azure, pilih Kontrol akses berbasis Peran atau keduanya di tab Kunci di portal Azure.

Cuplikan layar memperlihatkan opsi identitas terkelola untuk pencarian Azure AI di portal Azure.

Untuk informasi selengkapnya, lihat artikel Azure AI Search RBAC.

Nonaktifkan akses jaringan publik

Anda dapat menonaktifkan akses jaringan publik sumber daya Azure AI Search Anda di portal Azure.

Untuk mengizinkan akses ke sumber daya Azure AI Search dari komputer klien Anda, seperti menggunakan Azure OpenAI Studio, Anda perlu membuat koneksi titik akhir privat yang tersambung ke sumber daya Azure AI Search Anda.

Mengaktifkan layanan tepercaya

Anda dapat mengaktifkan layanan tepercaya sumber daya pencarian Anda dari portal Azure.

Buka tab jaringan sumber daya pencarian Anda. Dengan akses jaringan publik diatur ke dinonaktifkan, pilih Izinkan layanan Azure pada daftar layanan tepercaya untuk mengakses layanan pencarian ini.

Diagram yang memperlihatkan layanan tepercaya pencarian.

Anda juga dapat menggunakan REST API untuk mengaktifkan layanan tepercaya. Contoh ini menggunakan Azure CLI dan jq alat.

rid=/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/providers/Microsoft.Search/searchServices/<YOUR-RESOURCE-NAME>
apiVersion=2024-03-01-Preview
#store the resource properties in a variable
az rest --uri "https://management.azure.com$rid?api-version=$apiVersion" > search.json

#replace bypass with AzureServices using jq
jq '.properties.networkRuleSet.bypass = "AzureServices"' search.json > search_updated.json

#apply the updated properties to the resource
az rest --uri "https://management.azure.com$rid?api-version=$apiVersion" \
    --method PUT \
    --body @search_updated.json

Tip

Jika Anda menggunakan tingkat harga dasar atau standar, atau jika ini adalah pertama kalinya Anda mengatur semua sumber daya Anda dengan aman, Anda harus melewati topik lanjutan ini.

Bagian ini hanya berlaku untuk sumber daya pencarian tingkat harga S2, karena memerlukan dukungan titik akhir privat untuk pengindeks dengan set keterampilan.

Untuk membuat tautan privat bersama dari sumber daya pencarian Anda yang terhubung ke sumber daya Azure OpenAI Anda, lihat dokumentasi pencarian. Pilih Jenis sumber daya sebagai Microsoft.CognitiveServices/accounts dan ID Grup sebagai openai_account.

Dengan berbagi tautan privat, langkah 8 dari diagram arsitektur penyerapan data diubah dari layanan tepercaya bypass ke tautan privat bersama.

Diagram memperlihatkan proses penyerapan data dengan sumber daya pencarian S2.

Mengonfigurasi Akun Storage

Mengaktifkan layanan tepercaya

Untuk mengizinkan akses ke Akun Penyimpanan Anda dari Azure OpenAI dan Azure AI Search, Anda perlu menyiapkan Akun Penyimpanan untuk melewati Azure OpenAI dan Azure AI Search Anda sebagai layanan tepercaya berdasarkan identitas terkelola.

Di portal Azure, navigasi ke tab jaringan akun penyimpanan Anda, pilih "Jaringan yang dipilih", lalu pilih Izinkan layanan Azure pada daftar layanan tepercaya untuk mengakses akun penyimpanan ini dan klik Simpan.

Nonaktifkan akses jaringan publik

Anda dapat menonaktifkan akses jaringan publik Akun Penyimpanan Anda di portal Azure.

Untuk mengizinkan akses ke Akun Penyimpanan dari komputer klien Anda, seperti menggunakan Azure OpenAI Studio, Anda perlu membuat koneksi titik akhir privat yang terhubung ke penyimpanan blob Anda.

Penetapan peran

Sejauh ini Anda telah menyiapkan setiap sumber daya bekerja secara independen. Selanjutnya Anda perlu mengizinkan layanan untuk saling mengotorisasi.

Peran Penerima tugas Sumber daya Deskripsi
Search Index Data Reader Azure OpenAI Pencarian Azure AI Layanan inferensi meminta data dari indeks.
Search Service Contributor Azure OpenAI Pencarian Azure AI Layanan inferensi meminta skema indeks untuk pemetaan bidang otomatis. Layanan penyerapan data membuat indeks, sumber data, kumpulan keterampilan, pengindeks, dan mengkueri status pengindeks.
Storage Blob Data Contributor Azure OpenAI Akun Penyimpanan Membaca dari kontainer input, dan menulis hasil yang telah diolah sebelumnya ke kontainer output.
Cognitive Services OpenAI Contributor Pencarian Azure AI Azure OpenAI Keterampilan kustom.
Storage Blob Data Reader Pencarian Azure AI Akun Penyimpanan Membaca blob dokumen dan gugus blob.
Cognitive Services OpenAI User Aplikasi web Azure OpenAI Kesimpulan.

Dalam tabel di atas, berarti sistem menetapkan identitas terkelola dari sumber daya tersebut Assignee .

Admin harus memiliki Owner peran pada sumber daya ini untuk menambahkan penetapan peran.

Lihat dokumentasi Azure RBAC untuk instruksi tentang mengatur peran ini di portal Azure. Anda dapat menggunakan skrip yang tersedia di GitHub untuk menambahkan penetapan peran secara terprogram.

Untuk memungkinkan pengembang menggunakan sumber daya ini untuk membangun aplikasi, admin perlu menambahkan identitas pengembang dengan penetapan peran berikut ke sumber daya.

Peran Sumber daya Deskripsi
Cognitive Services OpenAI Contributor Azure OpenAI Panggil API penyerapan publik dari Azure OpenAI Studio. Peran Contributor ini tidak cukup, karena jika Anda hanya memiliki Contributor peran, Anda tidak dapat memanggil API sarana data melalui autentikasi ID Microsoft Entra, dan autentikasi ID Microsoft Entra diperlukan dalam penyiapan aman yang dijelaskan dalam artikel ini.
Cognitive Services User Azure OpenAI Mencantumkan KUNCI API dari Azure OpenAI Studio.
Contributor Pencarian Azure AI Mencantumkan Kunci API untuk mencantumkan indeks dari Azure OpenAI Studio.
Contributor Akun Penyimpanan Cantumkan SAS Akun untuk mengunggah file dari Azure OpenAI Studio.
Contributor Grup sumber daya atau langganan Azure tempat pengembang perlu menyebarkan aplikasi web Sebarkan aplikasi web ke langganan Azure pengembang.

Mengonfigurasi gateway dan klien

Untuk mengakses layanan Azure OpenAI dari komputer klien lokal Anda, salah satu pendekatannya adalah mengonfigurasi Azure VPN Gateway dan Klien Azure VPN.

Ikuti panduan ini untuk membuat gateway jaringan virtual untuk jaringan virtual Anda.

Ikuti panduan ini untuk menambahkan konfigurasi titik-ke-situs, dan mengaktifkan autentikasi berbasis ID Microsoft Entra. Unduh paket konfigurasi profil Klien Azure VPN, unzip, dan impor AzureVPN/azurevpnconfig.xml file ke klien Azure VPN Anda.

Cuplikan layar memperlihatkan tempat mengimpor profil Klien Azure VPN.

Konfigurasikan file komputer hosts lokal Anda untuk mengarahkan nama host sumber daya Anda ke IP privat di jaringan virtual Anda. File hosts ini terletak di C:\Windows\System32\drivers\etc untuk Windows, dan di /etc/hosts Linux. Contoh:

10.0.0.5 contoso.openai.azure.com
10.0.0.6 contoso.search.windows.net
10.0.0.7 contoso.blob.core.windows.net

Azure OpenAI Studio

Anda harus dapat menggunakan semua fitur Azure OpenAI Studio, termasuk penyerapan dan inferensi, dari komputer klien lokal Anda.

Aplikasi web

Aplikasi web berkomunikasi dengan sumber daya Azure OpenAI Anda. Karena sumber daya Azure OpenAI Anda menonaktifkan jaringan publik, aplikasi web perlu disiapkan untuk menggunakan titik akhir privat di jaringan virtual Anda untuk mengakses sumber daya Azure OpenAI Anda.

Aplikasi web perlu menyelesaikan nama host Azure OpenAI Anda ke IP privat titik akhir privat untuk Azure OpenAI. Jadi, Anda perlu mengonfigurasi zona DNS privat untuk jaringan virtual Anda terlebih dahulu.

  1. Buat zona DNS privat di grup sumber daya Anda.
  2. Tambahkan catatan DNS. IP adalah IP privat dari titik akhir privat untuk sumber daya Azure OpenAI Anda, dan Anda bisa mendapatkan alamat IP dari antarmuka jaringan yang terkait dengan titik akhir privat untuk Azure OpenAI Anda.
  3. Tautkan zona DNS privat ke jaringan virtual Anda sehingga aplikasi web yang terintegrasi dalam jaringan virtual ini dapat menggunakan zona DNS privat ini.

Saat menyebarkan aplikasi web dari Azure OpenAI Studio, pilih lokasi yang sama dengan jaringan virtual, dan pilih SKU yang tepat, sehingga dapat mendukung fitur integrasi jaringan virtual.

Setelah aplikasi web disebarkan, dari tab jaringan portal Azure, konfigurasikan integrasi jaringan virtual lalu lintas keluar aplikasi web, pilih subnet ketiga yang Anda pesan untuk aplikasi web.

Cuplikan layar memperlihatkan konfigurasi lalu lintas keluar untuk aplikasi web.

Menggunakan API

Pastikan kredensial masuk Anda memiliki Cognitive Services OpenAI Contributor peran di sumber daya Azure OpenAI Anda, dan jalankan az login terlebih dahulu.

Cuplikan layar yang menunjukkan peran kontributor OpenAI layanan kognitif dalam portal Azure.

API Penyerapan

Lihat artikel referensi API penyerapan untuk detail tentang objek permintaan dan respons yang digunakan oleh API penyerapan.

API inferensi

Lihat artikel referensi API inferensi untuk detail tentang objek permintaan dan respons yang digunakan oleh API inferensi.

Menggunakan Microsoft Defender untuk Cloud

Anda sekarang dapat mengintegrasikan Microsoft Defender untuk Cloud (pratinjau) dengan sumber daya Azure Anda untuk melindungi aplikasi Anda. Microsoft Defender untuk Cloud melindungi aplikasi Anda dengan perlindungan ancaman untuk beban kerja AI , memberi tim pemberitahuan keamanan berbasis bukti yang diperkaya dengan sinyal inteligensi ancaman Microsoft dan memungkinkan tim untuk memperkuat postur keamanan mereka dengan rekomendasi praktik terbaik keamanan terintegrasi.

Gunakan formulir ini untuk mengajukan akses.

Cuplikan layar memperlihatkan Microsoft Defender untuk Cloud.