Rolleri kullanarak Azure AI Search'e bağlanma
Azure, platformda çalışan tüm hizmetler için Microsoft Entra Id aracılığıyla genel kimlik doğrulaması ve rol tabanlı erişim denetimi sağlar. Bu makalede, Azure AI Search'te hangi rollerin arama içeriğine ve yönetimine erişim sağladığını öğrenin.
Azure AI Search'te azure rollerini atayabilirsiniz:
- Hizmet yönetimi
- Bir arama hizmetine geliştirme veya yazma erişimi
- Sorgular için salt okunur erişim
- Tek bir dizine kapsamlı erişim
Arama sonuçları üzerinden kullanıcı başına erişim (bazen satır düzeyi güvenlik veya belge düzeyi güvenlik olarak da adlandırılır) rol atamaları aracılığıyla desteklenmez. Geçici bir çözüm olarak, sonuçları kullanıcı kimliğine göre kırpan güvenlik filtreleri oluşturarak istek sahibinin erişimi olmaması gereken belgeleri kaldırır. Tanıtım için RAG kullanarak bu Kurumsal sohbet örneğine bakın.
Rol atamaları, tüm araçlarda ve istemci kitaplıklarında birikmeli ve kapsamlıdır. Azure rol tabanlı erişim denetimi belgelerinde açıklanan desteklenen yaklaşımlardan herhangi birini kullanarak rol atayabilirsiniz.
Rol tabanlı erişim isteğe bağlıdır ancak önerilir. Alternatif olarak , varsayılan olan anahtar tabanlı kimlik doğrulaması kullanılır.
Önkoşullar
Herhangi bir bölgede, herhangi bir katmanda rol tabanlı erişim için etkinleştirilen bir arama hizmeti.
Sahip, Kullanıcı Erişimi Yöneticisi, Rol Tabanlı Erişim Denetimi Yöneticisi veya Microsoft.Authorization/roleAssignments/write izinlerine sahip özel bir rol.
Azure portalında rol atama
Aşağıdaki adımlar tüm rol atamaları için çalışır.
Azure Portal’ında oturum açın.
Arama hizmetinize gidin.
Rol tabanlı erişimi etkinleştirin.
Sol gezinti bölmesinde Erişim Denetimi (IAM) öğesini seçin.
Rol ataması ekleme sihirbazını başlatmak için + Rol ataması ekle'yi>seçin.
Rol seçin. Kullanıcılar veya yönetilen kimlikler gibi birden çok güvenlik sorumlusunu sihirbaz aracılığıyla bir role atayabilirsiniz, ancak tanımladığınız her rol için bu adımları yinelemeniz gerekir.
Üyeler sekmesinde Microsoft Entra kullanıcı veya grup kimliğini seçin. Başka bir Azure hizmeti için izinler ayarlanıyorsa bir sistem veya kullanıcı tarafından yönetilen kimlik seçin.
Gözden geçirme + atama sekmesinde Gözden geçir + ata’yı seçerek rolü atayın.
Aramada kullanılan yerleşik roller
Veri düzlemi, dizin oluşturma veya sorgular gibi arama hizmeti uç noktasına yönelik işlemleri ya da Arama Hizmeti REST API'lerinde veya eşdeğer Azure SDK istemci kitaplıklarında belirtilen diğer işlemleri ifade eder.
Denetim düzlemi , arama hizmeti oluşturma veya yapılandırma gibi Azure kaynak yönetimini ifade eder.
Aşağıdaki roller yerleşik olarak bulunur. Bu roller yetersizse özel bir rol oluşturun.
Role | Uçak | Açıklama |
---|---|---|
Sahip | Denetim ve Veriler | Azure rolleri atama özelliği de dahil olmak üzere arama kaynağının denetim düzlemine tam erişim. Yalnızca Sahip rolü kimlik doğrulama seçeneklerini etkinleştirebilir veya devre dışı bırakabilir ya da diğer kullanıcılar için rolleri yönetebilir. Abonelik yöneticileri varsayılan olarak üyedir. Veri düzleminde, bu rol Arama Hizmeti Katkıda Bulunanı rolüyle aynı erişime sahiptir. Belgeleri sorgulama veya dizin oluşturma özelliği dışında tüm veri düzlemi eylemlerine erişimi içerir. |
Katkıda Bulunan | Denetim ve Veriler | Sahip ile aynı denetim düzlemi erişimi düzeyi, rol atama veya kimlik doğrulama seçeneklerini değiştirme olanağı hariç. Veri düzleminde, bu rol Arama Hizmeti Katkıda Bulunanı rolüyle aynı erişime sahiptir. Belgeleri sorgulama veya dizin oluşturma özelliği dışında tüm veri düzlemi eylemlerine erişimi içerir. |
Okuyucu | Denetim ve Veriler | Arama ölçümleri, içerik ölçümleri (kullanılan depolama alanı, nesne sayısı) ve veri düzlemi kaynaklarının nesne tanımları (dizinler, dizin oluşturucular vb.) dahil olmak üzere hizmetin tamamında okuma erişimi. Ancak, API anahtarlarını okuyamaz veya dizinler içindeki içeriği okuyamaz. |
Arama Hizmeti Katkıda Bulunanı | Denetim ve Veriler | Nesne tanımlarına (dizinler, diğer adlar, eş anlamlı eşlemeler, dizin oluşturucular, veri kaynakları ve beceri kümeleri) okuma-yazma erişimi. Bu rol, nesne oluşturan geliştiricilere ve bir arama hizmetini ve nesnelerini yöneten ancak dizin içeriğine erişimi olmayan yöneticilere yöneliktir. Dizinleri oluşturmak, silmek ve listelemek, dizin tanımlarını almak, hizmet bilgilerini (istatistikler ve kotalar) almak, çözümleyicileri test etmek, eş anlamlı eşlemeleri, dizin oluşturucuları, veri kaynaklarını ve beceri kümelerini oluşturmak ve yönetmek için bu rolü kullanın. İzin listesi için bkz Microsoft.Search/searchServices/* . |
Arama Dizini Veri Katkıda Bulunanı | Veri | Dizinlerdeki içeriğe okuma-yazma erişimi. Bu rol, bir dizinin belge koleksiyonunu içeri aktarması, yenilemesi veya sorgulaması gereken geliştiricilere veya dizin sahiplerine yöneliktir. Bu rol dizin oluşturmayı veya yönetimi desteklemez. Varsayılan olarak, bu rol bir arama hizmetindeki tüm dizinler içindir. Kapsamı daraltmak için bkz . Tek bir dizine erişim verme. |
Arama Dizini Veri Okuyucusu | Veri | Arama dizinlerini sorgulamak için salt okunur erişim. Bu rol, sorgu çalıştıran uygulamalar ve kullanıcılar içindir. Bu rol, nesne tanımlarına okuma erişimini desteklemez. Örneğin, arama dizini tanımını okuyamaz veya arama hizmeti istatistiklerini alamazsınız. Varsayılan olarak, bu rol bir arama hizmetindeki tüm dizinler içindir. Kapsamı daraltmak için bkz . Tek bir dizine erişim verme. |
Kullanım örneğiniz için yeterli izinleri almak için bu rolleri birleştirin.
Not
Azure rol tabanlı erişimi devre dışı bırakırsanız, denetim düzlemi için yerleşik roller (Sahip, Katkıda Bulunan, Okuyucu) kullanılabilir olmaya devam eder. Rol tabanlı erişimin devre dışı bırakılması yalnızca bu rollerle ilişkili verilerle ilgili izinleri kaldırır. Veri düzlemi rolleri devre dışı bırakılırsa, Arama Hizmeti Katkıda Bulunanı, denetim düzlemi Katkıda Bulunanı ile eşdeğerdir.
Özet
İzinler | Arama Dizini Veri Okuyucusu | Arama Dizini Veri Katkıda Bulunanı | Arama Hizmeti Katkıda Bulunanı | Sahip/Katkıda Bulunan | Okuyucu |
---|---|---|---|---|---|
Azure portalında kaynağı görüntüleme | ❌ | ❌ | ✅ | ✅ | ✅ |
Kaynak özelliklerini/ölçümlerini/uç noktasını görüntüleme | ❌ | ❌ | ✅ | ✅ | ✅ |
Kaynak üzerindeki tüm nesneleri listeleme | ❌ | ❌ | ✅ | ✅ | ✅ |
Erişim kotaları ve hizmet istatistikleri | ❌ | ❌ | ✅ | ✅ | ❌ |
Dizini okuma/sorgulama | ✅ | ✅ | ❌ | ❌ | ❌ |
Dizin oluşturma için verileri karşıya yükleme | ❌ | ✅ | ❌ | ❌ | ❌ |
Dizinleri/diğer adları oluşturma veya düzenleme | ❌ | ❌ | ✅ | ✅ | ❌ |
Dizin oluşturucuları/veri kaynaklarını/beceri kümelerini oluşturma, düzenleme ve çalıştırma | ❌ | ❌ | ✅ | ✅ | ❌ |
Eş anlamlı eşlemeleri oluşturma veya düzenleme | ❌ | ❌ | ✅ | ✅ | ❌ |
Hata ayıklama oturumları oluşturma veya düzenleme | ❌ | ❌ | ✅ | ✅ | ❌ |
Dağıtımları oluşturma veya yönetme | ❌ | ❌ | ✅ | ✅ | ❌ |
Azure AI Search kaynaklarını oluşturma veya yapılandırma | ❌ | ❌ | ✅ | ✅ | ❌ |
Anahtarlar'ın altında anahtarları görüntüleme/kopyalama/yeniden oluşturma | ❌ | ❌ | ✅ | ✅ | ❌ |
Rolleri/ilkeleri/tanımları görüntüleme | ❌ | ❌ | ✅ | ✅ | ❌ |
Kimlik doğrulama seçeneklerini ayarlama | ❌ | ❌ | ✅ | ✅ | ❌ |
Özel bağlantıları yapılandırma | ❌ | ❌ | ✅ | ✅ | ❌ |
Ağ güvenliğini yapılandırma | ❌ | ❌ | ✅ | ✅ | ❌ |
Sahipler ve Katkıda Bulunanlar aynı izinleri verir, ancak yalnızca Sahipler rol atayabilir.
Api anahtarları etkinse, sahipler ve Katkıda Bulunanlar Azure portalında nesneler oluşturabilir, okuyabilir, güncelleştirebilir ve silebilir. Azure portalı, veri düzlemi API'lerine yapılan dahili çağrılarda anahtarları kullanır. Daha sonra Azure AI Search'i "yalnızca roller" kullanacak şekilde yapılandırdığınızda, Sahip ve Katkıda Bulunan yalnızca bu rol atamalarını kullanarak Azure portalındaki nesneleri yönetemez. Çözüm, Arama Dizini Veri Okuyucusu, Arama Dizini Veri Katkıda Bulunanı ve Arama Hizmeti Katkıda Bulunanı gibi daha fazla rol atamaktır.
Rol atama
Bu bölümde, aşağıdakiler için roller atayın:
- Hizmet yönetimi
- Bir arama hizmetine geliştirme veya yazma erişimi
- Sorgular için salt okunur erişim
Hizmet yönetimi için rol atama
Hizmet yöneticisi olarak, bir arama hizmeti oluşturup yapılandırabilir ve Yönetim REST API'sinde veya eşdeğer istemci kitaplıklarında açıklanan tüm denetim düzlemi işlemlerini gerçekleştirebilirsiniz. Sahip veya Katkıda Bulunan iseniz, Azure portalında veri düzlemi Arama REST API'sinin görevlerinin çoğunu da gerçekleştirebilirsiniz.
Role | Kimlik |
---|---|
Owner |
8e3af657-a8ff-443c-a75c-2fe8c4bcb635 |
Contributor |
b24988ac-6180-42a0-ab88-20f7382dd24c |
Reader |
acdd72a7-3385-48ef-bd42-f606fba81ae7 |
Azure Portal’ında oturum açın.
Şu rolleri atayın:
- Sahip (sorgu izinleri dışında tüm veri düzlemi ve denetim düzlemi işlemlerine tam erişim)
- Katkıda Bulunan (rol atama izinleri dışında Sahip ile aynıdır)
- Okuyucu (ölçümleri izlemek ve görüntülemek için kabul edilebilir)
Geliştirme için rol atama
Rol atamaları arama hizmeti genelinde geneldir. İzinlerin kapsamını tek bir dizine göre ayarlamak için PowerShell veya Azure CLI kullanarak özel bir rol oluşturun.
Görev | Rol | Kimlik |
---|---|---|
CRUD işlemleri | Search Service Contributor |
7ca78c08-252a-4471-8644-bb5ff32d4ba0 |
Belgeleri yükleme, dizin oluşturma işlerini çalıştırma | Search Index Data Contributor |
8ebe5a00-799e-43f5-93ac-243d3dce84a7 |
Dizini sorgulama | Search Index Data Reader |
1407120a-92aa-4202-b7e9-c0e197c71c8f |
Tam erişim sağlayan rollerin bir diğer birleşimi de Katkıda Bulunan veya Sahip'in yanı sıra Arama Dizini Veri Okuyucusu'dur.
Önemli
Bir hizmet veya dizin için rol tabanlı erişimi yapılandırıp istekte bir API anahtarı da sağlarsanız, arama hizmeti kimlik doğrulaması için API anahtarını kullanır.
Azure Portal’ında oturum açın.
Şu rolleri atayın:
- Arama Hizmeti Katkıda Bulunanı (dizinler, dizin oluşturucular, beceri kümeleri ve diğer üst düzey nesneler üzerinde oluşturma-okuma-güncelleştirme-silme işlemleri)
- Dizin Verileri Katkıda Bulunanı Arama (belgeleri yükleme ve dizin oluşturma işlerini çalıştırma)
- Arama Dizini Veri Okuyucusu (bir dizini sorgulama)
Salt okunur sorgular için rol atama
Yalnızca bir dizine okuma erişimi gerektiren uygulamalar ve işlemler için Dizin Veri Okuyucusu Arama rolünü kullanın.
Role | Kimlik |
---|---|
Search Index Data Reader PowerShell ile |
1407120a-92aa-4202-b7e9-c0e197c71c8f |
Bu çok özel bir roldür. Arama, otomatik tamamlama ve öneriler için arama dizininin belge koleksiyonuna GET veya POST erişimi verir. Dizinde veya diğer üst düzey nesnelerde GET veya LIST işlemlerini ya da GET hizmeti istatistiklerini desteklemez.
Bu bölümde rol atamasını ayarlamaya yönelik temel adımlar sağlanır ve tamlık için buradadır, ancak uygulamanızı rol tabanlı erişim için yapılandırmaya yönelik kapsamlı yönergeler için Anahtarlar olmadan Azure AI Arama'yı kullanmanızı öneririz.
Azure Portal’ında oturum açın.
Arama Dizini Veri Okuyucusu rolünü atayın.
Rol atamalarını test et
Rol atamalarını test etmek için bir istemci kullanın. Rollerin birikmeli olduğunu ve abonelik veya kaynak grubu düzeyi kapsamında olan devralınan rollerin kaynak (arama hizmeti) düzeyinde silinemediğini veya reddedilebileceğini unutmayın.
Uygulamanızı anahtarsız bağlantılar için yapılandırın ve test etmeden önce rol atamalarına sahip olun.
Azure Portal’ında oturum açın.
Arama hizmetinize gidin.
Genel Bakış sayfasında Dizinler sekmesini seçin:
Arama Hizmeti Katkıda Bulunanları herhangi bir nesneyi görüntüleyebilir ve oluşturabilir, ancak belgeleri yükleyemez veya bir dizini sorgulayamaz. İzinleri doğrulamak için bir arama dizini oluşturun.
Arama Dizini Veri Katkıda Bulunanları belgeleri yükleyebilir. Azure portalında Verileri içeri aktarma sihirbazının dışında belge yükleme seçeneği yoktur, ancak belge yükleme izinlerini onaylamak için bir dizin oluşturucuyu sıfırlayabilir ve çalıştırabilirsiniz.
Arama Dizini Veri Okuyucuları dizini sorgulayabilir. İzinleri doğrulamak için Arama gezgini'ni kullanın. Sorgu gönderebilmeniz ve sonuçları görüntüleyebilmeniz gerekir, ancak dizin tanımını görüntüleyememeniz veya oluşturmamanız gerekir.
Geçerli kullanıcı olarak test et
Zaten arama hizmetinizin Katkıda Bulunanı veya Sahibiyseniz Azure AI Search'e kimlik doğrulaması için kullanıcı kimliğiniz için bir taşıyıcı belirteci sunabilirsiniz.
Azure CLI kullanarak geçerli kullanıcı için taşıyıcı belirteci alın:
az account get-access-token --scope https://search.azure.com/.default
Veya PowerShell kullanarak:
Get-AzAccessToken -ResourceUrl https://search.azure.com
Bu değişkenleri Visual Studio Code'da yeni bir metin dosyasına yapıştırın.
@baseUrl = PASTE-YOUR-SEARCH-SERVICE-URL-HERE @index-name = PASTE-YOUR-INDEX-NAME-HERE @token = PASTE-YOUR-TOKEN-HERE
Yapıştırın ve erişimi onaylamak için bir istek gönderin. İşte hotels-quickstart dizinini sorgulayan bir dizin
POST https://{{baseUrl}}/indexes/{{index-name}}/docs/search?api-version=2024-07-01 HTTP/1.1 Content-type: application/json Authorization: Bearer {{token}} { "queryType": "simple", "search": "motel", "filter": "", "select": "HotelName,Description,Category,Tags", "count": true }
Tek bir dizine erişim izni verme
Bazı senaryolarda, bir uygulamanın dizin gibi tek bir kaynağa erişimini sınırlamak isteyebilirsiniz.
Azure portalı şu anda bu ayrıntı düzeyinde rol atamalarını desteklemez, ancak PowerShell veya Azure CLI ile yapılabilir.
PowerShell'de New-AzRoleAssignment komutunu kullanarak Azure kullanıcı veya grup adını ve atamanın kapsamını sağlayın.
Azure
veAzureAD
modüllerini yükleyin ve Azure hesabınıza bağlanın:Import-Module -Name Az Import-Module -Name AzureAD Connect-AzAccount
Kapsamı tek bir dizine belirlenmiş bir rol ataması ekleyin:
New-AzRoleAssignment -ObjectId <objectId> ` -RoleDefinitionName "Search Index Data Contributor" ` -Scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/indexes/<index-name>"
Özel rol oluşturma
Yerleşik roller doğru izin birleşimini sağlamıyorsa, ihtiyacınız olan işlemleri desteklemek için özel bir rol oluşturabilirsiniz.
Bu örnek, Arama Dizini Veri Okuyucusu'na kopyalayıp dizinleri ada göre listeleme özelliğini ekler. Normalde, bir arama hizmetindeki dizinlerin listelenmesi yönetim hakkı olarak kabul edilir.
Bu adımlar, Azure portalını kullanarak Azure özel rollerini oluşturma veya güncelleştirme kaynaklarından türetilir. Mevcut bir rolden kopyalama, arama hizmeti sayfasında desteklenir.
Bu adımlar, dizinleri ada göre listelemek için arama sorgusu haklarını genişleten özel bir rol oluşturur. Dizinleri listeleme genellikle bir yönetici işlevi olarak kabul edilir.
Azure portalında arama hizmetinize gidin.
Sol gezinti bölmesinde Erişim Denetimi (IAM) öğesini seçin.
Eylem çubuğunda Roller'i seçin.
Dizin Veri Okuyucusu'na (veya başka bir role) sağ tıklayın ve Özel rol oluşturma sihirbazını açmak için Kopyala'yı seçin.
Temel Bilgiler sekmesinde, özel rol için "Arama Dizini Veri Gezgini" gibi bir ad sağlayın ve İleri'yi seçin.
İzinler sekmesinde İzin ekle'yi seçin.
İzin ekle sekmesinde Microsoft Arama kutucuğunu arayın ve seçin.
Özel rolünüz için izinleri ayarlayın. Sayfanın üst kısmında, varsayılan Eylemler seçimini kullanarak:
- Microsoft.Search/operations altında Okuma: Kullanılabilir tüm işlemleri listele'yi seçin.
- Microsoft.Search/searchServices/indexes altında Oku : Dizini Oku'ya tıklayın.
Aynı sayfada Veri eylemleri'ne geçin ve Microsoft.Search/searchServices/indexes/documents altında Oku : Belgeleri Oku'ya tıklayın.
JSON tanımı aşağıdaki örneğe benzer:
{ "properties": { "roleName": "search index data explorer", "description": "", "assignableScopes": [ "/subscriptions/0000000000000000000000000000000/resourceGroups/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": [] } ] } }
Rolü oluşturmak için Gözden geçir + oluştur'u seçin. Artık role kullanıcı ve grup atayabilirsiniz.
Koşullu Erişim
Çok faktörlü kimlik doğrulaması gibi kuruluş ilkelerini zorunlu kılmanız gerekiyorsa Microsoft Entra Koşullu Erişim'i öneririz.
Azure AI Search için Koşullu Erişim ilkesini etkinleştirmek için şu adımları izleyin:
Microsoft Entra Koşullu Erişim'i arayın.
İlkeler'i seçin.
Yeni ilke'yi seçin.
İlkenin Bulut uygulamaları veya eylemler bölümünde, ilkenizi nasıl ayarlamak istediğinize bağlı olarak Azure AI Arama'yı bulut uygulaması olarak ekleyin.
İlkenin kalan parametrelerini güncelleştirin. Örneğin, bu ilkenin hangi kullanıcılara ve gruplara uygulanacağını belirtin.
İlkeyi kaydedin.
Önemli
Arama hizmetinize atanmış bir yönetilen kimlik varsa, belirli bir arama hizmeti Koşullu Erişim ilkesinin parçası olarak dahil edilebilen veya hariç tutulabilen bir bulut uygulaması olarak görünür. Koşullu Erişim ilkeleri belirli bir arama hizmetinde zorlanamaz. Bunun yerine genel Azure AI Search bulut uygulamasını seçtiğinizden emin olun.
Sınırlamalar
Rol tabanlı erişim denetimi bazı isteklerin gecikme süresini artırabilir. Hizmet kaynağı (dizin, dizin oluşturucu vb.) ve hizmet sorumlusunun her benzersiz bileşimi bir yetkilendirme denetimi tetikler. Bu yetkilendirme denetimleri, istek başına 200 milisaniyeye kadar gecikme süresi ekleyebilir.
İsteklerin çok sayıda farklı hizmet sorumlusundan kaynaklandığı nadir durumlarda, tümü farklı hizmet kaynaklarını (dizinler, dizin oluşturucular vb.) hedefleyen durumlarda, yetkilendirme denetimlerinin azaltmaya neden olması mümkündür. Azaltma yalnızca arama hizmeti kaynağı ve hizmet sorumlusunun yüzlerce benzersiz bileşimi bir saniye içinde kullanıldığında gerçekleşir.
Rol tabanlı erişim denetimi sorunlarını giderme
Kimlik doğrulaması için rol tabanlı erişim denetimi kullanan uygulamalar geliştirirken bazı yaygın sorunlar oluşabilir:
Yetkilendirme belirteci yönetilen bir kimlikten geldiyse ve uygun izinler yakın zamanda atanmışsa, bu izin atamalarının etkili olması birkaç saat sürebilir.
Arama hizmeti için varsayılan yapılandırma anahtar tabanlı kimlik doğrulamasıdır. Varsayılan anahtar ayarını Hem hem de Rol tabanlı erişim denetimi olarak değiştirmediyseniz, rol tabanlı kimlik doğrulaması kullanan tüm istekler temel alınan izinlere bakılmaksızın otomatik olarak reddedilir.