Kasa ve Gizli Bilgi Depoları
Vault benzeri araçlarla gizli bilgileri merkezileştirme.
Kasa ve Gizli Bilgi Depoları, CoddyKit'te ücretsiz bir Cyber Security Academy dersidir. Bu, 4 dersinin 2. 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, Cyber Security Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cyber Security Academy kursu toplamda 4 dersten oluşur.
Gizli Bilgi Deposunun Çözdüğü Sorunlar
Bir gizli bilgi deposu (veya kasa), tek amacı gizli bilgileri saklamak, erişimi denetlemek ve bu erişimi denetlemeyi sağlayan merkezi, güvenliği güçlendirilmiş bir hizmettir. Dağınıklığa yol açan dosyaların ve ortam değişkenlerinin yerini alır.
İyi bir gizli bilgi yöneticisi dört temel yetenek sunar:
- Merkezi depolama gerçeğin tek yetkili kaynağı.
- Erişim denetimi her bir gizli bilgiyi kimin ve neyin okuyabileceğini belirleyen ayrıntılı ilkeler.
- Denetim günlüğü kaydı olay müdahalesi için her erişimin kaydı.
- Şifreleme gizli bilgilerin hem saklanırken hem de aktarılırken şifrelenmesi.
Örnekler arasında HashiCorp Vault, AWS Secrets Manager, Azure Key Vault ve GCP Secret Manager bulunur.
HashiCorp Vault'un Yapısı
HashiCorp Vault, popüler bir açık kaynak gizli bilgi yöneticisidir. İşlevleri, yollara bağlanan eklenti olarak kullanılabilen gizli bilgi motorları hâlinde düzenler.
- KV motoru statik anahtar-değer gizli bilgilerini saklar.
- Veritabanı motoru dinamik ve kısa ömürlü veritabanı kimlik bilgileri oluşturur.
- PKI motoru isteğe bağlı olarak TLS sertifikaları verir.
- Transit motoru anahtarları açığa çıkarmadan hizmet olarak şifreleme sunar.
Vault ile bir HTTP arayüzü veya CLI üzerinden etkileşim kurarsınız. Her yol, orada kimin okuma veya yazma yapabileceğini belirleyen ilkelerle yönetilir.
# Enable a KV v2 secrets engine at the 'secret/' path
vault secrets enable -path=secret kv-v2
# Write and read a static secret
vault kv put secret/app/db password='S3cr3t' user='app'
vault kv get secret/app/dbMühürleme ve Mühür Açma Modeli
Vault, verilerini mühürleme/mühür açma mekanizmasıyla korur. Vault başlatıldığında mühürlüdür; şifrelenmiş verilerin nerede olduğunu bilir, ancak bunların şifresini çözemediği için okuyamaz.
Depolamanın şifresini çözen ana anahtarın kendisi de bir mühür açma anahtarıyla şifrelenir. Shamir's Secret Sharing kullanılarak bu mühür açma anahtarı birden fazla parçaya bölünür ve farklı operatörlere dağıtılır.
Anahtarı yeniden oluşturup Vault'un mührünü açmak için yapılandırılabilir bir eşik (ör. 5 parçadan 3'ü) sağlanmalıdır. Hiç kimse mührü tek başına açamaz; bu da içeriden gelecek tehditlere karşı koruma sağlar.
# Initialize Vault: 5 key shares, threshold of 3 to unseal
vault operator init -key-shares=5 -key-threshold=3
# Each operator supplies one shard until threshold is met
vault operator unseal <shard-1>
vault operator unseal <shard-2>
vault operator unseal <shard-3>Kimlik Doğrulama: Siz Kimsiniz?
Bir gizli bilgiyi okumadan önce istemci, bir belirteç almak için kimlik doğrulaması yapmalıdır. Vault, farklı kimliklere göre uyarlanmış birçok kimlik doğrulama yöntemi destekler:
- AppRole uygulamalar ve CI sistemleri içindir (rol kimliği + secret kimliği).
- Kubernetes pod'un hizmet hesabı belirtecini kullanır.
- AWS/GCP/Azure IAM bulut platformunun kimliğine güvenir.
- OIDC/LDAP SSO aracılığıyla insan kullanıcılar içindir.
Temel ilke şudur: kimlik platformdan gelir, uzun ömürlü bir paroladan değil. Bir Kubernetes pod'u kim olduğunu kendi hizmet hesabı belirtecini kullanarak kanıtlar; sızdırılabilecek bir başlangıç secret'ına gerek yoktur.
# App authenticates via AppRole to receive a token
vault write auth/approle/login \
role_id="db-app-role" \
secret_id="$WRAPPED_SECRET_ID"
# Response includes client_token used for subsequent readsİlkelerle Yetkilendirme
Kimlik doğrulama kimliği kanıtlar; ilkeler ise bu kimliğin neler yapabileceğine karar verir. Vault ilkeleri HCL ile yazılır ve en az ayrıcalık ilkesini izler; yalnızca bir iş yükünün ihtiyaç duyduğu yolları ve yetenekleri verir.
Bu ilke, bir hizmetin yalnızca kendisine ait veritabanı secret'ını okumasına ve başka hiçbir şey yapmamasına izin verir:
Yetenekler arayüz eylemlerine karşılık gelir: read, create, update, delete ve list. Varsayılan olarak reddedin, açıkça izin verin.
# policy: billing-app.hcl
path "secret/data/billing/*" {
capabilities = ["read"]
}
path "database/creds/billing-readonly" {
capabilities = ["read"]
}
# everything else is implicitly deniedBulut Yerel Gizli Bilgi Depoları
Tek bir bulutta çalışıyorsanız, sağlayıcının yönetilen deposu operasyonel yükü ortadan kaldırır; mühürleme veya mühür açma gerekmez, düzeltme uygulanacak sunucular bulunmaz:
- AWS Secrets Manager, IAM ile tümleşir ve yerleşik yenileme Lambda'larını destekler.
- Azure Key Vault, gizli bilgileri, anahtarları ve sertifikaları RBAC ile saklar.
- GCP Secret Manager, IAM bağlarıyla korunan sürümlendirilmiş gizli bilgiler sunar.
Erişim, bulutun IAM sistemi tarafından yönetilir; bu nedenle bir iş yükü ayrı bir parola kullanmak yerine mevcut rolüyle bir gizli bilgiyi okur. Bunun karşılığında Vault'a kıyasla sağlayıcı bağımlılığı ve daha zayıf çoklu bulut desteği söz konusudur.
# Read a secret from AWS Secrets Manager (workload uses its IAM role)
aws secretsmanager get-secret-value \
--secret-id prod/billing/db \
--query SecretString --output text
# GCP equivalent
gcloud secrets versions access latest --secret=billing-dbHizmet Olarak Şifreleme
Bazen bir secret'ı hiç depolamak istemezsiniz; uygulamanızın şifreleme anahtarını hiçbir zaman elinde tutmadan uygulama verilerini şifrelemek istersiniz. Vault'un Transit motoru tam olarak bunu yapar.
Uygulama düz metni Vault'a gönderir, karşılığında şifreli metni alır ve anahtarı hiçbir zaman görmez. Şifre çözme de aynı şekilde çalışır. Buna hizmet olarak şifreleme denir.
Faydası şudur: Anahtarlar yalnızca Vault'un içinde bulunur, merkezi olarak yenilenebilir ve ele geçirilmiş bir uygulama hiç sahip olmadığı bir anahtarı sızdıramaz.
# Encrypt data without the app ever seeing the key
vault write transit/encrypt/orders-key \
plaintext=$(echo -n 'card=4111...' | base64)
# returns: ciphertext=vault:v1:abc123...
# Decrypt later
vault write transit/decrypt/orders-key ciphertext='vault:v1:abc123...'Gizli Bilgileri İş Yüklerine Aktarma
Bir kasa, uygulamalar gizli bilgileri yolu veya belirteci sabit kodlamadan kullanabiliyorsa işe yarar. Yaygın aktarım biçimleri şunlardır:
- Yan kapsayıcı/aracı bir Vault Agent uygulamanın yanında çalışır, kimlik doğrulaması yapar ve gizli bilgileri paylaşılan bellek içi bir birime yazar.
- CSI sürücüsü Kubernetes, Secrets Store CSI sürücüsü aracılığıyla gizli bilgileri dosya olarak bağlar.
- SDK ile çekme uygulama başlangıçta doğrudan kasa arayüzünü çağırır.
Gizli bilgileri ortam değişkenleri yerine bellek içi bir dosya sistemine (tmpfs) bağlamayı tercih edin ve kalıcı hâle gelebilecekleri diske yazmaktan kaçının.
# Vault Agent template renders a secret to an in-memory file
template {
contents = "DB_PASS={{ with secret \"secret/app/db\" }}{{ .Data.data.password }}{{ end }}"
destination = "/run/secrets/db.env"
}Denetim Günlüğü ve Hesap Verebilirlik
Bir kasadaki her okuma, yazma ve kimlik doğrulama olayı bir denetim günlüğüne kaydedilmelidir. Gizli bilgi yönetiminin bir olay sırasında gerekçelendirilebilmesini sağlayan şey budur.
Denetim günlükleri şu kritik soruları yanıtlar: kim, hangi gizli bilgiye, ne zaman ve nereden erişti. Vault, günlüklerdeki hassas değerleri karma değerlerine dönüştürür; böylece günlüğün kendisi gizli bilgileri açığa çıkarmaz.
Denetim günlüklerini, kurcalandığı anlaşılabilecek ayrı bir sisteme (SIEM) gönderin; böylece kasa ana bilgisayarını ele geçiren bir saldırgan, eriştiği şeylere ilişkin kanıtları da silemez.
# Enable a file audit device (HMAC-hashes secret values)
vault audit enable file file_path=/var/log/vault/audit.log
# Forward to a SIEM/syslog endpoint for tamper resistance
vault audit enable syslog tag="vault" facility="AUTH"Kasanın Kendini Koruma Altına Alması
Merkezi bir depo, kasa devre dışı kalırsa her şey devre dışı kalacağından riski tek bir noktada toplar. Kasanın güvenliğini en kritik varlığınızmış gibi güçlendirin:
- Tüm uç noktalarda TLS kullanın; uygulama programlama arayüzünü asla şifrelenmemiş olarak dışa açmayın.
- Kasayı, katı güvenlik duvarı kurallarının arkasındaki özel ağda tutun.
- Elle parça yönetmek zorunda kalmamak için bulut KMS üzerinden otomatik mühür açmayı etkinleştirin; ancak bu KMS anahtarını sıkı biçimde koruyun.
- Kısa TTL değerlerine sahip belirteçler ve yenilenebilir kira süreleri kullanarak çalınan belirteçlerin hızla geçersiz olmasını sağlayın.
- Güvenlik yamalarını zamanında uygulayın ve anormallikleri saptamak için denetim günlüklerini izleyin.
Kasa, çok sayıdaki arıza noktasını güvenliği son derece güçlü tek bir noktada toplar.
Doğru Depoyu Seçme
Tek bir en iyi araç yoktur; depoyu ortamınıza uygun seçin:
- Tek bulut, basit gereksinimler: en düşük işletim yükü için bulut sağlayıcısının yerleşik yöneticisini (AWS/Azure/GCP) kullanın.
- Çoklu bulut veya şirket içi: HashiCorp Vault tutarlı ve taşınabilir bir soyutlama sunar.
- Dinamik gizli bilgilere veya hizmet olarak şifrelemeye gereksiniminiz varsa: Vault'un motorları en yetenekli seçenektir.
- Kubernetes ağırlıklı: bir depoyu CSI sürücüsüyle veya External Secrets gibi bir operatörle birlikte kullanın.
Ne seçerseniz seçin amaç aynıdır: dağınık düz metinlerin yerine denetlenen ve erişim denetimine tabi tek bir doğru kaynağı koymak.
Hızlı Kontrol
Vault'un koruma modelini anlayıp anlamadığınızı sınayın.
Özet: Vault'lar ve Gizli Bilgi Depoları
Dağınık gizli bilgileri merkezi ve denetlenen bir depoyla nasıl değiştireceğinizi öğrendiniz.
- Bir gizli bilgi deposu merkezi depolama, erişim denetimi, denetim günlüğü kaydı ve şifreleme sağlar.
- HashiCorp Vault, eklentiyle genişletilebilen gizli bilgi motorları ve Shamir'in Gizli Bilgi Paylaşımı ile korunan bir mühürleme/mühür açma modeli kullanır.
- Kimlik doğrulama yöntemleri kimliği platformdan (Kubernetes, IAM, AppRole) türetir ve ilkeler en az ayrıcalığı zorunlu kılar.
- Bulut-yerel depolar (AWS, Azure, GCP), düşük işletim yükü karşılığında taşınabilirlikten ödün verir.
- Transit motoru, uygulamaların anahtarları hiçbir zaman elinde tutmaması için hizmet olarak şifreleme sunar.
- Gizli bilgileri aracılar veya CSI aracılığıyla bellek içi depolamaya aktarın, her erişimi günlüğe kaydedin ve kasanın güvenliğini en kritik varlığınızmış gibi güçlendirin.
Sırada, gizli bilgileri dinamik ve kısa ömürlü olarak oluşturarak onları daha da güvenli hale getireceğiz.
Yapay zeka eğitmeniyle Cyber Security Academy öğ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
- 76
- Dersler
- 303
Sıkça Sorulan Sorular
“Kasa ve Gizli Bilgi Depoları” dersi ücretsiz mi?
Evet — “Kasa ve Gizli Bilgi Depoları” 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 Cyber Security Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cyber Security Academy kursu toplamda 4 dersten oluşur.
“Kasa ve Gizli Bilgi Depoları” dersinde ne öğreneceğim?
Vault benzeri araçlarla gizli bilgileri merkezileştirme. Cyber Security Academy 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.
Cyber Security Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Cyber Security Academy, 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 2. dersidir.
“Kasa ve Gizli Bilgi Depoları” 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 Cyber Security Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Cyber Security Academy 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
- Gizli Bilgilerin Dağınık Hâle Gelmesi Sorunu
- Kasa ve Gizli Bilgi Depoları
- Dinamik Gizli Bilgiler ve Kiralama
- Anahtar Döndürme ve Tespit