Proje Ustalığıders 6/8
DERS 2.6 Env ve secret: şifrelerin evi
KAZANIM Bu dersin sonunda: anahtar ve şifreleri sızdırmayacak düzeni kurar, sızıntıda doğru sırayla müdahale edersin.
1TanımOrtam değişkeni = ortama göre değişen ayar; secret = şifre değerindeki ayarlar (API anahtarları, veritabanı bağlantısı). Evleri: yerelde .env dosyası (repoya GİRMEZ), canlıda barındırma panelinin ortam-değişkenleri bölümü.
2İşlev ve amaçTek cümlelik yasa: koda yazılan şifre, çalınmış şifredir. Repo bir gün paylaşılır, yedeklenir, sızar — içindeki anahtar da onunla gezer. Anahtarın kod dışında yaşaması, sızıntıyı yapısal olarak önler.
3Nasıl yapılır(1) Proje kurulurken .env'nin repo-dışı listede (.gitignore) olduğunu doğrulatın: "'.env' dosyası git'e girmiyor, doğru mu? Kanıtla." (2) Yeni bir hizmet bağlanırken (Resend, ödeme...) anahtarı .env'ye siz yapıştırın — sohbete yapıştırmak zorunda değilsiniz; "anahtarı .env'ye NE adla koyacağımı söyle, ben koyarım" deyin. (3) Canlıya çıkarken aynı değişkenleri barındırma paneline girin — "canlı için hangi ortam değişkenlerini panele girmem gerekiyor, liste çıkar" isteyin ve listeyi tek oturuşta girin.
4Ne ters gider + çözümüKaza 1: anahtar yanlışlıkla koda/repoya girdi. Çözüm: sadece silmek YETMEZ (tarihçede durur) — anahtarı hizmet panelinden iptal edip (rotate) yenisini alın; sonra dosyadan temizleyin. Kaza 2: "yerelde çalışıyor, canlıda çalışmıyor" — klasik sebep: değişken panele girilmemiş. Çözüm: canlı hata + "environment variable" kelimesini görünce önce panel kontrolü. Kaza 3: boş değer — panel arayüzü bazen değeri sessizce boş kaydeder; girdikten sonra kaydedilen değerin gerçekten dolu olduğunu panelden teyit edin.
5AlternatiflerTakım büyüyünce secret yöneticisi araçlar devreye girer; tek kişilik üründe .env + panel ikilisi yeterli ve standarttır.
6Denetim penceresiPeriyodik tarama istemi: "Bu repoda koda gömülü anahtar/şifre/bağlantı adresi var mı tara; şüpheli her bulguyu dosya adıyla listele." Kırmızı bayraklar: kod içinde sk-, key=, uzun rastgele karakter dizileri · .env'nin repoda görünmesi. Bu tarama, mezuniyet görevinizin de parçası.
7Mini egzersiz (KENDİ-PROJEN)Denetle (bu ders üretmeden denetler): mevcut bir projenizde 6. bölümdeki tarama istemini çalıştırın. Bulgu çıkarsa: anahtarı panelden yenileyin, dosyayı temizletin, .gitignore'u doğrulatın — üç adımı sırasıyla.
8Kontrol soruları(1) "Koda yazılan şifre çalınmış şifredir" — neden? (2) Repoya sızan anahtarda ilk hamle silmek midir, değilse nedir? (3) "Yerelde çalışıyor canlıda çalışmıyor"un klasik sebebi?
9Mentor istemi
AI Maestro Seviye 2 Ders 2.6'nın (env/secret) hocası ol. Secret kavramını "ev anahtarını
paspasın altına yazmak" metaforuyla anlat. Bana bir sızıntı senaryosu ver; doğru
kurtarma sırasını kurayım, değerlendir. Sonunda 3 kontrol sorusu.