Membuat koneksi keluar melalui tautan privat bersama

Artikel ini menjelaskan cara mengonfigurasi panggilan keluar privat dari Azure AI Search ke sumber daya Azure PaaS yang berjalan dalam jaringan virtual.

Menyiapkan koneksi privat memungkinkan layanan pencarian untuk terhubung ke alamat IP jaringan virtual alih-alih port yang terbuka ke internet. Objek yang dibuat untuk koneksi disebut tautan privat bersama. Pada koneksi, layanan pencarian menggunakan tautan privat bersama secara internal untuk menjangkau sumber daya Azure PaaS di dalam batas jaringan.

Tautan privat bersama adalah fitur premium yang ditagih berdasarkan penggunaan. Saat Anda menyiapkan tautan privat bersama, biaya untuk titik akhir privat ditambahkan ke faktur Azure Anda. Saat Anda menggunakan tautan privat bersama, tarif transfer data untuk akses masuk dan keluar juga ditagih. Untuk detailnya, lihat Harga Azure Private Link.

Catatan

Jika Anda menyiapkan koneksi pengindeks privat ke SQL Managed Instance, lihat artikel ini sebagai gantinya.

Azure AI Search melakukan panggilan keluar ke sumber daya Azure PaaS lainnya dalam skenario berikut:

  • Pengindeks atau mesin pencari tersambung ke Azure OpenAI untuk penyematan teks ke vektor
  • Pengindeks tersambung ke sumber data yang didukung
  • Koneksi pengindeks (skillset) ke Azure Storage untuk pengayaan penembolokan, sate sesi debug, atau penulisan ke penyimpanan pengetahuan
  • Permintaan kunci enkripsi ke Azure Key Vault
  • Permintaan keterampilan kustom ke Azure Functions atau sumber daya serupa

Tautan privat bersama hanya berfungsi untuk koneksi Azure-ke-Azure. Jika Anda tersambung ke OpenAI atau model eksternal lainnya, koneksi harus melalui internet publik.

Tautan privat bersama adalah untuk operasi dan data yang diakses melalui titik akhir privat untuk sumber daya Atau klien Azure yang berjalan di jaringan virtual Azure.

Tautan privat bersama adalah:

  • Dibuat menggunakan alat, API, atau SDK Pencarian Azure AI
  • Disetujui oleh pemilik sumber daya Azure PaaS
  • Digunakan secara internal oleh Azure AI Search pada koneksi privat ke sumber daya Azure tertentu

Hanya layanan pencarian Anda yang dapat menggunakan tautan privat yang dibuatnya, dan hanya ada satu tautan privat bersama yang dibuat pada layanan Anda untuk setiap kombinasi sumber daya dan sub sumber daya.

Setelah Anda menyiapkan tautan privat, tautan tersebut digunakan secara otomatis setiap kali layanan pencarian terhubung ke sumber daya PaaS tersebut. Anda tidak perlu mengubah string koneksi atau mengubah klien yang Anda gunakan untuk mengeluarkan permintaan, meskipun perangkat yang digunakan untuk koneksi harus tersambung menggunakan IP resmi di firewall sumber daya Azure PaaS.

Ada dua skenario untuk menggunakan Azure Private Link dan Azure AI Search bersama-sama.

  • Skenario satu: membuat tautan privat bersama saat koneksi keluar (pengindeks) ke Azure PaaS memerlukan koneksi privat.

  • Skenario dua: mengonfigurasi pencarian koneksi masuk privat dari klien yang berjalan di jaringan virtual.

Skenario satu dibahas dalam artikel ini.

Meskipun kedua skenario memiliki dependensi pada Azure Private Link, keduanya independen. Anda dapat membuat tautan privat bersama tanpa harus mengonfigurasi layanan pencarian Anda sendiri untuk titik akhir privat.

Batasan

