GH GambleHub

Gizli yönetim

Gizli yönetim

1) Neden ve tam olarak neyi "sır'olarak görüyoruz?

Gizli - açıklanması sistemin veya verilerin tehlikeye girmesine neden olan herhangi bir materyal: şifreler, API belirteçleri, OAuth/JWT özel anahtarları, SSH anahtarları, sertifikalar, şifreleme anahtarları (KEK/DEK), webhook imza anahtarları, DSN veritabanları/önbellekler, satıcı anahtarları (ödemeler, posta/SMS sağlayıcıları), çerez tuzları/biber, bot/Sohbet jetonları, lisanslar.
Sırlar kodda, bir yapılandırmada, bir ortamda, konteyner görüntülerinde, CI/CD, Terraform/Ansible, günlükler/dökümler - sırların yönetimi görevi: hesap - depolama - teslimat - kullanım - rotasyon - yanıt - denetim - kullanım.

2) Mimarlık ilkeleri

Merkezileşme. Depolama, yayınlama ve denetim için güvenilir bir katman (Vault/Cloud Secret Manager/KMS).
En Düşük Ayrıcalık (PoLP) Minimum bir süre için yalnızca gerekli hizmetlere/rollere erişim.
Kısa hayat. TTL/kiralama ile dinamik/zaman sırları tercih edilir.
Kripto çeviklik. Algoritmaları/anahtar uzunluklarını kesinti olmadan değiştirme yeteneği.
Sırları koddan/görüntülerden ayırma. Depolarda şifre yok, Docker görüntüsü yok.
Gözlemlenebilirlik ve denetim. Sırların verilmesi/okunması ile ilgili her işlem kaydedilir ve silinir.
Otomatik dönüş. Rotasyon boru hattındaki bir işlemdir, manuel bir işlem değildir.

3) Tipik çözümler ve bileşen rolleri

KMS/HSM Kök güven, şifreleme/anahtar sarma işlemleri (zarf).
Gizli Yönetici/Kasa. Gizli sürüm deposu, ACL, denetim, dinamik sırlar (DB, cloud-IAM, PKI), rotasyon şablonları.
PKI/CA. Kısa ömürlü mTLS/SSH/JWT imzalarının verilmesi.
Ajan/sidecar. Sırların çalışma zamanına iletilmesi (tmpfs, in-memory k/v, hot-reload dosyaları).
CSI sürücüleri/operatörleri. Kubernetes ile entegrasyon (Gizli Mağaza CSI Sürücüsü, cert-manager).
Git'te şifreleme katmanı. SOP/age, git-crypt (altyapı kodu için).

4) Sınıflandırma ve politika

Kritik (P0/P1/P2) ve hasar hacmine göre ayrı sırlar (kiracı kapsamlı, çevre kapsamlı, org çapında). Her sınıf için şunları belirtin:
  • TTL/kiralama ve rotasyon sıklığı;
  • Çıkış yöntemi (dinamik vs statik), format, ortam;
  • Erişim politikası (kim/nerede/ne zaman/neden), mTLS ve karşılıklı kimlik doğrulama gereksinimleri;
  • denetim (ne kadar depoladığımızı, kimin gözden geçirdiğini kaydettiğimiz);
  • Cam kırma prosedürleri ve geri çağırmalar.

5) Gizli yaşam döngüsü

1. Oluşturma: Gizli Yönetici API'si aracılığıyla meta verilerle (sahip, etiketler, kapsam).
2. Depolama: şifreli (zarf: KMS/HSM'den KEK ile sarılmış DEK).
3. Teslimat: Yetkili bir kuruluşun talebi üzerine (OIDC/JWT, SPIFFE/SVID, mTLS).
4. Kullanım: yalnızca bellekte/tmpfs'de; Ağaç kesimi/dökümü yasağı.

5. Rotasyon: TTL veya olay ile (uzlaşma); Paralel sürümler için destek (N-1)

6. Geri çağırma/engelleme: kiralamanın derhal sona ermesi, hedef sistemde hesap/anahtar devre dışı bırakılması.
7. Bertaraf: sürümlerin/malzemenin imha edilmesi, açık denetim zinciri.

6) Dinamik sırlar (varsayılan olarak önerilir)

