Maxfiy menejment
Maxfiy menejment
1) Nima uchun va nimani «sir» deb hisoblaymiz
Sir - oshkor etilishi tizim yoki ma’lumotlarning buzilishiga olib keladigan har qanday material: parollar, API-tokenlar, OAuth/JWT private keys, SSH-kalitlar, sertifikatlar, shifrlash kalitlari (KEK/DEK), vebxuk imzo kalitlari, baza/kesh DSN, yetkazib beruvchilar kalitlari (to’lovlar, pochta/SMS provayderlari), cookie-tuzlar/pepper, bot/chat tokenlari, litsenziyalar.
Sirlar kodda, konfigada, muhitda, konteyner tasvirlarida, CI/CD, Terraform/Ansible, loglarda/damplarda yashaydilar - sirlarni boshqarish vazifasi: hisobga olish → saqlash → yetkazib berish → foydalanish → rotatsiya → chaqirib olish → audit → utilizatsiya.
2) Arxitektura prinsiplari
Markazlashtirish. Saqlash, berish va audit uchun bitta ishonchli qatlam (Vault/Cloud Secret Manager/KMS).
Eng kichik imtiyozlar (PoLP). Faqat zarur servislar/rollarga minimal muddatga kirish.
Qisqa umr. TTL/lease bilan dinamik/vaqtinchalik sirlarni afzal ko’ring.
Crypto-agility. Algoritmlarni/kalitlarning uzunligini ishlamay oʻzgartirish imkoniyati.
Sirlarni kod/tasvirlardan ajratish. Hech qanday maxfiy soʻz yoki Docker tasvirlari yoʻq.
Kuzatuv va audit. Sirlarni berish/o’qish bo’yicha har bir operatsiya noto’g "ri va alerta qilinadi.
Avtomatik rotatsiya. Rotatsiya - qo’lda aksiya emas, balki pipeline jarayonidir.
3) Namunaviy yechimlar va komponentlarning rollari
KMS/HSM. Ildiz ishonchi, shifrlash/kalitlarni oʻrash operatsiyalari (envelope).
Secret Manager/Vault. Maxfiy versiyalar ombori, ACL, audit, dinamik sirlar (DB, cloud-IAM, PKI), rotatsiya shablonlari.
PKI/CA. mTLS/SSH/JWT imzolari sertifikatlarini berish.
Agent/sidecar. Sirlarni randaymga yetkazish (tmpfs, in-memory k/v, hot-reload fayllari).
CSI drayverlari/operatorlari. Kubernetes (Secret Store CSI Driver, cert-manager) bilan integratsiya.
Git’dagi shifrlash qatlami. SOPS/age, git-crypt (infratuzilma kodi uchun).
4) Tasniflash va siyosat
Tanqidiy (P0/P1/P2) va zarar hajmi (tenant-scoped, environment-scoped, org-wide) bo’yicha sirlarni ajrating. Har bir sinf uchun:- TTL/lease va rotatsiya chastotasi;
- berish usuli (dinamikasi vs statik), formati, tashuvchisi;
- foydalanish siyosati (kim/qaerda/qachon/nima uchun), mTLS va o’zaro autentifikatsiyalash talablari;
- audit (nimani taxlil qilamiz, qancha saqlaymiz, kim revyuit qilyapti);
- break-glass tartib-taomillari va chaqirib olish.
5) Sirning hayot sikli
1. Yaratish: meta maʼlumotlar (owner, tags, scope) bilan Secret Manager API orqali.
2. Saqlash: shifrlangan holda (envelope: DEK KMS/HSM dan KEK bilan oʻralgan).
3. Yetkazib berish: vakolatli subyektning so’roviga ko’ra (OIDC/JWT, SPIFFE/SVID, mTLS).
4. Foydalanish: faqat xotirada/tmpfs; loging/damplarni taqiqlash.
5. Rotatsiya: TTL yoki hodisa bo’yicha (kompromatatsiya); parallel versiyalarni qo’llab-quvvatlash (N-1).
6. Chaqirib olish/blokirovka qilish: maqsadli tizimda darhol lease, dizabl akkaunt/kalit tugaydi.
7. Utilizatsiya: versiyalar/materiallarni yo’q qilish, auditning aniq zanjiri.
6) Dinamik sirlar (andoza bo’yicha tavsiya etiladi)
G’oya: sir qisqa muddatga beriladi va avtomatik ravishda tugaydi. Misollar:- Hisob ma’lumotlari DB (Postgres/MySQL) bilan TTL 15-60 daqiqa.
- Servisning roli boʻyicha vaqtinchalik bulutlar kalitlari (AWS/GCP/Azure).
- SSH-sertifikatlar (muddati 5-30 daqiqa), X.509-sertifikatlar (soat/kun).
- So’rovlarni imzolash uchun vaqtinchalik JWT, brokerlarning session-tickets.
- Afzalliklari: minimal blast radius, soddalashtirilgan sharh (dunyoda hech narsa «qolmaydi»).
7) Sirlarni rantaymga yetkazish
Kubernetes:- Secret Store CSI Driver → sirlarni tashqi menejerdan podga fayllar (tmpfs) sifatida o’rnatish.
- Kubernetes Secretdan yagona manba sifatida qochish (base64 ≠ shifrlash); kerak bo’lsa, etcd uchun KMS provayderini kiriting.
- Sidecar-agent (Vault Agent/Secrets Store) avto-reneval lease va hot-reload bilan.
- VM/Bare-metal: tizim agenti + mTLS to Vault/Secret Manager, xotiradagi kesh, minimal TCB.
- Serverless: Bulutni atrof-muhit/fayllar o’zgaruvchan sifatida shaffof almashtirish bilan birlashtirish, lekin uzoq umr ko’radigan envvars - xotiradagi fayllardan qochish.
Misol (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 va IaC integratsiyasi
CI: vorkerlar OIDC (Workload Identity) boʻyicha qisqa jonli tokenlarni olishadi. Loglarga tushadigan «niqoblangan» sirlarni taqiqlash; trufflehog/gitleaks.
CD: deploy sirlarni sahnalashtirish paytida olib qo’yadi, ularni artefaktlarga yozmaydi.
IaC: Terraform oʻzgaruvchilarni Secret Managerda saqlaydi; holat (state) shifrlanadi va kirish imkoniyati cheklangan.
SOPS/age: repo uchun - shifrlangan manifestlarni, kalitlarni KMS boshqaruvida saqlash.
Misol (SOPS-parcha)
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) Foydalanish siyosati va ish yuklamalarini autentifikatsiyalash
Workload identity: SPIFFE/SPIRE, Kubernetes SA→OIDC→IAM-роль, mTLS.
Vaqtinchalik tokenlar: qisqa TTL, tor scope.
Secret Manager’dagi ABAC/RBAC: «X sirini Y muhitida kim o’qiy oladi» «kim yaratishi/rotatsiya qilishi mumkin» dan ajratilgan.
Ko’p ijara: ijarachiga alohida namespaces/key-rings; alohida siyosatlar va hisobotlar.
10) Rotatsiya, versiyalar va muvofiqlik
Maxfiy ID va uning versiyasi (’secret/app/db #v17’).
To’xtovsiz rotatsiya qilish uchun ikkita faol versiyani (N va N-1) qo’llab-quvvatlang.
Rotatsiya hodisali: ishdan bo’shatish, buzish, provayder almashtirish, algoritmlar migratsiyasida.
Avtomatlashtiring: Vault/Secret Manager + webhook-trigger dasturlarini qayta ishga tushirish/qayta tiklash.
Vebxukning «ikki kalitli» rotatsiyasi mini-retsepti
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) Rantaymdan tashqari saqlash: zaxira nusxalar va artefaktlar
Hech qachon artefaktlarga (rasmlar, log arxivlari, dampalar) tushmaslik.
Secret Manager bekaplari - shifrlash, shu konturdan tashqarida saqlash kalitlari (separation of duties).
Belgilar va DLP skanerlar: S3/Blob/GCS, Git, CI artefaktlarida sirlarni aniqlash.
12) Kuzatuv, audit va SLO
Metrikasi: berilgan/sir/servis soni, o’tgan lease ulushi, o’rtacha TTL, rotatsiya vaqti, konvergensiya vaqti (yangi versiyani «qabul qilishdan» oldin sekund/daqiqa).
Audit-logi: kim/nima/qachon/qaerdan/nima uchun; alohida saqlash ham shifrlangan.
SLO: 99% ajratmalar <200 ms; loglarda 0 ta oqish; 100% sirlar owner/TTL/teglarga ega; 100% muhim sirlar - dinamik yoki rotatsiya ≤ 30 kun.
Alertlar: sir tugaydi <7 kun (statiklar uchun), saqlash joyiga autentifikatsiya qilish muvaffaqiyatsizlikka uchradi, sirni o’qish yo’q> N kun (o’lik), kutilmagan geo/ASN manbalari.
13) Tez - tez xatolar va ulardan qanday qochish mumkin
Git/tasvirlardagi sirlar. SOPS/age va skanerlardan foydalaning; «yalang’och» satrlarni taqiqlash siyosati.
Envvars uzoq muddatli tashuvchi sifatida. tmpfs/in-memory fayllarini afzal koʻring; forkalar/dambalarda atrofni tozalang.
dev/stage/prod uchun bir xil sirlar. Atrofingizga qarab boʻling.
Uzoq davom etadigan statik parollar. Dinamik/qisqa hayotga oʻting.
«Hamma narsaga» yagona bosh kalit. Ijarachilar/loyihalar/servislar bo’yicha bo’ling.
Hot-reload yoʻq. Dastur rotatsiya paytida zaiflik oynasini qayta boshlashni talab qiladi.
14) Integratsiya namunalari (sxematik)
Vault dinamik 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-so’rovlar imzosi (qisqa muddat)
Maxfiy kalit Secret Managerda saqlanadi; servis qisqa yashovchi signing-token so’raydi va mahalliy agent payload imzosini qo’yadi (kalit ilovaga satr sifatida o’tkazilmaydi).
SSH sertifikatlari
SSH-cert SSO (OIDC) bo’yicha 10 daqiqaga doimiy kalitlarni tarqatmasdan beriladi.
15) Chetlari bo’ylab xavfsizlik
Logi/treys/metriklar: sanitayzerlar, ma’lum kalitlar/patternlar uchun filtrlar; «maxfiy» maydonlar - APMda yashirish.
Damplar/krash-reportlar: andoza ravishda kesish; kerak bo’lsa - shifrlash va tozalash.
Mijoz ilovalari/mobil: oflayn sirlarni minimallashtirish, platforma omborlaridan foydalanish (Keychain/Keystore), qurilmaga bog’lash, TLS-pinning avariya holatida.
16) Komplayens
PCI DSS: shifrlanmagan holda PAN/sirlarni saqlashni taqiqlash; kirish va rotatsiyani qat’iy nazorat qilish.
ISO 27001/SOC 2: aktivlarni boshqarish, jurnallashtirish, kirishni nazorat qilish, konfiguratsiyalarni o’zgartirish talablari.
GDPR/lokal regulyatorlar: minimallashtirish, zarurat bo’yicha kirish, audit.
17) Jarayonlar va runbook
Foydalanishga topshirish
1. Sirlarni inventarizatsiya qilish (repozitoriyalar, CI, tasvirlar, runtime, bekaplar).
2. Tasniflash va teglar (owner, environment, tenant, rotation-policy).
3. Omborni tanlash (Vault/Cloud SM) + KMS/HSM bilan integratsiya qilish.
4. Workload identity (OIDC/SPIRE) ni moslash.
5. DB/bulutlar/PKI uchun dinamik sirlarni yoqish.
6. Avto-rotatsiya va hot-reload; ekspiratsiyadagi alertlar.
7. Data Catalog/DS skanerlarini moslash.
Avariya stsenariylari
Sizib chiqishiga shubha: kirish to’xtash ro’yxati, darhol rotatsiya, sertifikatlar/kalitlarni qaytarib olish, tokenlarni qayta chiqarish, yuqori auditni yoqish, RCA.
Secret Manager mavjud emas: kichik TTL bilan xotirada lokal kesh, funksiyalarning buzilishi, yangi ulanishlarning cheklanishi, qoʻlda break-glass qadamlari.
Ildiz kalitining buzilishi: key-hierarchy regeneratsiyasi, barcha DEKlarni rewrap qilish, xavf oynasi uchun barcha berishlarni tekshirish.
18) Chek varaqlari
Sotishdan oldin
- Sirlar kod/tasvirlardan olib tashlangan; sizib chiqish skanerlari yoqilgan.
- Tanqidiy sirlar uchun dinamik mexanizmlar mavjud.
- Issiq reload bilan sidecar/CSI/tmpfs orqali yetkazib berish, uzoq muddatli envvars.
- Workload identity bilan bogʻlangan IAM/ABAC siyosati moslashtirilgan.
- Moslik uchun avto-rotatsiya va ikki tomonlama versiyalar (N, N-1).
- Metriklar/alertlar/audit kiritilgan; degradatsiya testlari o’tdi.
Foydalanish
- Oylik hisobot: egalari, TTL, muddati o’tgan, foydalanilmayotgan sirlar.
- Davriy rotatsiyalar va oqish yo’llarining pentestlari (loglar, dampalar, artefaktlar).
- Crypto-agility rejasi va CA/ildizlarni favqulodda almashtirish.
19) FAQ
S: KMSsiz Secret Manager yetarlimi?
O: Asosiy daraja uchun - ha, lekin envelope-shifrlashdan foydalanish yaxshiroqdir: KMS/HSMda KEK, sirlar - o’ralgan. Bu sharh va komplayensni soddalashtiradi.
S: Nima tanlash kerak - statik yoki dinamika?
O: Andoza dinamika. Statikni faqat qo’llab-quvvatlanadigan provayderlar bo’lmagan joyda qoldiring va TTLni kunlar/soatgacha yoqing + avtomatik rotatsiya.
S: Sirlarni mikroservisga qanday xavfsiz tashlash mumkin?
О: Workload identity → mTLS к Secret Manager → sidecar/CSI → файлы в tmpfs + hot-reload. So’zsiz, envvars «abadiy».
S: Kubernetes Secretda sir saqlash mumkinmi?
O: Faqat KMS-provayder va qat’iy siyosatlar bilan etcd shifrlash yoqilgan bo’lsa. Tashqi saqlash va CSIni afzal koʻring.
V: Ijarachining kirishini qanday «kripto-o’chirish» mumkin?
O: Uning Secret Manager’dagi siyosatini bekor qilish/blokirovka qilish, barcha leasesni nogironlashtirish, kalitlarni rotatsiya/regeneratsiya qilish; KMSdan foydalanilganda - tegishli KEK unwrapini oʻchirish.
- «At Rest shifrlash»
- «In Transit shifrlash»
- «Kalitlarni boshqarish va rotatsiya»
- «S2S-autentifikatsiya»
- «So’rovlarning imzosi va verifikatsiyasi»