Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bir yapay zeka ajanının belirli bir görev için ihtiyaç duyduğu verilere ve kaynaklara erişimini sınırlamak amacıyla rol tabanlı erişim kontrolü (RBAC) kullanın. Temsilciye bir role atanmış bir OAuth tokenı verin. Bu token ile yapılan talepler, kimlik doğrulama yapan kullanıcının veya hizmet sorumlusunun daha geniş izinleri yerine rolün izinlerini kullanır.
Scenario
Bir yapay zeka destek temsilcisi için bilet özetleri ve durum gereklidir, ancak kişisel tanımlayıcı bilgiler (PII) içeren müşteri iletişim bilgileri gerekli değildir. Kimlik doğrulama hizmet sorumlusu daha geniş erişime sahiptir ve her iki veri setini de okuyabilir.
Bu örnekte, support.tickets şema müşteriye ait kişisel olarak tanımlanabilir bilgiler (PII) olmadan bilet özetleri ve durum içerir. Müşteri iletişim bilgileri ayrı olarak saklanır support.customers.contact_details.
role-support-agent oluşturursunuz, support.tickets için okuma erişimi verirsiniz ve servis yöneticisine bunun üzerinde üstlenme izni verirsiniz. Kapsamı o rolle sınırlandırılmış bir token ile temsilci destek biletlerini okuyabilir ama müşteri iletişim bilgilerine erişemez.
Rol, ana gruplardan veri ayrıcalıklarını devralabilir ve katalog veya şema izinleri altındaki tüm tablolara uygulanabilir. Bu örnekte, bu grantların role müşteri iletişim tablosuna erişim sağlamadığını doğrulayın. Bkz . Ayrıcalık devralma. Paylaşılan izinlerin değiştirilmesi diğer kullanıcıları ve rolleri etkiler, bu yüzden diğer kullanıcıların erişimini kaldırmak yerine test çalışma alanı kullanın.
Bu eğitim, sizin sağladığınız OAuth erişim tokenını kabul eden özel, kendi kendine barındırılan veya üçüncü taraf ajanlar içindir. Databricks Uygulamalarında konuşlandırılan ajanlar için, yerleşik uygulama yetkilendirmesini veya kullanıcı yetkilendirmesini kullanın. Bkz. Aracılar için kimlik doğrulaması.
Prerequisites
- RBAC etkin olan Unity Catalog etkinleştirilmiş bir çalışma alanı. Bkz. RBAC'yi etkinleştirme.
- Rolü oluşturmak, Assume izni vermek ve bunu çalışma alanına atamak için hesap yöneticisi veya çalışma alanı yöneticisi izinleri gerekir. Bkz . Grupları kimler yönetebilir?.
- Kataloğun sahipliği veya
supportkataloğu üzerindeMANAGEhakkı. - Çalışma alanı yöneticisi izinleri veya örnekte kullanılan SQL deposunda Yönetebilir izni.
- Mevcut tablolar
support.tickets.open_casesvesupport.customers.contact_details. Uydurma test verilerini kullanın ve gerekirse metin boyunca kendi isimlerinizi kullanın. - Çalışma alanına atanmış, Databricks SQL erişimi olan, depoda kullanılabilen ve her iki tabloyu sorgulama iznine sahip bir hizmet sorumlusu. Makineden makineye (M2M) kimlik doğrulama için
sqlkapsamına izin veren bir OAuth sırrı gerekir. Bkz 1. Adım: OAuth gizli anahtarı oluşturma. -
curltoken talep edip test edebileceğiniz güvenilir bir ortamda. - Rol altındaki temsilcinin faaliyetini doğrulamak için
system.access.auditerişimi olan bir denetim okuyucusu. Bkz. Denetim ilişkilendirmesini doğrulama.
Bu OAuth M2M örneği için Azure Databricks tarafından yönetilen bir hizmet sorumlusu kullanın. Microsoft Entra ID yönetilen hizmet sorumluları farklı bir kimlik doğrulama kurulumu kullanır. Bkz. OAuth ile Azure Databricks'e hizmet sorumlusu erişimini yetkilendirme.
1. Adım: Rolü oluşturma
Bu eğitim için, rol olarak hizmet edecek boş bir hesap grubu oluşturun.
Hesap konsolu
- Hesap yöneticisi olarak hesap konsolunda oturum açın.
- Kenar çubuğunda Kullanıcı yönetimi'ne tıklayın.
- Gruplar sekmesinde Grup ekle'ye tıklayın.
-
role-support-agentgirin. Üye eklemeyin. - Onayla'yı tıklatın.
- Grubu çalışma alanına Databricks SQL erişimiyle atayın. Bkz. Çalışma alanına grup atama.
Çalışma alanı yöneticisi ayarları
- Bir çalışma alanı yöneticisi olarak, test çalışma alanına giriş yapın.
- Üst çubukta kullanıcı adınıza tıklayın ve Ayarlar'ı seçin.
- Kimlik ve erişim sekmesine tıklayın.
- Gruplar'ın yanında Yönet'e tıklayın.
- Grup Ekle'ye tıklayın, ardından Yeni Ekle.
-
girin ve
role-support-agent'ni seçin. - Ekle'yi tıklatın. Üye eklemeyin.
Bu aynı zamanda grubu çalışma alanına atar ve size Yönet izni verir.
Databricks SQL erişim hakkı, dashboardlar, sorgular ve SQL depoları dahil olmak üzere Databricks SQL özelliklerine erişim sağlar. Örnekte SQL sorguları kullanılır. Ajanınızın ayrıca notebook'lar, Jobs, modeller veya pipeline gibi temel workspace özelliklerine ihtiyacı varsa, Workspace erişimi verin. Bkz. Erişim yetkilendirmeleri. Veri ayrıcalıklarını ve depo izinlerini Step 2'de yapılandırıyorsunuz.
Bu örnekte, service principal’i üye olarak eklemek yerine Assume iznini ayrı olarak verirsiniz. Üyelik ayrıca hizmet sorumlusunun kendi kimliğine grubun izinlerini ekler.
Adım 2: Role destek biletlerine erişim tanıyın
Katalog sahibiyseniz veya support üzerinde MANAGE yetkisine sahip bir kullanıcıysanız, şunu çalıştırın:
GRANT USE CATALOG ON CATALOG support TO `role-support-agent`;
GRANT USE SCHEMA, SELECT ON SCHEMA support.tickets TO `role-support-agent`;
Bir çalışma alanı yöneticisi veya depoda Can manage iznine sahip bir kullanıcı olarak, role depoya erişim verin:
- Çalışma alanı yan panelinde SQL Warehouses'a tıklayın.
-
Deponun yanındaki kebab menüsüne tıklayın, ardından İzinler'e tıklayın.
-
öğesini
role-support-agentile ekleyin.
Şema düzeyindeki SELECT izin, support.tickets içindeki mevcut ve gelecekteki tüm tablolar ve görünümler için geçerlidir. Bu, support.customers veya diğer şemalara erişim izni vermez. Rolü tek bir tabloyla sınırlamak için bunun yerine SELECT yetkisini o tabloda verin. Bkz. Unity Kataloğu'nda ayrıcalıkları yönetme.
Adım 3: Rolü üstlenme izni verin
Hizmet yöneticisine Assume iznini iki yöntemden birini kullanarak verin:
Hesap konsolu
- Hesap yöneticisi olarak, hesap konsolunu açın ve Kullanıcı yönetimi'ne tıklayın.
-
Gruplar sekmesinde
role-support-agentöğesine tıklayın. - İzinler sekmesine tıklayın, ardından Erişim ver seçeneğine tıklayın.
- hizmet sorumlusunu arayın ve seçin, Assume seçin ve Kaydet'e tıklayın.
Çalışma alanı yöneticisi ayarları
- Görev için Yönet iznine sahip bir çalışma alanı yöneticisi olarak, test çalışma alanında Settings>Identity and access bölümünü açın.
-
Gruplar'ın yanında Yönet'e tıklayın, ardından
role-support-agentseçeneğini belirleyin. - İzinler'e tıklayın, sonra Erişim izni verin.
- hizmet sorumlusunu arayın ve seçin, Assume seçin ve Kaydet'e tıklayın.
Adım 4: Rol kapsamlı bir belirteç talep edin
Güvenilir token talebi ortamınızda şu ortam değişkenlerini ayarlayın:
-
DATABRICKS_HOST:https://dahil ve sonunda eğik çizgi olmadan çalışma alanı URL'si. -
CLIENT_IDveCLIENT_SECRET: hizmet sorumlusunun uygulama kimliği ve OAuth gizli anahtarı. -
ROLE_GROUP_ID:role-support-agentsayısal kimliği. Bir hesap yöneticisi bunu hesap konsolunda, grubun URL’sinin sonunda bulabilir. Hesap yöneticileri, çalışma alanı yöneticileri ve grup yöneticileri de grubun bilgileriniidkullanarak alabilir. -
DATABRICKS_SQL_WAREHOUSE_ID: Step 2'de verilen depo kimliği. Bu, deponun/sql/1.0/warehouses/ilerler. Bkz. Azure Databricks işlem kaynağı için bağlantı ayrıntılarını alma.
sql parametresi ve assume_group OAuth kapsamıyla çalışma alanı seviyesinde bir token talep edin. Kapsam, token'ı SQL API'leriyle sınırlandırır. Rolün veri ayrıcalıkları, hangi tabloları sorgulayabileceğini belirler. Bkz. Kapsamlı OAuth gizli anahtarları.
Token talep etmek için şunu çalıştırın:
curl --request POST \
--url "$DATABRICKS_HOST/oidc/v1/token" \
--user "$CLIENT_ID:$CLIENT_SECRET" \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'scope=sql' \
--data-urlencode "assume_group=$ROLE_GROUP_ID"
DATABRICKS_TOKEN değerini yanıttaki access_token değerine ayarlayın.
expires_in değerini, ne zaman değişim talep edileceğini belirlemek için kullanın. Hesap düzeyindeki token talepleri assume_group desteklemez. Bkz. Bir rol üstlenin.
Adım 5: Belirtecin erişimini doğrulayın
Tokeni ajana sağlamadan önce bu kontrolleri güvenilir ortamda çalıştırın.
İlk olarak, hizmet sorumlusunun kendi kimliği için bir token ile bir temel değer elde edin. Step 4’teki isteği assume_group parametresi olmadan tekrarlayın ve DATABRICKS_TOKEN değerini geçici olarak bu token’a ayarlayın. Bu adımda her iki sorguyu da çalıştırın ve başarılı olduklarını doğrulayın. Sonra DATABRICKS_TOKEN rol kapsamlı token'a geri dönüp kontrolleri tekrarlayın.
Destek biletlerini okuyun
Bu isteği rol kapsamlı belirteçle çalıştırın:
curl --request POST \
--url "$DATABRICKS_HOST/api/2.0/sql/statements" \
--header "Authorization: Bearer $DATABRICKS_TOKEN" \
--header 'Content-Type: application/json' \
--data "{
\"warehouse_id\": \"$DATABRICKS_SQL_WAREHOUSE_ID\",
\"statement\": \"SELECT * FROM support.tickets.open_cases LIMIT 10\",
\"wait_timeout\": \"50s\"
}"
Sorgu başarılı olur çünkü rol support.tickets öğesini okuyabildiği için. Yanıtın status.state değerinin SUCCEEDED olduğunu kontrol et. Eğer PENDING veya RUNNING ise, aynı token ile sonucu almak için geri dönen statement_id kullanın:
curl --request GET \
--url "$DATABRICKS_HOST/api/2.0/sql/statements/<statement-id>" \
--header "Authorization: Bearer $DATABRICKS_TOKEN"
Statement durumu ve sonuç işleme hakkında Statement Execution API: Run SQL on warehouses için bkz.
Müşteriye ait kişisel verilere erişimin reddedildiğini kontrol edin
Aynı rol kapsamlı token ve warehouse kullanarak çalıştırın:
curl --request POST \
--url "$DATABRICKS_HOST/api/2.0/sql/statements" \
--header "Authorization: Bearer $DATABRICKS_TOKEN" \
--header 'Content-Type: application/json' \
--data "{
\"warehouse_id\": \"$DATABRICKS_SQL_WAREHOUSE_ID\",
\"statement\": \"SELECT 1 FROM support.customers.contact_details LIMIT 1\",
\"wait_timeout\": \"50s\"
}"
Eğer ifade hâlâ çalışıyorsa, sonucu önceki bölümde açıklandığı gibi alın. Sorgu, hizmet sorumlusunun kendi tokenı ile başarılı olsa da, status.error içinde bir izin hatasıyla başarısız olur. Sadece bir HTTP başarı yanıtı sorgunun başarılı olduğu anlamına gelmez. Eksik bir tablo, süresi dolmuş bir token veya bir depo hatası, rolun veri ayrıcalıklarının doğru yapılandırıldığını kanıtlamaz.
Denetim ilişkilendirmesini kontrol edin
Denetim attıfını doğrulama bölümünde açıklanan erişime sahip bir denetim okuyucusu kullanın.
system.access.audit içindeki test sorgusu olaylarını inceleyin: identity_metadata.run_as yetkilendiren rolü tanımlar, run_as_display_namerole-support-agent içerir ve run_by isteği başlatan hizmet sorumlusunu tanımlar. Denetim verileri gün boyunca güncellenir, bu yüzden yakın zamanda ortaya çıkan bir olay hemen görünmeyebilir.
Kimlik metaveri başvurusuna bakın.
Adım 6: Ajanı yapılandırmak
Ajanın Azure Databricks istemcisini workspace URL ve doğrulanmış rol kapsamlı token ile yapılandırın. Sadece bu tokenı ajana verin, hizmet yöneticisinin OAuth sırrını veya kapsamsız tokenını değil. Rolle sınırlı token, o tokenla yapılan talepleri sınırlar. Diğer oturumlarda hizmet sorumlusunun izinlerini kaldırmaz.
Python için Databricks SDK'sını kullanan bir ajan için, DATABRICKS_HOST ve DATABRICKS_TOKEN ayarlarını ajanın ortamında yapın, ardından istemciyi başlatın:
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
SDK, jetonu ortamdan birleşik kimlik doğrulama kullanarak okur. Erişim tokenı sağlamak, SDK'ya yeni bir token talep etmek için gereken kimlik bilgilerini sağlamaz. Uzun süreli bir ajan için, token süresi dolmadan önce güvenilir bir bileşenin rol kapsamına bağlı bir yedek token talep edip sağlamasını ayarlayın.
İsteğe bağlı: Bir geliştiricinin kimliğini kullanın
Kullanıcı-makine (U2M) kimlik doğrulama ile yerel test için, katılımcı bir geliştiriciye 3. Adım'da olduğu gibi role-support-agent üzerinde Assume izni verin. Geliştirici, Databricks CLI'yi yükleme veya güncelleme bölümünde tanımlandığı gibi Databricks CLI'sini yükler, ardından kendi oturum açma bilgileri ve ayrı bir profil kullanarak kimlik doğrulamasını sağlar:
databricks auth login --host <workspace-url> --profile support-agent
Geliştirici tarayıcıda altındaki role-support-agent seçeneğini seçer ve Devam'e tıklar, ardından o profil için tokenı alır:
databricks auth token --profile support-agent
Geliştirici, Adım 5'teki rol kapsamlı sorgu kontrolleri için geri dönen access_token öğesini DATABRICKS_TOKEN olarak kullanır. Bu talepler için denetim etkinlikleri geliştiriciyi run_by olarak tanımlar. Databricks CLI tarafından iade edilen token süresi dolar. Geliştirici gerektiğinde yeni bir token alır. Bkz. API (OAuth erişim tokenları).
Temizleme
Geçici bir test için, ajanın token yapılandırmasını kaldırın ve işiniz bittiğinde test için oluşturulan Assume iznini geri alın. Rolü silmeden önce, varlıklara sahip olup olmadığını veya diğer iş yükleri tarafından kullanılıp kullanılmadığını kontrol edin.
Sonraki Adımlar
| Resource | Description |
|---|---|
| Rol tabanlı erişim denetimi (RBAC) sınırlamaları | Rol oynarken hangi özelliklerin desteklenmediğini veya farklı davrandığını kontrol edin. |
| RBAC rollerini değiştirin | Bir rolü üstlenmek için desteklenen diğer yöntemleri kullanın. |