Saat mengevaluasi tautan privat bersama untuk skenario Anda, ingat batasan ini.

  • Beberapa jenis sumber daya yang digunakan dalam tautan privat bersama sedang dalam pratinjau. Jika Anda menyambungkan ke sumber daya pratinjau (Azure Database for MySQL, Azure Functions, atau Azure SQL Managed Instance), gunakan versi pratinjau Management REST API untuk membuat tautan privat bersama. Versi ini termasuk 2020-08-01-preview, 2021-04-01-preview, dan 2024-03-01-preview.

  • Eksekusi pengindeks harus menggunakan lingkungan eksekusi privat yang khusus untuk layanan pencarian Anda. Koneksi titik akhir privat tidak didukung dari lingkungan multipenyewa. Pengaturan konfigurasi untuk persyaratan ini tercakup dalam artikel ini.

Prasyarat

  • Pencarian Azure AI di tingkat Dasar atau yang lebih tinggi. Jika Anda menggunakan pengayaan AI dan set keterampilan, tingkatnya harus Standar 2 (S2) atau lebih tinggi. Lihat Batas layanan untuk detailnya.

  • Sumber daya Azure PaaS dari daftar jenis sumber daya yang didukung berikut, dikonfigurasi untuk berjalan di jaringan virtual.

  • Izin pada Azure AI Search dan sumber data:

    • Pada sumber daya Azure PaaS, Anda harus memiliki izin untuk menyetujui koneksi titik akhir privat. Misalnya, jika Anda menggunakan akun Azure Storage sebagai sumber data Anda (seperti kontainer Blob, berbagi Azure Files, tabel Azure), Anda memerlukan Microsoft.Storage/storageAccounts/privateEndpointConnectionsApproval/action.

    • Pada layanan pencarian, Anda harus memiliki izin baca dan tulis pada sumber daya tautan privat bersama dan membaca status operasi:

      • Microsoft.Search/searchServices/sharedPrivateLinkResources/write
      • Microsoft.Search/searchServices/sharedPrivateLinkResources/read
      • Microsoft.Search/searchServices/sharedPrivateLinkResources/operationStatuses/read

Jenis sumber daya yang didukung

Anda dapat membuat tautan privat bersama untuk sumber daya berikut.

Jenis Sumber Daya Sub sumber daya (atau ID Grup)
Microsoft.Storage/storageAccounts 1 blob, , tabledfs,file
Microsoft.DocumentDB/databaseAccounts 2 Sql
Microsoft.Sql/servers sqlServer
Microsoft.KeyVault/vault vault
Microsoft.DBforMySQL/servers (pratinjau) mysqlServer
Microsoft.Web/sites (pratinjau) 3 sites
Microsoft.Sql/managedInstances (pratinjau) 4 managedInstance
Microsoft.CognitiveServices/accounts (pratinjau) 5 openai_account

1 Jika Azure Storage dan Azure AI Search berada di wilayah yang sama, koneksi ke penyimpanan dibuat melalui jaringan backbone Microsoft, yang berarti tautan privat bersama berlebihan untuk konfigurasi ini. Namun, jika Anda sudah menyiapkan titik akhir privat untuk Azure Storage, Anda juga harus menyiapkan tautan privat bersama atau koneksi ditolak di sisi penyimpanan. Selain itu, jika Anda menggunakan beberapa format penyimpanan untuk berbagai skenario dalam pencarian, pastikan untuk membuat tautan privat bersama terpisah untuk setiap sub-sumber daya.

2 Jenis Microsoft.DocumentDB/databaseAccounts sumber daya digunakan untuk koneksi pengindeks ke Azure Cosmos DB for NoSQL. Nama penyedia dan ID grup peka huruf besar/kecil.

3 Jenis Microsoft.Web/sites sumber daya digunakan untuk Layanan aplikasi dan fungsi Azure. Dalam konteks Azure AI Search, fungsi Azure adalah skenario yang lebih mungkin. Fungsi Azure umumnya digunakan untuk menghosting logika keterampilan kustom. Azure Function memiliki paket hosting Consumption, Premium, dan Dedicated App Service. Lingkungan App Service (ASE) dan Azure Kubernetes Service (AKS) saat ini tidak didukung.

4 Lihat Membuat tautan privat bersama untuk SQL Managed Instance untuk instruksi.

5 Jenis Microsoft.CognitiveServices/accounts sumber daya digunakan untuk koneksi pengindeks ke Azure OpenAI saat menerapkan Vektorisasi terintegrasi.

