Menggunakan kontrol akses berbasis peran Azure (Azure RBAC) di Azure Cognitive Search

Azure menyediakan sistem otorisasi kontrol akses berbasis peran (RBAC) global untuk semua layanan yang berjalan di platform. Di Cognitive Search, Anda dapat:

  • Gunakan peran yang secara umum tersedia untuk administrasi layanan.

  • Gunakan peran pratinjau baru untuk permintaan data, termasuk membuat, memuat, dan mengkueri indeks.

Akses per pengguna melalui hasil pencarian (terkadang disebut sebagai keamanan tingkat baris atau keamanan tingkat dokumen) tidak didukung. Sebagai solusinya, buat filter keamanan yang memangkas hasil berdasarkan identitas pengguna, menghapus dokumen yang seharusnya tidak dapat diakses pemohon.

Peran bawaan mencakup peran yang tersedia secara umum dan pratinjau. Jika peran ini tidak cukup, buat peran kustom sebagai gantinya.

Peran Deskripsi dan ketersediaan
Pemilik (Tersedia secara umum) Akses penuh ke sumber daya pencarian, termasuk kemampuan untuk menetapkan peran Azure. Admin langganan menjadi anggota secara default.

(Pratinjau) Peran ini memiliki akses yang sama dengan peran Kontributor Layanan Pencarian pada bidang data. Ini termasuk akses ke semua tindakan bidang data kecuali kemampuan untuk mengkueri indeks pencarian atau dokumen indeks.
Kontributor (Tersedia secara umum) Tingkat akses yang sama dengan Pemilik, dikurangi kemampuan untuk menetapkan peran atau mengubah opsi otorisasi.

(Pratinjau) Peran ini memiliki akses yang sama dengan peran Kontributor Layanan Pencarian pada bidang data. Ini termasuk akses ke semua tindakan bidang data kecuali kemampuan untuk mengkueri indeks pencarian atau dokumen indeks.
Pembaca (Tersedia secara umum) Akses terbatas ke informasi layanan parsial. Di portal, peran Pembaca dapat mengakses informasi di halaman Ringkasan layanan, di bagian Penting dan di bawah tab Pemantauan. Semua tab dan halaman lainnya terbatas.

Peran ini memiliki akses ke informasi layanan: nama layanan, grup sumber daya, status layanan, lokasi, nama dan ID langganan, tag, URL, tingkat harga, replika, partisi, dan unit pencarian. Peran ini juga memiliki akses ke metrik layanan: latensi pencarian, persentase permintaan yang dibatasi, kueri rata-rata per detik.

Tidak ada akses ke kunci API, penetapan peran, konten (indeks atau peta sinonim), atau metrik konten (penyimpanan yang digunakan, jumlah objek).
Kontributor Layanan Pencarian (Tersedia secara umum) Peran ini identik dengan peran Kontributor dan berlaku untuk operasi sarana kontrol.

