Secrets yönetimi
- Node.js kursu
- İleri seviye
- Ders 71/83
- 5 dk
Secrets yönetimi ve güvenli depolamayı öğrenirsin.
Secrets (gizli bilgiler)
Secrets, parola, API anahtarı, sertifikalar gibi hassas bilgilerdir. Bunlar asla koda gömülmemeli; her zaman ortam değişkeni veya bir secrets yönetim aracından okunmalıdır. Sürüm kontrolüne sızdırmak büyük güvenlik açığıdır.
Örnek: const apiKey = process.env.API_KEY;. API_KEY bir .env dosyasında tutulur; .env .gitignore'a eklenir. Üretimde secrets, AWS Secrets Manager veya HashiCorp Vault gibi araçlarla yönetilir. Kod hiçbir zaman parolayı doğrudan içermez. Eğer bir parola yanlışlıkla koda gömülürse ve sürüm kontrolüne işlenirse, geçmiş sürümlerde kalır; bu yüzden parola hemen döndürülmelidir. Secrets yönetimi, güvenli uygulama geliştirmenin temelidir.
Secrets yönetim araçları
Üretimde secrets bir .env dosyasında değil, merkezi bir araçta tutulur. Popüler araçlar: AWS Secrets Manager, HashiCorp Vault, Google Secret Manager. Uygulama açılırken bu araçtan secrets'i çeker.
Örnek: AWS Secrets Manager'dan secret çekme genellikle const client = new AWS.SecretsManager(); const secret = await client.getSecretValue({ SecretId: "my-app" }).promise(); şeklinde olur. Vault'ta benzer bir API vardır. Bu araçlar, secrets'i şifreler, erişimi denetler ve döndürme kolaylaştırır. Çok sayıda servisin olduğu sistemlerde her servis ayrı secret'e sahip olur; merkezi yönetim bunu kolaylaştırır. .env yalnızca geliştirmede kullanılır; üretimde asla.
Uygulama API_KEY'i oku
dotenv'i etkinleştir. const apiKey = process.env.API_KEY ile API anahtarını oku. console.log ile apiKey'i yazdır.
Başlangıç kodu
// dotenv etkinleştir
// buraya yaz
// API_KEY değişkenini oku
// buraya yaz
// apiKey yazdır
// buraya yazÖrnek çözüm
require("dotenv").config();
const apiKey = process.env.API_KEY;
console.log(apiKey);Beklenen çıktı
test-key
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 .gitignore satırını tamamla
____
.env
Açıklama: .env .gitignore'a eklenir.
2 Aracı rolüne eşle
| Kavram | Anlamı |
|---|---|
AWS Secrets Manager |
AWS secrets aracı |
HashiCorp Vault |
Açık kaynak secrets aracı |
.env + .gitignore |
Geliştirme yöntemi |
process.env.API_KEY |
Koddan erişim |
3 Parola nerede tutulmalıdır?
const apiKey = process.env.API_KEY- Sürüm kontrol sisteminde
- Doğrudan kaynak kodda
- Ortam değişkeninde veya secrets aracında Doğru cevap
- Log dosyalarında
Açıklama: Parola ortam değişkeninde veya secrets aracında tutulur.