Fikir: sır kısa bir süre için verilir ve otomatik olarak sona erer. Örnekler:
  • TTL ile veritabanı kimlik bilgileri (Postgres/MySQL) 15-60 dk.
  • Hizmet rolüne göre geçici bulut anahtarları (AWS/GCP/Azure).
  • SSH sertifikaları (5-30 dakika), X.509 sertifikaları (saat/gün).
  • Talepleri imzalamak için geçici JWT, oturum biletleri brokerleri.
  • Artıları: minimum patlama yarıçapı, basitleştirilmiş hatırlama (dünyada hiçbir şey "kalmayacak").

7) Çalışma zamanında sırların teslimi

Kubernetes:
  • Secret Store CSI Driver - harici bir yöneticiden dosyaları (tmpfs) olarak pod sırlar montaj.
  • Tek kaynak olarak Kubernetes Secret'tan kaçının (base64 ≠ şifreleme); Gerekirse, etcd için KMS sağlayıcısını etkinleştirin.
  • Otomatik reneval kiralama ve hot-reload ile Sidecar ajanı (Vault Agent/Secrets Store).
  • VM/Bare-metal: sistem aracısı + mTLS'den Vault/Secret Manager'a, bellekte önbellek, minimum TCB.
  • Sunucusuz: Sırların ortam değişkenleri/dosyaları olarak saydam olarak değiştirilmesiyle bulut entegrasyonu, ancak uzun ömürlü envvarlardan kaçının - tercihen dosyalar/bellekte.

Örnek (Kubernetes + CSI, kavramsal olarak)

yaml apiVersion: v1 kind: Pod metadata: { name: app }
spec:
serviceAccountName: app-sa # is associated with a role in Secret Manager volumes:
- name: secrets csi:
driver: secrets-store. csi. k8s. io readOnly: true volumeAttributes:
secretProviderClass: app-spc containers:
- name: app volumeMounts:
- mountPath: /run/secrets name: secrets readOnly: true

8) CI/CD ve IaC entegrasyonları

CI: Çalışanlar OIDC'ye (İş Yükü Kimliği) göre kısa ömürlü jetonlar alırlar. Günlüklere giren "maskeli" sırların yasaklanması; adım "sızıntı taraması" (trufflehog/gitleaks).
CD: Deploy, görüntüleme sırasında sırları alır, bunları yapaylara yazmaz.
IaC: Terraform, Secret Manager'da değişkenleri saklar; Durum şifrelenir ve erişim kısıtlanır.
SOP/age: repolar için - şifreli manifestoları, anahtarları saklayın - KMS'nin kontrolü altında.

Örnek (SOP parçası)

yaml apiVersion: v1 kind: Secret metadata: { name: app }
data:
PASSWORD: ENC[AES256_GCM,data:...,sops:...]
sops:
kms:
- arn: arn:aws:kms:...
encrypted_regex: '^(data    stringData)$'
version: '3. 8. 0'

9) Erişim politikaları ve iş yükü kimlik doğrulaması

İş yükü kimliği: SPIFFE/SPIRE, Kubernetes SA, OIDC, IAM- роль, mTLS.
Geçici belirteçler: kısa TTL, dar kapsam.
Gizli Yöneticide ABAC/RBAC: "Y ortamında X sırrını okuyabilen", "oluşturabilen/döndürebilen'den ayrıdır.
Çoklu kiracılık: kiracı başına ayrı ad alanları/anahtar halkaları; bireysel politikalar ve raporlama.

10) Rotasyon, sürümler ve uyumluluk

Gizli kimliği ve sürümünü ayırın ('gizli/uygulama/db # v17').
Kesintisiz dönüş için iki aktif sürümü (N ve N-1) destekleyin.
Rotasyon olay bazlıdır: işten çıkarma, uzlaşma, sağlayıcı değişikliği, algoritmaların geçişi üzerine.
Otomatikleştir: Vault/Secret Manager'da cron/backend rotasyonu + uygulama yeniden başlatma/yeniden başlatma için webhook tetikleyicileri.

Mini tarif "iki anahtarlı" webhook rotasyonu

text
T0: we publish two secrets in the provider: current, next
T1: the application starts accepting signatures by both current and next
T2: external system switches signature to next
T3: we do next -> current, re-release new next

11) Çalışma zamanı dışı depolama: yedeklemeler ve eserler