Gunakan portal Azure, Management REST API, Azure CLI, atau Azure PowerShell untuk membuat tautan privat bersama.

Berikut adalah beberapa tips:

  • Beri tautan privat nama yang bermakna. Di sumber daya Azure PaaS, tautan privat bersama muncul bersama titik akhir privat lainnya. Nama seperti "shared-private-link-for-search" dapat mengingatkan Anda cara penggunaannya.

Saat Anda menyelesaikan langkah-langkah di bagian ini, Anda memiliki tautan privat bersama yang disediakan dalam status tertunda. Dibutuhkan beberapa menit untuk membuat tautan. Setelah dibuat, pemilik sumber daya harus menyetujui permintaan sebelum beroperasi.

  1. Masuk ke portal Azure dan temukan layanan pencarian Anda.

  2. Di bawah Pengaturan di panel navigasi kiri, pilih Jaringan.

  3. Pada halaman Akses Privat Bersama, pilih + Tambahkan Akses Privat Bersama.

  4. Pilih Koneksi ke sumber daya Azure di direktori saya atau Koneksi ke sumber daya Azure berdasarkan ID sumber daya.

  5. Jika Anda memilih opsi pertama (disarankan), portal membantu Anda memilih sumber daya Azure yang sesuai dan mengisi properti lain, seperti ID grup sumber daya dan jenis sumber daya.

    Cuplikan layar halaman Tambahkan Akses Privat Bersama, memperlihatkan pengalaman terpandu untuk membuat sumber daya tautan privat bersama.

  6. Jika Anda memilih opsi kedua, masukkan ID sumber daya Azure secara manual dan pilih ID grup yang sesuai dari daftar di awal artikel ini.

    Cuplikan layar halaman Tambahkan Akses Privat Bersama, memperlihatkan pengalaman manual untuk membuat sumber daya tautan privat bersama.

  7. Konfirmasikan status provisi adalah "Memperbarui".

    Cuplikan layar halaman Tambahkan Akses Privat Bersama, memperlihatkan pembuatan sumber daya yang sedang berlangsung.

  8. Setelah sumber daya berhasil dibuat, status provisi sumber daya berubah menjadi "Berhasil".

    Cuplikan layar halaman Tambahkan Akses Privat Bersama, memperlihatkan pembuatan sumber daya selesai.

Respon 202 Accepted dikembalikan jikka berhasil. Proses pembuatan titik akhir privat keluar adalah operasi jangka panjang (asinkron). Ini melibatkan penyebaran sumber daya berikut:

  • Titik akhir privat, dialokasikan dengan alamat IP privat dalam status "Pending". Alamat IP privat diperoleh dari ruang alamat yang dialokasikan ke jaringan virtual lingkungan eksekusi untuk pengindeks privat khusus layanan pencarian. Setelah persetujuan titik akhir privat, komunikasi apa pun dari Azure AI Search ke sumber daya Azure berasal dari alamat IP privat dan saluran tautan privat yang aman.

  • Zona DNS privat untuk jenis sumber daya, berdasarkan ID grup. Dengan menyebarkan sumber daya ini, Anda memastikan bahwa setiap pencarian DNS ke sumber daya privat menggunakan alamat IP yang terkait dengan titik akhir privat.

2 - Menyetujui koneksi titik akhir privat

Persetujuan koneksi titik akhir privat diberikan di sisi Azure PaaS. Persetujuan eksplisit oleh pemilik sumber daya diperlukan. Langkah-langkah berikut mencakup persetujuan menggunakan portal Azure, tetapi berikut adalah beberapa tautan untuk menyetujui koneksi secara terprogram dari sisi Azure PaaS:

Dengan menggunakan portal Azure, lakukan langkah-langkah berikut:

  1. Buka halaman Jaringan sumber daya Azure PaaS.Teks

  2. Temukan bagian yang mencantumkan koneksi titik akhir privat. Contoh berikut adalah untuk akun penyimpanan.

    Cuplikan layar portal Microsoft Azure yang memperlihatkan panel Koneksi titik akhir privat.

  3. Pilih koneksi, lalu pilih Setujui. Diperlukan waktu beberapa menit agar status diperbarui di portal.

    Cuplikan layar portal Microsoft Azure yang memperlihatkan status Disetujui di panel Koneksi titik akhir privat.

