AI Agents · Ders

Araçlarda Erişim Denetimi

Araçlar, yalnızca aracının değil kullanıcının da yetkili olduğunu denetlemelidir — aracılar yetki sahibi değildir.

4. ders / 415 adım

Araçlarda Erişim Denetimi, CoddyKit'te ücretsiz bir AI Agents dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, AI Agents öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AI Agents kursu toplamda 4 dersten oluşur.

Bu dersin bazı bölümleri henüz çevrilmemiş olup İngilizce olarak gösterilmektedir.

Araçlar Yetki Sahibi Değildir

Model "bir araç çağırır", ancak gerçek ACTION işlemini kodunuz gerçekleştirir. İzinleri önemli olan agent değil, kullanıcıdır.

Yetkilendirmeyi yalnızca "agent böyle karar verdi" diye değil, USER kimliğine göre yapın.

Authorise at the Tool Boundary

def refund_order(order_id, *, user):
    order = db.get_order(order_id)
    if order.customer_id != user.id and not user.is_staff:
        raise PermissionError(f'User {user.id} cannot refund order {order_id}')
    return stripe.refund(order.payment_id)

Kullanıcı Bağlamını Aktarın

Kullanıcı nesnesini her araç çağrısına aktarın:

def dispatch(tool_call, user):
    args = json.loads(tool_call.function.arguments)
    fn = TOOLS[tool_call.function.name]
    return fn(**args, user=user)

Araç Bazında İzinler

Her rolün hangi araçları kullanabileceğini tanımlayın:

ROLE_TOOLS = {
    'customer': ['search_orders', 'open_ticket'],
    'support': ['search_orders', 'refund_order', 'cancel_order'],
    'admin': ['*']
}

visible_tools = [t for t in ALL_TOOLS if t.name in ROLE_TOOLS[user.role] or 'admin' in ROLE_TOOLS[user.role]]

Veri Erişimini Kapsamlandırma

Veritabanını sorgulayan araçlar kapsamı otomatik olarak kullanıcıya göre belirlemelidir:

def search_orders(query, user):
    # NEVER let the model bypass this WHERE clause
    return db.query('SELECT * FROM orders WHERE customer_id = %s AND ...', (user.id,))

Her Araç Çağrısını Denetleyin

Günlüğe şunları kaydedin: kim, ne yaptı, ne zaman yaptı, hangi argümanlarla yaptı ve sonuç ne oldu. Bir şeyler ters gittiğinde bu kayıtlar adli inceleme izinizdir:

audit_log({
    'user_id': user.id,
    'tool': tool_name,
    'args': args,
    'result_status': result.status,
    'timestamp': now()
})

Yıkıcı İşlemleri Onaylatın

Yetkili kullanıcılar için bile yıkıcı işlemleri ikinci kez doğrulayın:

def delete_account(user_id, confirmed=False, user=None):
    if not confirmed:
        return {'requires_confirmation': True, 'msg': 'Confirm deletion of account.'}
    db.execute('DELETE ...', (user_id,))

OAuth / Belirteç Kapsamlı Araçlar

Agent'ların dış hizmetlerde kullanıcı adına işlem yaptığı durumlarda OAuth belirteçlerinin kapsamını dar tutun:

# Token only has gmail.send scope, not gmail.read
send_email = build_with_token(user_token_scoped_send)

Hizmet Hesabı Sınırları

Agent'ın kendi hizmet hesabı, en az düzeyde izinlere sahip olmalıdır:

  • Analiz araçları için salt okunur veritabanı kullanıcısı
  • Müşteri başına ayrı S3 paketleri
  • VPC ile yalıtılmış ağlar

Rate Limits Per Tool

def ratelimit(key, per_user_per_day=10):
    counts = {}
    def decorator(func):
        def wrapper(user_id, *args, **kwargs):
            counts.setdefault(user_id, 0)
            if counts[user_id] >= per_user_per_day:
                print(f'{key}: user {user_id} rate limited')
                return None
            counts[user_id] += 1
            return func(user_id, *args, **kwargs)
        return wrapper
    return decorator

@ratelimit(key='tool:refund', per_user_per_day=2)
def refund_order(user_id, order_id):
    print(f'refunding order {order_id} for user {user_id}')
    return True

for i in range(3):
    refund_order('user1', f'order{i}')

Kullanıcıya Görünen İzin Arayüzü

Agent'ın kullanıcı adına neler yapabileceğini kullanıcıya gösterin. Araç bazındaki izinleri iptal etmesine olanak tanıyın. Bu, güven için kritik öneme sahiptir.

Kritik İşlemler İçin Yeniden Kimlik Doğrulama

Hassas araçların yeni bir kimlik doğrulaması gerektirmesini sağlayın (son oturum açma < 5 dakika önce olmalı):

if tool.is_sensitive and user.last_auth_age_seconds > 300:
    raise StaleAuthError('Please re-authenticate to perform this action.')

Yetkilendirmeyi Kod Gibi Test Edin

"Kullanıcı A, kullanıcı B'nin siparişini refund edemez" durumunu doğrulayan testler yazın; erişim denetimlerinin çalıştığını asla varsaymayın. Bunlar, agent güvenlik hatalarının bir numaralı kaynağıdır.

Yetkilendirme İlkesi

Agent bir araç çağırdığında kimin izinleri denetlenir?

Özet

Yetki sahibi kullanıcıdır. Kullanıcı kimliğini her araca aktarın. Verileri kullanıcıya göre kapsamlandırın. Her çağrıyı denetleyin. Yıkıcı işlemleri onaylayın. Yetkilendirmeyi kodu test ettiğiniz gibi test edin.

Başlamak ücretsiz

Yapay zeka eğitmeniyle AI Agents öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
60
Dersler
239

Sıkça Sorulan Sorular

“Araçlarda Erişim Denetimi” dersi ücretsiz mi?

Evet — “Araçlarda Erişim Denetimi” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve AI Agents kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AI Agents kursu toplamda 4 dersten oluşur.

“Araçlarda Erişim Denetimi” dersinde ne öğreneceğim?

Araçlar, yalnızca aracının değil kullanıcının da yetkili olduğunu denetlemelidir — aracılar yetki sahibi değildir. AI Agents ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

AI Agents öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te AI Agents, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“Araçlarda Erişim Denetimi” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu AI Agents dersinde kod yazıp çalıştırabilir miyim?

Evet. Her AI Agents dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. İstem Enjeksiyonuna Karşı Savunmalar
  2. Çıktı Filtreleme (Llama Guard, NeMo)
  3. Kod Aracıları için Yalıtılmış Çalıştırma
  4. Araçlarda Erişim Denetimi
← AI Agents Sayfasına Dön