ai coding agent remote server: güvenli kontrol politikası

Bir AI kodlama ajanının başsız bir sunucuyu yönetmesine izin veriyorsunuz — kullanışlı, ancak insan döngüsünde olmadan neler yapabileceğine karar vermediyseniz ürkütücü olabilir.
Bir AI kodlama ajanının başsız bir sunucuyu yönetmesine izin veriyorsunuz — kullanışlı, ancak insan döngüsünde olmadan neler yapabileceğine karar vermediyseniz ürkütücü olabilir. Bu rehber somut kurallar gösterir: doğrudan izin verilecekler, açık insan onayı gerektirenler, token ve oturum kapsamlandırması nasıl yapılır ve tek bir hata veya kötü niyetli promptun filonuzu ele geçirmemesi için ajan etkinliğini nasıl kaydeder ve sınırlandırırsınız.
Tehdit modeli ve pratik hedefler
Öncelikle önem verdiğiniz riski isimlendirin. Başsız bir kutuda komut çalıştırabilen bir AI kodlama ajanı: kodu değiştirebilir, dosya sızdırabilir, yazılım kurabilir, servisleri yeniden yapılandırabilir, ağ bağlantıları açabilir ve kalıcı erişim oluşturabilir. Ajanın yardımsever ama hata yapabilir olduğunu varsayıyoruz — yanlış akıl yürütmeden yıkıcı değişiklikler yapabilir veya özel olarak hazırlanmış bir prompt ile zorlanabilir.
Güvenli dağıtım için pratik hedefler:
- Sık kullanılan geliştirme görevlerine (build, test, run) tekrar eden insan sürtüşmesi olmadan izin verin.
- Ağ duruşunu değiştiren, kalıcı yazılım yükleyen veya sırları açığa çıkaran eylemler için insan onayı gerektirin.
- Tüm ajan eylemlerini denetlenebilir ve mümkünse geri alınabilir yapın.
- Ajanın etki alanını host düzeyinde kontrollerle sınırlayın (container'lar, kaynak limitleri, ağ beyaz listeleri).
Yetkinlikler: bir kodlama ajanının tipik ihtiyaçları
Her gün ihtiyaç duyulabilecek yetkinlikleri listeleyin, böylece her birini bir politika kararına eşleyebilirsiniz:
- Depodaki dosyaları okuma (kaynak, testler, yapılandırmalar).
- Testleri ve linter'ları çalıştırma, artefakt oluşturma, container'ları çalıştırma.
- Kaynak dosyalarını düzenleme ve değişiklikleri bir branch'e commit etme.
- Artefakt paketleyip iç registrilere yükleme.
- Bir servisi yeniden başlatma, migration çalıştırma veya staging ortamına deploy etme.
- Tanılama komutları çalıştırma (ps, netstat, df, journalctl).
Her yetkinlik izin verilen bir eyleme, sınırlı bir eyleme veya insan onayıyla gate'lenen bir eyleme bağlanmalıdır.
Politika: izin ver vs onay iste vs reddet (somut öneriler)
Politikaları basit ve role-odaklı tutun. Aşağıda uyarlayabileceğiniz pratik bir politika matrisi var. Kural: otomatik, salt-okunur ve kısa ömürlü işlem izin verilebilir. Kalıcı değişiklikler, ağ açığa çıkarma, gizli erişimi ve ayrıcalık yükseltmeleri insan onayı gerektirir.
| Action | Recommended Default | Why |
|---|---|---|
| Run tests, linters, unit suites | Allow | Read-only for repo; fast, reversible |
| Edit files and create commits on feature branches | Allow (branch-only) | Safe with code review before merge |
| Push to protected branches, merge to main | Require human confirmation | High blast radius; gate releases |
| Install packages globally or add system services | Require human confirmation | Installs persist across reboots and raise attack surface |
| Open inbound network ports / modify firewall | Require human confirmation (multi-approval) | Changes network exposure |
| Read secrets (passwords, keys) | Deny by default; provide scoped ephemeral credentials when needed | Secrets should not be accessible to an unattended agent |
| Upload artifacts to external registries | Confirm destination and credentials | Prevents accidental public leaks |
| Execute as root / sudo | Require human confirmation (deny by default) | Privilege escalation is the highest risk action |
Token, kimlik bilgileri ve gizli verilerin yönetimi
Ajana uzun ömürlü, geniş kapsamlı kimlik bilgileri asla vermeyin. En az ayrıcalık prensibiyle kısa ömürlü token'lar ve denetlenebilir verilme modelleri kullanın.
- Onay servisi üzerinden geçici (ephemeral) token'lar verin. Token'lar dakikalar boyunca geçerli, tek iş/oturuma bağlı olsun.
- Token'ları dar kapsamda tanımlayın: repository:read, registry:upload:staging, service:restart:staging, vb.
- Özel anahtarları veya vault root token'larını ajana açmayın. Bunun yerine, isteğe bağlı olarak bir vault'tan ephemeral kimlik bilgileri mint edin ve her verileni kaydedin.
- Şüpheli etkinlikte döndürün veya iptal edin. Ajan tekrar tekrar reddedilen eylemler denediğinde iptali otomatikleştirin.
İzolasyon: ajanı host üzerinde nasıl çalıştırmalı
Ajani sınırlayan bir ortamda çalıştırın. Aşağıda en azdan en çok izolasyona doğru sıralanmış pratik stratejiler var:
- Chroot veya user namespace ile sıkı dosya sistemi mount'ları. Ajan'a yalnızca depo ağacını ve minimal bir temp alanı verin.
- Çalıştırmayı container'laştırın: ajan işleri ephemeral container'lar (OCI) içinde çalışsın. Capabilities'leri kısıtlayın, yalnızca gerekli volume'leri mount edin ve NET_ADMIN'i kaldırın.
- Ephemeral VM imajları: daha riskli işlemler için işi tek kullanımlık bir VM'de çalıştırın ve iş tamamlandıktan sonra yok edin.
- Ağ egress beyaz listeleri: ajan'ın sadece gerekli hostlara (örn. paket kayıtları) çıkışına izin verin ve varsayılan olarak diğer tüm trafiği engelleyin.
- Kaynak sınırları: kaçak build'lerin DoS yaratmasını önlemek için CPU, bellek ve disk kotası uygulayın.
Yeniden oluşturma ve yeniden başlatmayı ucuz hale getirin. İzolasyonunuz ephemeral VM'ler veya container'lara dayanıyorsa, yok etme ve tekrar sağlama prosedürlerini olay planınızda prova edin.
Onay UX: pratik insan onayı akışları
İnsan onayı, politikanın ürünle kesiştiği yerdir. Onayları sürtüşmeyi azaltacak şekilde hızlı, ancak onaylayanların riski anlayacağı kadar açık tutun.
- Ajan adlandırılmış bir eylem ister: örn. "Install package xglob@1.2.3 on staging" veya "Merge branch feature/ai-fix into main".
- İstek kısa bir açıklama ve diff veya komut önizlemesi içerir. Etkilenen dosyaları, ağ kurallarını ve hangi kimlik bilgileri kullanılacağını gösterin.
- Düşük riskli eylemler için tek onaylayıcı gerektirin (root olmayan staging deploy'ları). Yüksek riskli eylemler için iki onaylayıcı veya nöbetçi mühendisi gerektirin (root kurulumu, firewall değişiklikleri).
- Zaman damgalı onay, kimlik bilgisi (2FA oturumu veya SSO token) ve isteğe bağlı yorum.
- Onay, ajanın kısa bir pencere içinde (örn. 10 dakika) kullanması gereken zaman sınırlı bir token verir.
Denetim, gözlemlenebilirlik ve işlem sonrası kontroller
Her ajan eylemini görünür ve mümkünse geri alınabilir yapın. İyi denetim ve gözlemlenebilirlik, ortalama tespit süresini azaltır ve iyileşmeyi hızlandırır.
- Her çalıştırılan adım için tam komut metnini, ortam değişkenlerini ve çalışma dizinini kaydedin.
- Her dosya değişikliği için diff yakalayın ve bunları eklenemez (append-only) bir denetim günlüğünde saklayın.
- Hangi token'ların verildiğini, kime ve neden verildiğini kaydedin; şüpheli etkinlikle ilişkili token'ları iptal edin.
- Oturum çıktısını log altyapınıza akıtın (saklama süresi boyunca saklayın). Hassas çıktıları şifresiz saklamaktan kaçının; log'ları potansiyel olarak hassas kabul edin.
- Feasible olduğunda otomatik geri alma sağlayın: artefakt snapshot'ları ve Terraform/Ansible planları saklayın, böylece deploy'u hızlıca geri alabilirsiniz.
Uyumluluk ve delil için ayrıca kimlik bağlamlarını da ekleyin: ajan isteklerini tetikleyen kullanıcı veya servisle eşleştirin (web UI tıklamaları, webhook kimliği veya zamanlayıcı iş id'si).
Örnek politika JSON (minimal, gerçek dünya)
{
"policy_name": "ai-agent-ci-policy",
"defaults": {
"allow_tests": true,
"allow_branch_commits": true,
"allow_protected_branch_push": false,
"require_human_for_install": true,
"require_human_for_sudo": true,
"allow_secret_read": false
},
"scopes": [
{ "name": "repo:read", "duration_minutes": 60 },
{ "name": "repo:write:feature-branch", "duration_minutes": 10 }
],
"approval": {
"low_risk": { "approvers": 1, "token_ttl_minutes": 10 },
"high_risk": { "approvers": 2, "token_ttl_minutes": 5 }
}
}Relay'i self-host etme zamanı ve yönetilen relay kullanma zamanı
Uzak oturum yönlendirmesi önemlidir çünkü birçok ajan eylemi bir relay aracılığıyla başsız sunucuya ulaşacaktır (NAT geçişi, firewall atlama). Tenvo'nun yönetilen relay'i varsayılan olarak önerilir: çok bölge failover, her aygıta özel sertifikalarla TLS ve production sınıfı bir relay ağı sağlar — Free $0 / Lite $2.99/mo / Pro $7.99/mo. Kendi relay'inizi çalıştırmanız gerektiği yazılı bir gereksiniminiz yoksa yönetilen relay'i kullanın (kesin veri yerleşimi kuralları, izole ağlar veya üçüncü taraf altyapısını yasaklayan uyumluluk zorunlulukları gibi).
Önemli güvenlik gerçeği: TLS bir relay'de sonlandırılır. Doğrudan peer-to-peer bağlantılar host'lar arasında uçtan uca olsa da trafik relay'e düştüğünde relay TLS'yi sonlandırır ve oturum trafiğini gözlemleyebilir. Politikanızı ve güven sınırlarınızı buna göre tasarlayın. Bunu kabul edemiyorsanız, kendi relay'inizi self-host edin ve operasyonel maliyetlerini (patch'leme, sertifika yenileme, on-call) kararınıza dahil edin.
Canlıya almadan önce operasyonel kontrol listesi
- Kısa bir politika matrisi (allow/confirm/deny) tanımlayın ve ekibinize yayınlayın.
- Ephemeral credential mint etme ve kısa token TTL'leri uygulayın.
- Ajan çalıştırmalarını container'laştırın ve ağ egress beyaz listelerini zorlayın.
- Kısa ömürlü token veren ve onaylayıcı kimliğini kaydeden bir onay akışı uygulayın.
- Kapsamlı denetim loglamasını etkinleştirin ve log'ları uyumluluk ihtiyaçlarına göre saklayın.
- Döndürme ve geri alma çalışmaları yapın: kötü niyetli bir ajan simüle edin ve containment pratiği yapın.
İleri okuma ve ilgili konular
Daha fazla uzak erişim bağlamı istiyorsanız, Tenvo'nun ajan kontrolü ve güvenlik üzerine parçalarını okuyun. AI ajanlarının masaüstlerini kontrol etmesiyle ilgili politika ve araçlar için bkz. ai agent remote desktop: politikalar, onaylar, denetim. Altta yatan uzak erişim tehdit modeli için bkz. Is Remote Desktop Secure? An Honest Threat Model. Oturumlar için denetlenebilir izler tasarlamak istiyorsanız, Remote Desktop Audit Logging'a bakın.
Bu içerikler pratik uzak erişim temellerine dayanır — başsız bir kutuya hızlıca bağlanmak için hızlı bir nasıl yapılır istiyorsanız, How to Set Up Remote Access in 60 Seconds makalemiz hızlı bir başlangıçtır.
Son notlar
Bir AI kodlama ajanının bir sunucuyu yönetmesine izin vermek güçlüdür. Doğru varsayılanlar üretken yaparken tehlikeli hale getirmez: ephemeral, önce-okuma eylemlerine izin verin; kalıcı ve ayrıcalık-değiştiren işlemleri insan onayının arkasına alın; ephemeral kimlik bilgileri kullanın; ajanı kısıtlı bir ortamda çalıştırın; ve her şeyi kaydedin. Kendi relay'inizi self-host etme için somut, belgelenmiş bir gereksiniminiz yoksa Tenvo'nun yönetilen relay'ini tercih edin. İptal ve olay tatbikatları planlayın — containment operasyonel bir yetenektir, bir onay kutusu değil.
Altyapınızda kontrollü bir kurulum denemeye hazır mısınız? Tenvo'nun istemcilerini indirin ve staging-yalnızca bir politika ile başlayın: Tenvo'yu indir.
Kendiniz denemeye hazır mısınız?
30 cihaza kadar ücretsiz, kredi kartı gerekmiyor. İki dakikada kurulur ve bağlanır.