Setelah titik akhir privat disetujui, Azure AI Search membuat pemetaan zona DNS yang diperlukan di zona DNS yang dibuat untuknya.

Meskipun tautan titik akhir privat di halaman Jaringan aktif, tautan tersebut tidak akan teratasi.

Cuplikan layar tautan titik akhir privat di halaman jaringan Azure PaaS.

Memilih tautan akan menghasilkan kesalahan. Pesan status dan "The access token is from the wrong issuer"must match the tenant associated with this subscription muncul karena sumber daya titik akhir privat backend disediakan oleh Microsoft di penyewa yang dikelola Microsoft, sementara sumber daya tertaut (Azure AI Search) berada di penyewa Anda. Secara desain Anda tidak dapat mengakses sumber daya titik akhir privat dengan memilih tautan koneksi titik akhir privat.

Ikuti instruksi di bagian berikutnya untuk memeriksa status tautan privat bersama Anda.

Di sisi Pencarian Azure AI, Anda dapat mengonfirmasi persetujuan permintaan dengan mengunjungi kembali halaman Akses Privat Bersama dari halaman Jaringan layanan pencarian. status Koneksi harus disetujui.

Cuplikan layar portal Azure, memperlihatkan sumber daya tautan privat bersama yang disetujui.

Atau, Anda juga dapat memperoleh status koneksi dengan menggunakan GET Shared Private Link API.

az rest --method get --uri https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Search/searchServices/contoso-search/sharedPrivateLinkResources/blob-pe?api-version=2023-11-01

Ini akan mengembalikan JSON, di mana status koneksi muncul sebagai "status" di bawah bagian "properti". Berikut ini adalah contoh untuk akun penyimpanan.

{
      "name": "blob-pe",
      "properties": {
        "privateLinkResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Storage/storageAccounts/contoso-storage",
        "groupId": "blob",
        "requestMessage": "please approve",
        "status": "Approved",
        "resourceRegion": null,
        "provisioningState": "Succeeded"
      }
}

Jika status provisi (properties.provisioningState) sumber daya adalah "Berhasil" dan status koneksi(properties.status) adalah "Disetujui", itu berarti bahwa sumber daya tautan privat bersama berfungsi dan pengindeks dapat dikonfigurasi untuk berkomunikasi melalui titik akhir privat.

4 - Mengonfigurasi pengindeks untuk dijalankan di lingkungan privat

Eksekusi pengindeks terjadi di lingkungan privat yang khusus untuk layanan pencarian, atau lingkungan multipenyewa yang digunakan secara internal untuk membongkar pemrosesan set keterampilan yang mahal untuk beberapa pelanggan.

Lingkungan eksekusi transparan, tetapi setelah Anda mulai membangun aturan firewall atau membuat koneksi privat, Anda harus memperhitungkan eksekusi pengindeks. Untuk koneksi privat, konfigurasikan eksekusi pengindeks untuk selalu berjalan di lingkungan privat.

Langkah ini menunjukkan kepada Anda cara mengonfigurasi pengindeks untuk berjalan di lingkungan privat menggunakan REST API. Anda juga dapat mengatur lingkungan eksekusi menggunakan editor JSON di portal.

Catatan

Anda dapat melakukan langkah ini sebelum koneksi titik akhir privat disetujui. Namun, sampai koneksi titik akhir privat ditampilkan sebagai disetujui, pengindeks yang ada yang mencoba berkomunikasi dengan sumber daya yang aman (seperti akun penyimpanan) akan berakhir dalam status kegagalan sementara dan pengindeks baru akan gagal dibuat.

  1. Buat definisi sumber data, indeks, dan skillset (jika Anda menggunakannya) seperti biasanya. Tidak ada properti dalam salah satu definisi ini yang bervariasi saat menggunakan titik akhir privat bersama.

  2. Buat pengindeks yang menunjuk ke sumber data, indeks, dan skillset yang Anda buat di langkah sebelumnya. Selain itu, paksa pengindeks untuk berjalan di lingkungan eksekusi privat dengan mengatur properti konfigurasi executionEnvironment pengindeks ke private.

    {
        "name": "indexer",
        "dataSourceName": "blob-datasource",
        "targetIndexName": "index",
        "parameters": {
            "configuration": {
                "executionEnvironment": "private"
            }
        },
        "fieldMappings": []
    }
    

