deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak dev.to (home feed)

.mcp. içinde canlı API anahtarları: dev.to yazarı MCP sunucuları için bir secrets runner yayınladı

Bir dev.to yazısı, yaygın MCP kurulum deseninin .mcp. dosyalarında canlı API anahtarları bıraktığını savunuyor ve başlangıçta Vault, 1Password veya Infisical'dan secret'ları enjekte eden bir runner yayınlandı.

.mcp. içinde canlı API anahtarları: dev.to yazarı MCP sunucuları için bir secrets runner yayınladı

Başlık

dev.to'da yayınlanan bir yazı, MCP (Model Context Protocol) sunucularını yapılandırmanın en yaygın yolunun, canlı üretim kimlik bilgilerini düz metin yapılandırma dosyalarında bıraktığını savunuyor — ve protokolün kendisiyle değil, bu alışkanlığın şirketlerdeki güvenlik incelemelerinde MCP dağıtımlarını batırdığını belirtiyor.

Yazının yazarı, dev.to kullanıcısı wiktormalyska, bu soruna çözüm olacak bir araç da geliştirdi: mcp-secrets-runner, başlangıçta bir secret yöneticisinden secret'ları çekip ardından gerçek MCP sunucusunu başlatan, MIT lisanslı, bağımlılığı olmayan bir Node paketi.

Anahtarlar commit'leniyor, ekran görüntüsüne giriyor ve yapıştırılıyor

Neredeyse her MCP kurulum rehberi aynı deseni gösteriyor: .mcp. yapılandırma dosyası ortam değişkenlerini doğrudan sunucu sürecine geçiriyor, böylece Stripe secret anahtarı dosyanın içinde düz bir metin olarak kalıyor. Yazıya göre bu dosyalar rutin olarak depolara commit'leniyor, makineler arasında senkronize ediliyor, eğitim ekran görüntülerinde yakalanıyor ve hata raporlarına yapıştırılıyor — yazar, bu dört durumun tamamında canlı Stripe anahtarları gördüğünü yazıyor.

Yazarın deneyimine göre, bir şirkette MCP benimsenmesinin güvenlik incelemesinde takılmasının tek en büyük nedeni bu. Protokol değil, araçlar değil — yapılandırma dosyası.

Bariz çözüm oturumunuzla birlikte sona eriyor

Sunucu başlatmayı bir secret yöneticisinin CLI'ı içine sarmak anahtarı dosyadan kaldırıyor ama yeni bir hata modunu beraberinde getiriyor. Bu CLI'lar genellikle işletim sistemi anahtarlığında saklanan bir geliştirici oturumuyla kimlik doğrulaması yapıyor ve oturumlar sona eriyor. Bir oturum sona erdiğinde, bu şekilde sarmalanmış tüm MCP sunucuları aynı anda çalışmayı durduruyor ve secret yöneticilerinden hiçbir şey bilmeyen MCP client'ı genel bir başlatma hatası bildiriyor. Yazar, deseni fark etmeden önce bir öğleden sonrasını buna harcadığını anlatıyor.

Süreç başlangıcında makine kimlikleri

Yazının çözümü, ciddi her secret yöneticisinin zaten sahip olduğu bir kavrama dayanıyor: insanlar için değil makineler için tasarlanmış, kendi süresi dolmayan bir kimlik bilgisi. Infisical buna machine identity, 1Password service account, HashiCorp Vault ise AppRole diyor. Bu kimlik bilgisi uzun ömürlüdür; ürettiği token'lar ise kısa ömürlüdür ve süreç başlangıcında el değiştirir.

mcp-secrets-runner, MCP client'ı ile sunucu arasında yer alır: makine kimlik bilgisiyle kimlik doğrulaması yapar, secret'ları çeker ve ardından gerçek sunucuyu çalıştırır. Yapılandırma dosyasında hiçbir secret değeri bulunmaz ve yazar, ortamında makine kimlik bilgisi olan her makinede aynı yapılandırmanın çalıştığını belirtiyor — yapılandırmayı commit'lemenin güvenli olmasını sağlayan da budur.

Araç üç backend'i destekliyor ve yazar, bunların hiçbirinin aynı şekilde çalışmadığına dikkat çekiyor: Infisical HTTPS üzerinden bir token basar ve ardından Infisical CLI'ına devreder; 1Password, kendi kendine kimlik doğrulaması yapan op run'a devreder; Vault ise secret'ı HTTP API'si üzerinden okur ve MCP sunucusunu hiçbir CLI olmadan doğrudan başlatır.

Client'ın açıklayamadığı hataları teşhis etmek

MCP client'ları birkaç farklı başlatma hatasını aynı şekilde bildirdiği için, runner bir doctor komutuyla birlikte geliyor; bu komut olağan şüphelileri tek tek kontrol ediyor: eksik CLI, eksik kimlik bilgileri, yanlış instance URL'i, okunamayan secret yolu.

İki uygulama detayı öne çıkıyor. Tüm tanılama çıktıları stderr'e gidiyor, çünkü stdout MCP protokolüne aittir — tek bir sapmış bayt bile JSON-RPC akışını bozar ve hiçbir yere işaret etmeyen bir parse hatası üretir. Ayrıca runner kapalı failure modunda çalışıyor: kimlik bilgileri mevcutsa ama kimlik doğrulaması başarısız olursa süreçten çıkar, çünkü alternatifi — kimlik bilgisi olmayan bir CLI çağrısının etkileşimli bir tarayıcı oturumu açması — MCP sunucusunu stdin'de süresiz olarak askıya alırdı.

Neden önemli

MCP, yapay zeka ajanlarını harici araçlara bağlamanın standart yolu haline geliyor; bu da gerçek izinlere sahip API anahtarlarının — ödemeler, veritabanları, bulut hesapları — artık geliştiricilerin sıradan proje ayarları gibi davrandığı yapılandırma dosyalarına yapıştırıldığı anlamına geliyor. .mcp. alışkanlığı, eski bir sorunu — dotfile'lardaki secret'ları — yapılandırmaların alışılmadık derecede hafife alınarak paylaşıldığı bir ekosisteme taşıyor. Yazı, ajan araçları için daha ince bir ders de çıkarıyor: bir sarmalayıcı başarısız olduğunda, hata nedenine hiçbir görünürlüğü olmayan bir client'ta ortaya çıkar. Stdout'u temiz tutan, tanılamaları stderr'e loglayan ve kapalı failure modunda çalışan araçlar, tek satırlık bir teşhis ile kaybedilmiş bir öğleden sonra arasındaki farktır.

  • #mcp
  • #api-security
  • #secrets-management
  • #developer-tools
  • #ai-agents

İlgili yazılar