Asla artefaktlara girmeyin (görüntüler, günlük arşivleri, çöplükler).
Gizli Yönetici yedeklemeleri - şifrele, aynı döngünün dışındaki depolama anahtarları (görevlerin ayrılması).
Etiketler ve DLP taramaları: S3/Blob/GCS, Git, CI eserlerindeki sırları tespit etmek.

12) Gözlemlenebilirlik, denetim ve SLO

Metrikler: sorun sayısı/gizli/hizmet, süresi dolan kira payı, ortalama TTL, rotasyon süresi, yakınsama süresi (yeni sürümü'kabul etmeden "saniyeler/dakikalar önce).
Denetim günlükleri: kim/ne/ne zaman/nerede/neden; Depolama ayrı ayrı, ayrıca şifreli.
SLO: %99 çıkış <200 ms; 0 günlüklerde sızıntı; Sırların %100'ünün sahibi/TTL/etiketleri vardır; %100 kritik sırlar - 30 gün ≤ dinamik veya rotasyon.
Uyarılar: gizli süresi <7 gün (statik için), depolama kimlik doğrulama hataları başak, hiçbir gizli okur> N gün (ölü), beklenmedik coğrafi/ASN kaynakları.

13) Sık yapılan hatalar ve bunlardan nasıl kaçınılacağı

Git/görüntüdeki sırlar. SOP/yaş ve tarayıcılar kullanın; "Çıplak" çizgileri yasaklama politikası.
Envvars uzun vadeli bir orta. Tmpfs/in-memory dosyalarını tercih edin; Çatal/çöplüklerde çevreyi temizleyin.
Dev/stage/prod için aynı sırlar. Çevreye göre bölün.
Uzun ömürlü statik şifreler. Dinamik/kısa ömürlü geçiş.
Her şey için tek bir ana anahtar. "Kiracı/proje/hizmete göre böl.
Sıcak yükleme yok. Uygulama bir yeniden başlatma gerektirir - döndürme sırasında güvenlik açığı penceresi.

14) Entegrasyon örnekleri (şematik)

Vault dinamik Postgres erişimi

hcl
Vault: role -> issues the user to the database with TTL 30m and privileges only to the app path "database/creds/app-role" {
capabilities = ["read"]
}
Application requests/database/creds/app-role -> receives (user, pass, ttl)

İsteklerin JWT imzası (kısa vadeli)

Özel anahtar Gizli Yönetici'de saklanır; Hizmet kısa ömürlü bir imzalama belirteci ister ve yerel aracı yükü imzalar (anahtar uygulamaya bir dize olarak iletilmez).

Yöneticiler için SSH sertifikaları

SSH-cert'in SSO (OIDC) aracılığıyla kalıcı anahtarlar dağıtmadan 10 dakika boyunca verilmesi.

15) Kenarların etrafında güvenlik

Günlükler/yollar/metrikler: dezenfektanlar, bilinen anahtarlar/desenler için filtreler; "Gizli" alanlar - APM'de maskeleme.
Dökmeler/Çökme Raporları: Varsayılan olarak kesin; Gerekirse - şifreleyin ve temizleyin.
İstemci uygulamaları/mobil: çevrimdışı sırları en aza indirin, platform depolama (Keychain/Keystore), cihaz bağlama, acil durum yuvarlama ile TLS sabitleme kullanın.

16) Uyumluluk

PCI DSS: PAN/sırları şifrelemeden saklamayı yasaklar; Sıkı erişim kontrolü ve rotasyon.

ISO 27001/SOC 2 - Varlık Yönetimi, Günlük Kaydı, Erişim Kontrolü, Yeniden Yapılandırma Gereksinimleri

GDPR/yerel düzenleyiciler: minimizasyon, gerektiğinde erişim, denetim.

17) Süreçler ve runbook

Devreye alma

