Gizli menecment
Gizli menecment
1) Nəyə görə və nəyi «sirr» hesab edirik
Sirr - sistemin və ya məlumatların pozulmasına səbəb olan hər hansı bir material: parollar, API-tokenlər, OAuth/JWT private keys, SSH-açarlar, sertifikatlar, şifrələmə açarları (KEK/DEK), vebhuk imza açarları, DSN bazaları/keşləri, təchizatçıların açarları (ödənişlər, poçt provayderləri/SMS), cookie-duzlar/pepper, bot/chat tokenləri, lisenziyalar.
Sirlər kodda, konfiqada, mühitdə, konteyner görüntülərində, CI/CD, Terraform/Ansible, log/dambalarda yaşayır - sirlərin idarə edilməsi vəzifəsi: uçot → saxlama → çatdırılma → istifadə → rotasiya → baxış → audit → utilizasiya.
2) Memarlıq prinsipləri
Mərkəzləşdirmə. Saxlama, emissiya və audit üçün bir etibarlı qat (Vault/Cloud Secret Manager/KMS).
Ən kiçik imtiyazlar (PoLP). Yalnız lazımi xidmətlərə/rollara minimum müddətə çıxış.
Qısa ömür. TTL/lease ilə dinamik/müvəqqəti sirlərə üstünlük verilir.
Crypto-agility. Dayanmadan alqoritmləri/açar uzunluqlarını dəyişdirmək imkanı.
Sirlərin koddan/şəkillərdən ayrılması. Nə anbarlarda parol var, nə də Docker şəkillərində.
Müşahidə və audit. Hər bir sirr ekstradisiyası/oxunması əməliyyatı loqotip və alertedir.
Avtomatik rotasiya. Rotasiya - əl kampaniyası deyil, pipeline prosesidir.
3) Standart həllər və komponentlərin rolları
KMS/HSM. Kök güvəni, şifrələmə/açar sarma əməliyyatları (envelope).
Secret Manager/Vault. Secret versiyası saxlama, ACL, audit, dinamik sirləri (DB, cloud-IAM, PKI), rotasiya şablonları.
PKI/CA. mTLS/SSH/JWT imzalarının qısamüddətli sertifikatlarının verilməsi.
Agent/sidecar. Sirlərin rantime çatdırılması (tmpfs faylları, in-memory k/v, hot-reload).
CSI sürücüləri/operatorları. Kubernetes (Secret Store CSI Driver, cert-manager) ilə inteqrasiya.
Git-də şifrləmə təbəqəsi. SOPS/age, git-crypt (infrastruktur kodu üçün).
4) Təsnifat və siyasət
Sirləri kritik (P0/P1/P2) və zərərin həcmi (tenant-scoped, environment-scoped, org-wide) ilə bölüşün. Hər sinif üçün:- TTL/lease və rotasiya tezliyi;
- veriliş üsulu (statik vs dinamika), format, daşıyıcı;
- giriş siyasəti (kim/harada/zaman/nə üçün), mTLS və qarşılıqlı identifikasiya tələbləri;
- audit (nə qeyd edirik, nə qədər saxlayırıq, kim revuit edir);
- break-glass prosedurları və geri çağırış.
5) Sirrin həyat dövrü
1. Yaradılması: metadata (owner, tags, scope) ilə API Secret Manager vasitəsilə.
2. Saxlama: şifrələnmiş formada (envelope: DEK KMS/HSM-dən KEK ilə örtülmüşdür).
3. Çatdırılma: səlahiyyətli subyektin tələbi ilə (OIDC/JWT, SPIFFE/SVID, mTLS).
4. Istifadə: yalnız yaddaş/tmpfs; log/damp qadağan.
5. Rotasiya: TTL və ya hadisə (güzəşt); paralel versiyaları dəstəkləyir (N-1).
6. Geri çağırma/bloklama: lease dərhal sona çatması, hədəf sistemində hesab/açar dizabl.
7. Utilizasiya: versiyaların/materialın məhv edilməsi, aydın audit zənciri.
6) Dinamik sirləri (default tövsiyə olunur)
Fikir: gizli qısa müddətə verilir və avtomatik olaraq başa çatır. Nümunələr:- TTL ilə DB (Postgres/MySQL) hesab məlumatları 15-60 dəq.
- Xidmət roluna görə müvəqqəti bulud açarları (AWS/GCP/Azure).
- SSH sertifikatları (5-30 dəq), X.509 sertifikatları (saat/gün).
- Müvəqqəti JWT imza sorğular, session-tickets broker.
- Üstünlüklər: minimum blast radius, sadələşdirilmiş baxış (dünyada heç bir şey «qalmayacaq»).
7) Rentaime sirlərinin çatdırılması
Kubernetes:- Secret Store CSI Driver → fayllar kimi pod xarici menecerdən gizli montaj (tmpfs).
- Kubernetes Secret yeganə mənbə kimi çəkinin (base64 ≠ şifrələmə); lazım gələrsə - etcd üçün KMS provayderini daxil edin.
- Sidecar Agent (Vault Agent/Secrets Store) lease və hot-reload avtomatik yeniləmə ilə.
- VM/Bare-metal: sistem agenti + mTLS Vault/Secret Manager, yaddaş önbellək, minimal TCB.
- Serverless: ətraf mühit/fayllar dəyişən kimi şəffaf sirləri alt-üst ilə bulud inteqrasiya, lakin uzun ömürlü envvars qarşısını almaq - fayllar/yaddaş üstünlük.
Nümunə (Kubernetes + CSI, konseptual)
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 və IaC inteqrasiyası
CI: Vorkerlər OIDC (Workload Identity) ilə qısa ömürlü tokenlər əldə edirlər. «Maskalı» sirlərə qadağa; addım «sızma skan» (trufflehog/gitleaks).
CD: Deploy sirləri hazırlama anında götürür, onları əsərlərə yazmır.
IaC: Terraform Secret Manager-da dəyişənləri saxlayır; state (state) şifrələnir və giriş məhduddur.
SOPS/age: repo üçün - şifrələnmiş manifestləri, açarları - KMS-in nəzarəti altında saxlayın.
Nümunə (SOPS-fraqment)
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) Giriş siyasəti və iş yüklərinin autentifikasiyası
Workload identity: SPIFFE/SPIRE, Kubernetes SA→OIDC→IAM-роль, mTLS.
Müvəqqəti tokenlər: qısa TTL, dar skope.
Gizli menecerdə ABAC/RBAC: «X sirrini Y mühitində kim oxuya bilər» «kim yarada bilər/rotasiya edə bilər».
Multi-icarə: kirayəçi üçün ayrı-ayrı namespaces/key-rings; ayrı-ayrı siyasət və hesabat.
10) Rotasiya, versiyaları və uyğunluq
Gizli ID və onun versiyasını paylaşın ('secret/app/db #v17').
Davamlı rotasiya üçün iki aktiv versiyanı (N və N-1) saxlayın.
Rotasiya hadisəlidir: işdən çıxarılma, güzəşt, provayder dəyişikliyi, alqoritmlərin miqrasiyası.
Avtomatlaşdırın: Vault/Secret Manager + webhook-tetikleyicilərində cron/backend rotasiya/reneval.
Mini resept «iki açar» vebhuk rotasiyası
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) Rentaym xaricində saxlama: ehtiyat və artefaktlar
Heç vaxt artefaktlara (şəkillər, log arxivləri, dampalar) düşməyin.
Secret Manager backup - şifrələmək, eyni dövrədən kənarda saxlama açarları (separation of duties).
Etiketler və DLP skanları: S3/Blob/GCS, Git, CI artefaktlarında sirlərin aşkarlanması.
12) Müşahidə, audit və SLO
Metriklər: emissiya sayı/gizli/xidmət, vaxtı keçmiş lease payı, orta TTL, rotasiya vaxtı, konvergensiya vaxtı (yeni versiyanın «qəbuluna» qədər saniyə/dəqiqə).
Audit-log: kim/nə/nə vaxt/haradan/nə üçün; ayrıca saxlama, həmçinin şifrələnmiş.
SLO: 99% verim <200 ms; 0 sızma; 100% gizli owner/TTL/tags var; 100% kritik sirr - dinamik və ya 30 gün ≤ rotasiya.
Alerts: sirr <7 gün (statiklər üçün) başa çatır, saxlama üçün autentifikasiya uğursuzluqları, heç bir sirr oxunması> N gün (ölü), gözlənilməz geo/ASN mənbələri.
13) Tez-tez səhvlər və onlardan necə qaçmaq olar
Git/şəkillərdə sirləri. SOPS/age və skanerlərdən istifadə edin; «çılpaq» sətirləri qadağan etmək siyasəti.
Envvars uzun müddətli daşıyıcı kimi. tmpfs/in-memory fayllarına üstünlük verin; fork/damba ilə ətrafı təmizləyin.
dev/stage/prod üçün eyni sirləri. Ətrafa bölün.
Uzun ömürlü statik şifrələr. Dinamik/qısamüddətli.
«Hər şey üçün» vahid master açar. Kirayəçilər/layihələr/xidmətlər üzrə bölün.
Hot-reload yoxdur. Tətbiqetmənin yenidən başlaması tələb olunur → fırlanma zamanı boşluq pəncərələri.
14) Inteqrasiya nümunələri (sxematik)
Vault dinamik giriş Postgres
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)
JWT-imza sorğular (qısa müddət)
Şəxsi açar Secret Manager-da saxlanılır; xidmət qısamüddətli signing-token tələb edir və yerli agent payload imzalayır (açar sətir kimi proqrama ötürülmür).
SSH sertifikatları
Daimi açarları yaymadan SSO (OIDC) ilə 10 dəqiqə ərzində SSH-cert verilməsi.
15) Kənarlarda təhlükəsizlik
Log/Trace/Metrics: dezinfeksiyaedici, məşhur açar/model üçün filtrlər; «gizli» sahələr - APM-də maskalanma.
Damp/qəza reports: default; lazım olduqda - şifrələmək və təmizləmək.
Müştəri tətbiqləri/mobil: oflayn sirləri minimuma endirmək, platforma anbarlarından (Keychain/Keystore) istifadə etmək, cihaza qoşulmaq, TLS-pinning-in-in-pin-in.
16) Komplayens
PCI DSS: şifrələmə olmadan PAN/sirlərin saxlanmasına qadağa; ciddi giriş və rotasiya nəzarəti.
ISO 27001/SOC 2: aktivlərin idarə edilməsi, jurnallaşdırma, giriş nəzarəti, konfiqurasiya dəyişikliyi tələbləri.
GDPR/lokal tənzimləyicilər: minimuma endirmə, ehtiyac olduqda giriş, audit.
17) Proseslər və runbook
Istifadəyə verilməsi
1. Sirlərin inventarlaşdırılması (anbarlar, CI, şəkillər, runtime, arxalar).
2. Təsnifat və etiketlər (owner, environment, tenant, rotation-policy).
3. Saxlama seçimi (Vault/Cloud SM) + KMS/HSM ilə inteqrasiya.
4. Workload identity (OIDC/SPIRE).
5. DB/buludlar/PKI üçün dinamik sirlərin daxil edilməsi.
6. Avtomatik rotasiya və hot-reload; ekspirasiyada alertlər.
7. Sızma skanerləri və Data Catalog/DS konfiqurasiya.
Təcili ssenarilər
Sızma şübhəsi: giriş siyahısını dayandırın, dərhal rotasiya edin, sertifikatları/açarları geri götürün, tokenlərin yenidən buraxılması, artan audit, RCA.
Secret Manager mövcud deyil: kiçik TTL ilə yaddaş yerli önbellək, funksiyaların deqradasiyası, yeni əlaqələrin məhdudlaşdırılması, əl break-glass addımları.
Kök açarının güzəşti: key-hierarchy yenilənməsi, bütün DEK rewrap, risk pəncərəsi arxasında bütün nəticələrin yoxlanılması.
18) Çek vərəqləri
Məhsuldan əvvəl
- Sirlər koddan/şəkillərdən silinir; sızma skanerləri aktivdir.
- Kritik sirlərə dinamik mexanizmlər daxildir.
- isti reload ilə sidecar/CSI/tmpfs vasitəsilə çatdırılması, heç bir davamlı envvars.
- Xüsusi IAM/ABAC siyasəti, workload identity.
- Avto-rotasiya və qoşa versiyaları (N, N-1) uyğunluq üçün.
- Metriklər/Alertlər/Audit daxildir; deqradasiya testləri keçdi.
Əməliyyat
- Aylıq hesabat: sahibləri, TTL, vaxtı keçmiş sirləri, istifadə olunmayan.
- Dövri rotasiyalar və sızma yollarının pentestləri (loqlar, dampalar, artefaktlar).
- Crypto-agility planı və CA/köklərinin təcili dəyişdirilməsi.
19) FAQ
S: KMS olmadan Secret Manager kifayətdirmi?
A: Əsas səviyyə üçün - bəli, lakin envelope şifrələmədən istifadə etmək daha yaxşıdır: KMS/HSM-də KEK, sirlər - bükülmüşdür. Bu, rəy və uyğunluğu asanlaşdırır.
S: Nə seçmək - statik və ya dinamik?
A: Default - dinamika. Statiki yalnız dəstəklənən provayderlərin olmadığı yerlərdə saxlayın və TTL-i gün/saat + avtomatik rotasiyaya qədər yandırın.
S: Sirləri mikroservisə necə təhlükəsiz atmaq olar?
О: Workload identity → mTLS к Secret Manager → sidecar/CSI → файлы в tmpfs + hot-reload. Heç bir log, heç bir envvars «əbədi».
S: Kubernetes Secret-də sirləri saxlamaq olarmı?
A: Yalnız KMS provayderi və sərt siyasətlərlə etcd şifrələmə aktivləşdirildikdə. Xarici saxlama və CSI-yə üstünlük verin.
S: Necə «kriptovalyutası» kirayəçi giriş?
A: Secret Manager siyasətini geri çağırın/bloklayın, bütün leases, rotasiya/açarların bərpası; KMS istifadə edərkən - müvafiq KEK unwrap söndürmək.
- «At Rest şifrələmə»
- «In Transit Şifrələmə»
- «Açarların idarə edilməsi və rotasiya»
- «S2S-autentifikasiya»
- «Sorğuların imzalanması və yoxlanılması»