(Pratinjau) Saat Anda mengaktifkan pratinjau RBAC untuk bidang data, peran ini juga menyediakan akses penuh ke semua tindakan bidang data pada indeks, peta sinonim, pengindeks, sumber data, dan set keterampilan seperti yang didefinisikan oleh Microsoft.Search/searchServices/*. Peran ini tidak memberi Anda akses ke indeks pencarian kueri atau dokumen indeks. Peran ini untuk administrator layanan pencarian yang perlu mengelola indeks layanan pencarian dan sumber daya lainnya.

Seperti Kontributor, anggota peran ini tidak dapat membuat atau mengelola penetapan peran atau mengubah opsi otorisasi. Untuk menggunakan kemampuan pratinjau peran ini, layanan Anda harus mengaktifkan fitur pratinjau, seperti yang dijelaskan dalam artikel ini.
Kontributor Data Indeks Pencarian (Pratinjau) Menyediakan akses sarana data penuh ke konten di semua indeks pada layanan pencarian. Peran ini untuk pengembang atau pemilik indeks yang perlu mengimpor, me-refresh, atau mengkueri koleksi dokumen indeks.
Pembaca Data Indeks Pencarian (Pratinjau) Menyediakan akses sarana data baca-saja ke indeks pencarian pada layanan pencarian. Peran ini untuk aplikasi dan pengguna yang menjalankan kueri.

Catatan

Sumber data Azure memiliki konsep kategori kontrol plane dan data plane dari operasi. Pada Cognitive Search, "sarana kontrol" mengacu pada operasi yang didukung dalam Management REST API atau pustaka klien yang setara. "Data plane" mengacu pada operasi terhadap titik akhir layanan pencarian, seperti pengindeks atau kueri, atau operasi lainnya yang ditentukan dalam REST API Pencarian atau pustaka klien yang setara.

Kemampuan dan batasan pratinjau

  • Kontrol akses berbasis peran untuk operasi pesawat data, seperti membuat indeks atau meminta indeks, saat ini sedang dalam pratinjau publik dan tersedia di bagian ketentuan penggunaan tambahan.

  • Tidak ada batasan regional, tingkat, atau harga untuk menggunakan pratinjau Azure RBAC , tetapi layanan pencarian Anda harus berada di cloud publik Azure. Pratinjau tidak tersedia di Azure Government, Azure Jerman, atau Azure China 21Vianet.

  • Jika Anda memigrasikan langganan Azure ke penyewa baru, pratinjau RBAC harus diaktifkan kembali.

  • Adopsi Azure RBAC dapat meningkatkan latensi beberapa permintaan. Setiap kombinasi unik sumber daya layanan (indeks, pengindeks, dll.) dan perwakilan layanan yang digunakan pada permintaan akan memicu pemeriksaan otorisasi. Pemeriksaan otorisasi ini dapat menambahkan latensi hingga 200 milidetik ke permintaan.

  • Dalam kasus yang jarang terjadi di mana permintaan berasal dari sejumlah besar perwakilan layanan yang berbeda, semua menargetkan sumber daya layanan yang berbeda (indeks, pengindeks, dll.), pemeriksaan otorisasi dapat mengakibatkan pembatasan. Pembatasan hanya akan terjadi jika ratusan kombinasi unik sumber daya layanan pencarian dan perwakilan layanan digunakan dalam hitungan detik.

Mendaftar ke pratinjau

Berlaku pada: Kontributor Data Indeks Pencarian, Pembaca Data Indeks, Kontributor Layanan Pencarian

Peran pratinjau bawaan baru memberikan izin atas konten pada layanan pencarian. Meskipun peran bawaan selalu terlihat dalam portal Azure, pendaftaran pratinjau diperlukan untuk membuatnya beroperasi.

  1. Buka portal Azure dan temukan layanan pencarian Anda.

  2. Di panel navigasi kiri, pilih Kunci.

  3. Di spanduk biru yang menyebutkan pratinjau, pilih Daftar untuk menambahkan fitur ke langganan Anda.

    screenshot of how to sign up for the rbac preview in the portal

Anda juga dapat mendaftar untuk pratinjau menggunakan Azure Feature Exposure Control (AFEC) dan mencari Kontrol Akses Berbasis Peran untuk Layanan Pencarian (Pratinjau) . Untuk informasi selengkapnya tentang menambahkan fitur pratinjau, lihat Menyiapkan fitur pratinjau di langganan Azure.

Catatan

Setelah Anda menambahkan pratinjau ke langganan Anda, semua layanan dalam langganan akan terdaftar secara permanen di pratinjau. Jika Anda tidak ingin RBAC pada layanan tertentu, Anda dapat menonaktifkan RBAC untuk operasi sarana data seperti yang dijelaskan di bagian selanjutnya.

Mengaktifkan pratinjau RBAC untuk operasi data plane

Berlaku pada: Kontributor Data Indeks Pencarian, Pembaca Data Indeks, Kontributor Layanan Pencarian

Pada langkah ini, konfigurasikan layanan pencarian Anda untuk mengenali header otorisasi pada permintaan data yang menyediakan token akses OAuth2.

  1. Masuk ke portal Azure dan buka halaman layanan pencarian.

  2. Di panel navigasi sebelah kiri, pilih Kunci.

  3. Pilih mekanisme kontrol akses API.

    Opsi Status Deskripsi
    Kunci API Tersedia secara umum (default) Memerlukan kunci API admin atau kueri pada header permintaan untuk otorisasi. Tidak ada peran yang digunakan.
    Kontrol akses berbasis peran Pratinjau Membutuhkan keanggotaan dalam penetapan peran untuk menyelesaikan tugas, yang dijelaskan pada langkah berikutnya. Hal ini juga memerlukan header otorisasi. Memilih opsi ini membatasi Anda untuk klien yang mendukung REST API 2021-04-30-pratinjau.
    Keduanya Pratinjau Permintaan berlaku menggunakan kunci API atau token otorisasi.

Jika Anda tidak dapat menyimpan pilihan Anda, atau jika Anda mendapatkan "kontrol akses API gagal memperbarui layanan pencarian <name>. DisableLocalAuth adalah pratinjau dan tidak diaktifkan untuk langganan ini", pendaftaran langganan Anda belum dimulai atau belum diproses.

Menetapkan peran

Penetapan peran bersifat kumulatif dan pervasif di semua alat dan pustaka klien. Anda dapat menetapkan peran menggunakan salah satu pendekatan yang didukung yang dijelaskan dalam dokumentasi kontrol akses berbasis peran Azure.

Anda harus menjadi Pemilik atau memiliki izin Microsoft.Authorization/roleAssignments/write untuk mengelola penetapan peran.

Penetapan peran di portal bersifat di seluruh layanan. Jika Anda ingin memberikan izin ke satu indeks, gunakan PowerShell atau Azure CLI sebagai gantinya.

  1. Buka portal Microsoft Azure.

  2. Buka layanan pencarian Anda.

  3. Pilih Kontrol akses (IAM) di panel navigasi kiri.

  4. Pilih + Tambahkan>Tambahkan penetapan peran.

    Access control (IAM) page with Add role assignment menu open.

  5. Pilih peran yang berlaku:

    • Pemilik
    • Kontributor
    • Pembaca
    • Kontributor Layanan Pencarian (pratinjau untuk permintaan sarana data)
    • Kontributor Data Indeks Pencarian (pratinjau)
    • Pembaca Data Indeks Pencarian (pratinjau)
  6. Pada tab Anggota, pilih identitas pengguna atau grup Azure AD.

  7. Di tab Tinjau + tetapkan, pilih Tinjau + tetapkan untuk menetapkan peran.

Menguji penetapan peran

  1. Buka portal Microsoft Azure.

  2. Buka layanan pencarian Anda.

  3. Di halaman Ringkasan, pilih Indeks:

    • Keanggotaan di Pembaca Data Indeks Pencarian, gunakan Search Explorer untuk mengkueri indeks. Anda dapat menggunakan versi API apa pun untuk memeriksa akses. Anda seharusnya dapat mengeluarkan kueri dan melihat hasil, tetapi Anda seharusnya tidak dapat menampilkan definisi indeks.

    • Anggota Kontributor Data Indeks Pencarian dapat memilih Indeks Baru untuk membuat indeks baru. Menyimpan indeks baru akan memverifikasi akses tulis pada layanan.

Memberikan akses ke satu indeks

Dalam beberapa skenario, Anda mungkin ingin membatasi akses aplikasi ke satu sumber daya, seperti indeks.

Portal saat ini tidak mendukung penetapan peran pada tingkat granularitas ini, tetapi dapat dilakukan dengan PowerShell atau Azure CLI.

Di PowerShell, gunakan New-AzRoleAssignment, memberikan nama pengguna atau grup Azure, dan cakupan penugasan.

  1. Muat modul Azure dan AzureAD dan sambungkan ke akun Azure Anda:

    Import-Module -Name Az
    Import-Module -Name AzureAD
    Connect-AzAccount
    
  2. Tambahkan penetapan peran yang terlingkup ke indeks individual:

    New-AzRoleAssignment -ObjectId <objectId> `
        -RoleDefinitionName "Search Index Data Contributor" `
        -Scope  "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/indexes/<index-name>"
    

Membuat peran kustom

Jika peran bawaan tidak memberikan kombinasi izin yang tepat, Anda dapat membuat peran kustom untuk mendukung operasi yang Anda butuhkan

Contoh ini mengkloning Pembaca Data Indeks Pencarian lalu menambahkan kemampuan untuk mencantumkan indeks berdasarkan nama. Biasanya, mencantumkan indeks pada layanan pencarian dianggap sebagai hak administratif.

Langkah-langkah ini berasal dari Membuat atau memperbarui peran kustom Azure menggunakan portal Azure. Kloning dari peran yang ada didukung di halaman layanan pencarian.

Langkah-langkah ini membuat peran kustom yang menambah hak kueri pencarian untuk menyertakan daftar indeks menurut nama. Biasanya, mencantumkan indeks dianggap sebagai fungsi admin.

  1. Di portal Azure, navigasikan ke layanan pencarian Anda.

  2. Di panel navigasi kiri, pilih Access Control (IAM).

  3. Di bilah tindakan, pilih Peran.

  4. Klik kanan Pembaca Data Indeks Pencarian (atau peran lain) dan pilih Kloning untuk membuka wizard Buat peran kustom .

  5. Pada tab Dasar, berikan nama untuk peran kustom, seperti "Indeks Pencarian Data Explorer", lalu klik Berikutnya.

  6. Pada tab Izin, pilih Tambahkan izin.

  7. Pada tab Tambahkan izin, cari lalu pilih petak peta Microsoft Search.

  8. Atur izin untuk peran kustom Anda. Di bagian atas halaman, menggunakan pilihan Tindakan default:

    • Di bawah Microsoft.Search/operations, pilih Baca : Cantumkan semua operasi yang tersedia.
    • Di bawah Microsoft.Search/searchServices/indexes, pilih Baca : Baca Indeks.
  9. Pada halaman yang sama, beralihlah ke Tindakan data dan di bawah Microsoft.Search/searchServices/indexes/documents, pilih Baca : Baca Dokumen.

    Definisi JSON terlihat seperti contoh berikut:

    {
     "properties": {
         "roleName": "search index data explorer",
         "description": "",
         "assignableScopes": [
             "/subscriptions/a5b1ca8b-bab3-4c26-aebe-4cf7ec4791a0/resourceGroups/heidist-free-search-svc/providers/Microsoft.Search/searchServices/demo-search-svc"
         ],
         "permissions": [
             {
                 "actions": [
                     "Microsoft.Search/operations/read",
                     "Microsoft.Search/searchServices/indexes/read"
                 ],
                 "notActions": [],
                 "dataActions": [
                     "Microsoft.Search/searchServices/indexes/documents/read"
                 ],
                 "notDataActions": []
             }
         ]
       }
     }
    
  10. Pilih Tinjau + buat untuk membuat peran. Sekarang Anda dapat menetapkan pengguna dan grup ke peran tersebut.

Menonaktifkan autentikasi kunci API

Kunci API tidak dapat dihapus, tetapi dapat dinonaktifkan di layanan Anda. Jika Anda menggunakan peran pratinjau Kontributor Layanan Pencarian, Kontributor Data Indeks Pencarian, dan Pembaca Data Indeks Pencarian dan autentikasi Azure AD, Anda dapat menonaktifkan kunci API, menyebabkan layanan pencarian menolak semua permintaan terkait data yang meneruskan kunci API di header untuk permintaan terkait konten.

Untuk menonaktifkan autentikasi berbasis kunci, gunakan versi REST API Manajemen 2021-04-01-Preview dan kirim dua permintaan berturut-turut untuk Layanan Pembaruan.

Izin Pemilik atau Kontributor diperlukan untuk menonaktifkan fitur. Gunakan Postman atau alat pengujian web lain untuk menyelesaikan langkah-langkah berikut (lihat Tip di bawah):

  1. Pada permintaan pertama, atur "AuthOptions" ke "aadOrApiKey" untuk mengaktifkan autentikasi Azure AD. Perhatikan bahwa opsi tersebut menunjukkan ketersediaan pendekatan: Azure AD atau kunci API asli.

    PUT https://management.azure.com/subscriptions/{{subscriptionId}}/resourcegroups/{{resource-group}}/providers/Microsoft.Search/searchServices/{{search-service-name}}?api-version=2021-04-01-Preview
    {
      "location": "{{region}}",
      "sku": {
        "name": "standard"
      },
      "properties": {
        "authOptions": {
          "aadOrApiKey": {
            "aadAuthFailureMode": "http401WithBearerChallenge"
          }
        }
      }
    }
    
  2. Pada permintaan kedua, atur "disableLocalAuthh" ke true. Langkah ini akan mematikan bagian kunci API dari opsi "aadOrApiKey", menyisakan hanya autentikasi Azure AD untuk Anda.

    PUT https://management.azure.com/subscriptions/{{subscriptionId}}/resourcegroups/{{resource-group}}/providers/Microsoft.Search/searchServices/{{search-service-name}}?api-version=2021-04-01-Preview
    {
      "location": "{{region}}",
      "sku": {
        "name": "standard"
      },
      "properties": {
        "disableLocalAuth": true
      }
    }
    

Anda tidak dapat menggabungkan langkah satu dan dua. Pada langkah pertama, "disableLocalAuth" harus false untuk memenuhi persyaratan untuk mengatur "AuthOptions", sedangkan langkah kedua mengubah nilai tersebut menjadi true.

Untuk mengaktifkan kembali autentikasi kunci, jalankan kembali permintaan terakhir, mengatur "disableLocalAuth" menjadi false. Layanan pencarian akan melanjutkan penerimaan kunci API pada permintaan secara otomatis (mengasumsikan sudah ditentukan).

Tip

Panggilan REST API manajemen diautentikasi melalui Azure Active Directory. Untuk panduan tentang menyiapkan prinsip keamanan dan permintaan, lihat posting blog Ini Azure REST API dengan Postman (2021). Contoh sebelumnya diuji menggunakan instruksi dan koleksi Postman yang disediakan dalam posting blog.

Akses Bersyarat

Akses Bersyar adalah alat dalam Azure Active Directory digunakan untuk menegakkan kebijakan organisasi. Dengan menggunakan kebijakan Akses Bersyarat, Anda dapat menerapkan kontrol akses yang tepat saat diperlukan untuk menjaga organisasi Anda tetap aman. Saat mengakses layanan Azure Cognitive Search menggunakan kontrol akses berbasis peran, Akses Bersyarat dapat menerapkan kebijakan organisasi.

Untuk mengaktifkan kebijakan Akses Bersyarat untuk Azure Cognitive Search, ikuti langkah di bawah:

  1. Masuk ke portal Microsoft Azure.

  2. Cari Akses Bersyarat Azure AD.

  3. Pilih Kebijakan.

  4. Pilih + Kebijakan baru.

  5. Di bagian Aplikasi atau tindakan cloud dari kebijakan, tambahkan Azure Cognitive Search sebagai aplikasi cloud tergantung pada cara Anda ingin menyiapkan kebijakan.

  6. Perbarui parameter kebijakan yang tersisa. Misalnya, tentukan pengguna dan grup mana yang berlaku untuk kebijakan ini.

  7. Simpan kebijakan.

Penting

Jika layanan pencarian Anda memiliki identitas terkelola yang ditetapkan, layanan pencarian tertentu akan muncul sebagai aplikasi cloud yang dapat disertakan atau dikecualikan sebagai bagian dari kebijakan Akses Bersyarat. Kebijakan Akses Bersyarat tidak dapat diberlakukan pada layanan pencarian tertentu. Sebagai gantinya pastikan Anda memilih aplikasi cloud Azure Cognitive Search umum.