1. Sırların envanteri (depolar, CI'lar, görüntüler, çalışma zamanı, yedeklemeler).
2. Sınıflandırma ve etiketler (sahip, çevre, kiracı, rotasyon politikası).
3. Vault/Cloud SM + KMS/HSM entegrasyonu.
4. İş yükü kimliğine göre çıktı ayarlama (OIDC/SPIRE).
5. DB/Cloud/PKI için dinamik sırları etkinleştirin.
6. Otomatik döndürme ve sıcak yeniden yükleme; son kullanma tarihi ile ilgili uyarılar.
7. Sızıntı tarayıcıları ve Veri Kataloğu/ET kurulumu.

Acil durum senaryoları

Şüpheli sızıntı: erişim durdurma listesi, anında rotasyon, sertifikaları/anahtarları iptal etme, belirteçleri yeniden düzenleme, artan denetim, RCA'yı etkinleştirme.
Gizli Yönetici mevcut değildir: düşük TTL'li bellekte yerel önbellek, işlev bozulması, yeni bağlantıların kısıtlanması, manuel kırılma cam adımları.
Kök anahtar uzlaşması: anahtar hiyerarşisi yenilenmesi, tüm DEK'lerin yeniden paketlenmesi, risk penceresi için tüm risklerin kontrol edilmesi.

18) Kontrol listeleri

Satmadan önce

  • Koddan/görüntülerden kaldırılan sırlar; Sızıntı tarayıcıları dahil.
  • Dinamik mekanizmalar kritik sırlar için etkinleştirilir.
  • Sidecar/CSI/tmpfs ile sıcak yeniden yükleme, dayanıklı envvar yok.
  • IAM/ABAC ilkeleri yapılandırılmış, iş yükü kimliğine bağlı.
  • Uyumluluk için otomatik döndürme ve çift sürümler (N, N-1).
  • Metrikler/uyarılar/denetimler etkinleştirildi; Bozulma testleri geçti.

Operasyon

  • Aylık Rapor: Sahipler, TTL, Süresi Dolan Sırlar, Kullanılmayan.
  • Periyodik rotasyonlar ve sızıntı yollarının penetrasyon testleri (günlükler, çöplükler, eserler).
  • kripto-çeviklik planı ve CA/köklerin acil olarak değiştirilmesi.

19) SSS

S: KMS'siz Secret Manager yeterli mi?
C: Temel seviye için - evet, ancak zarf şifrelemesini kullanmak daha iyidir: KMS/HSM'de KEK, sırlar - sarılır. Bu, geri bildirim ve uyumu basitleştirir.

S: Ne seçmeli - statik mi dinamik mi?
C: Varsayılan değer dinamiktir. Yalnızca desteklenen sağlayıcıların olmadığı yerlerde statik bırakın ve TTL'yi gün/saat + otomatik rotasyona kadar yazın.

S: Sırları mikro servise güvenli bir şekilde nasıl atabilirim?
О: İş yükü kimliği - mTLS к Gizli Yöneticisi - sidecar/CSI - файлы в tmpfs + hot-reload. Kayıt yok, envvar yok "sonsuza kadar".

S: Kubernetes Secret'ta sır saklayabilir miyim?
C: Yalnızca KMS sağlayıcısı ve katı ilkelerle etkinleştirilen etcd şifrelemesi ile. Harici depolama ve CSI tercih edin.

S: Bir kiracının erişimini nasıl "kripto-silersiniz"?
C: Secret Manager'daki politikalarını iptal edin/engelleyin, tüm kiralamaları geçersiz kılın, anahtar rotasyonu/rejenerasyonu; KMS kullanırken - ilgili KEK'nin paketini açmayı devre dışı bırakın.

İlgili malzemeler:
  • "Dinlenme Şifreleme"
  • "Transit Şifrelemede"
  • "Anahtar Yönetimi ve Rotasyon"
  • "S2S Kimlik Doğrulama"
  • "İstekleri İmzala ve Doğrula"
Contact

Bizimle iletişime geçin

Her türlü soru veya destek için bize ulaşın.Size yardımcı olmaya her zaman hazırız!

Telegram
@Gamble_GC
Entegrasyona başla

Email — zorunlu. Telegram veya WhatsApp — isteğe bağlı.

Adınız zorunlu değil
Email zorunlu değil
Konu zorunlu değil
Mesaj zorunlu değil
Telegram zorunlu değil
@
Telegram belirtirseniz, Email’e ek olarak oradan da yanıt veririz.
WhatsApp zorunlu değil
Format: +ülke kodu ve numara (örneğin, +90XXXXXXXXX).

Butona tıklayarak veri işlemenize onay vermiş olursunuz.