Setelah pengindeks berhasil dibuat, pengindeks harus menyambung ke sumber daya Azure melalui koneksi titik akhir privat. Anda dapat memantau status pengindeks menggunakan API Status Pengindeks.

Catatan

Jika Anda telah memiliki pengindeks yang ada, Anda dapat memperbaruinya melalui PUT API dengan mengatur executionEnvironment ke private atau menggunakan editor JSON di portal.

  1. Jika Anda belum melakukannya, verifikasi bahwa sumber daya Azure PaaS Anda menolak koneksi dari internet publik. Jika koneksi diterima, tinjau pengaturan DNS di halaman Jaringan sumber daya Azure PaaS Anda.

  2. Pilih alat yang dapat memanggil skenario permintaan keluar, seperti koneksi pengindeks ke titik akhir privat. Pilihan yang mudah adalah menggunakan wizard Impor data , tetapi Anda juga dapat mencoba klien REST dan REST API untuk presisi yang lebih baik. Dengan asumsi bahwa layanan pencarian Anda tidak juga dikonfigurasi untuk koneksi privat, koneksi klien REST untuk pencarian dapat melalui internet publik.

  3. Atur string koneksi ke sumber daya Azure PaaS privat. Format string koneksi tidak berubah untuk tautan privat bersama. Layanan pencarian memanggil tautan privat bersama secara internal.

    Untuk beban kerja pengindeks, string koneksi berada dalam definisi sumber data. Contoh sumber data mungkin terlihat seperti ini:

     {
       "name": "my-blob-ds",
       "type": "azureblob",
       "subtype": null,
       "credentials": {
         "connectionString": "DefaultEndpointsProtocol=https;AccountName=<YOUR-STORAGE-ACCOUNT>;AccountKey=..."
       }
    
  4. Untuk beban kerja pengindeks, ingatlah untuk mengatur lingkungan eksekusi dalam definisi pengindeks. Contoh definisi pengindeks mungkin terlihat seperti ini:

    "name": "indexer",
    "dataSourceName": "my-blob-ds",
    "targetIndexName": "my-index",
    "parameters": {
       "configuration": {
           "executionEnvironment": "private"
           }
       },
    "fieldMappings": []
    }
    
  5. Jalankan pengindeks. Jika eksekusi pengindeks berhasil dan indeks pencarian diisi, tautan privat bersama berfungsi.

Pemecahan Masalah

  • Jika pembuatan pengindeks Anda gagal dengan "Kredensial sumber data tidak valid," periksa status persetujuan tautan privat bersama sebelum men-debug koneksi. Jika statusnya adalah Approved, periksa properties.provisioningState properti . Jika itu Incomplete, mungkin ada masalah dengan dependensi yang mendasar. Dalam hal ini, terisi PUT ulang permintaan untuk membuat ulang tautan privat bersama. Anda mungkin juga perlu mengulangi langkah persetujuan.

  • Jika pengindeks gagal secara konsisten atau terputus-putus, periksa executionEnvironment properti pada pengindeks. Nilai harus diatur ke private. Jika Anda tidak mengatur properti ini, dan pengindeks berjalan berhasil di masa lalu, itu karena layanan pencarian menggunakan lingkungan privat dengan kemauannya sendiri. Layanan pencarian memindahkan pemrosesan keluar dari lingkungan standar jika sistem sedang dimuat.

  • Jika Anda mendapatkan kesalahan saat membuat tautan privat bersama, periksa batas layanan untuk memverifikasi bahwa Anda berada di bawah kuota untuk tingkat Anda.

Langkah berikutnya

Pelajari selengkapnya tentang titik akhir privat dan metode koneksi aman lainnya: