GH GambleHub

Policy as Code

1) «Siyosat» deb nimani hisoblash kerak

Siyosat - berilgan kontekstda «mumkin/mumkin emas» (yoki «iloji boricha») degan savolga javob beradigan belgilanadigan qoida:
  • Kirish/avtorizatsiya: RBAC/ABAC, ReBAC, maʼlumotlar eksporti, step-up (MFA).
  • Infratuzilma xavfsizligi: Kubernetes admission-nazorati, tasvirlar/sirlar siyosati, tarmoq qoidalari.
  • Komplayens va maxfiylik: kelishuvlarni boshqarish, PII-teglash, mahalliy hisobot sutkalari, geo-cheklovlar.
  • Konfiguratsiyalar va sifat: «taqiqlash: latest», resurs limitlari, majburiy resurs teglari (Cloud).
  • Ma’lumotlar va ML: roziligisiz to’plamlarda treningni taqiqlash, k-anonimlik, DP-byudjetlar, Data Lineage-invariantlar.

2) PaC arxitektura modeli

PAP (Policy Administration Point): repozitoriya va boshqaruv jarayonlari (MR/PR, revyu, versiya).
PDP (Policy Decision Point): siyosat yechimini hisoblaydigan vosita (OPA, Cedar-engine, o’z interpretatori).
PEP (Policy Enforcement Point): qoʻllash nuqtasi (API-shlyuz, K8s webhook-admission, ETL-transformer, SDK).
PIP (Policy Information Point): atributlar/faktlar manbalari: IdP, resurslar kataloglari, maʼlumotlar ombori, xavf-tezkor.
Decision Log/Audit: oʻzgarmas qarorlar jurnallari (hodisalar va muvofiqlikni tahlil qilish uchun).

Oqim: soʻrov → PEP kontekstni shakllantiradi → PDP faktlarni yuklaydi (PIP) → yechimni hisoblaydi → PEP qoʻllaydi (allow/deny/tahrir) → log/metrika.

3) Asboblar va domenlar

OPA/Rego - deklarativ siyosatlar uchun universal vosita va til (Gatekeeper K8s webhook-admission, CI - Conftest, API - sidecar/xizmat).
Kyverno - YAMLda Kubernetes uchun deklarativ siyosat, patch/validatsiya/generatsiya.
Cedar (AWS/ko’chirib o’tiladigan) - «kimdir nimadir qilayotganiga» e’tibor qaratadigan siyosatchi tili.
Cloud IAM (AWS/GCP/Azure) - bulutli resurslar siyosati (tercihen statik va IaC rejalarida PaC chek).
Custom - O’ziga xos xususiyatlar uchun JSON/SQL ustidagi DSL/qoidalar (masalan, ML-komplayens).

4) Siyosatning hayot sikli

1. Maqsad va domenni aniqlash: «High/CRITICAL zaif konteynerlarni yuklashni taqiqlash».
2. Kodda rasmiylashtirish: Rego/Cedar/YAML.
3. Testlar: haqiqat jadvallari, salbiy holatlar, property-based.
4. CI tekshiruvlari: linter, unit, soxta manifestlar/soʻrovlarda integratsiya.
5. Nashr va tarqatish: bundle-da nashr etish, imzo, PDP/edge-ga yetkazib berish.
6. Monitoring: hit-rate, latency p95/p99, deny ulushi, drift dashbordlari.
7. Istisnolar/waivers: cheklangan vaqt/hajm, audit va egasi bilan.
8. Refaktoring va arxiv: versiyalar, moslik, migratsiya.

5) Saqlash va tarqatish

Repo-layout: `policies/<domain>/<policy>.rego|cedar|yaml`, `tests/`, `bundles/`, `schemas/`.
Version: semver va’policy _ version’PDP javoblarida.
Bundles: siqilgan siyosatlar + sxemalar + konfiguratsiyalar (supply chain security).
Distribution: pull (PDP registry/S3 tortadi) yoki push (kontroller yuboradi).
Partial evaluation: perimetrda tez bajarish uchun siyosatni oldindan belgilash.

6) Ma’lumotlar modeli va sxemalari

Kontekstning yagona shartnomasi:’subject’,’resource’,’action’,’env’,’legal’.
JSON-Schema/Protobuf: haqiqiy modellarni tasdiqlang; sxemalarning mos kelmasligi «indeterminate → deny» ning sababidir.
Atributlarni normallashtirish: unifikatsiyalangan nomlar (masalan,’tenant _ id’,’risk _ level’,’pii _ tags’,’image. vulns`).

7) Unumdorlik va ishonchlilik

Yechimlar keshi:’(subject_hash, resource_key, action, policy_version)’; qisqa TTL, voqealar bo’yicha nogironlik (rollar/teglarning o’zgarishi).
Mahalliy faktlar: og’ir PIPlarni issiq yo’lda tortmang - snapshotlarni sinxronlashtiring.
Fail-open vs fail-closed: kritik domenlar xavfsizligi - fail-closed; UX-kritik uchun - degradatsiya (deny o’rniga tahrir).
Maxfiylik budjeti: PDP xotirasida yechim topish uchun’<3-10 ms’maqsadi,’<30-50 ms’PIP.

8) Istisnolarni boshqarish (waivers)

Vaqt bo’yicha cheklangan (masalan, 7 kun), majburiy egasi va sababi bilan.
Sotib olingan: resurs/proekt/neyspeys bo’yicha; global «abadiy» taqiqlash.
Audit va eslatmalar: muddati tugaydigan waiver’lar bo’yicha hisobotlar, avtomatik yopiq/eskalatsiya.

9) Metrika va kuzatish

Policy Coverage: PaC himoyalangan yo’llar/endpointlar ulushi.
Decision Latency / QPS / Error rate.
Deny Rate va False Positive/Negative («dry-run/shadow» rejimi orqali).
Drift: reja (IaC) va fakt (live), SDK va server yechimlari oʻrtasidagi tafovut.
Аудит: `decision_id, policy_ids, version, attributes_digest, effect, reason`.

10) Anti-patternlar

Versiyalar va testlarsiz kodga tikilgan siyosatchilar.
Kontekst sxemalari/validatsiyasining yo’qligi → oldindan aytib bo’lmaydigan qarorlar.
Bitta monolit fayl "mega. rego».
Istisno jarayoni yo’q → «qo’lda aylanib o’tish» va tartibsizlik.
Faqat CI’da «shift-left» bo’lmagan runtime-qo’llash (kech muvaffaqiyatsizliklar).
Siyosatda yashirin sayd effektlari (siyosat sof funksiya bo’lishi kerak).

11) Misollar

11. 1 Rego (OPA): K8s zaif tasvirlarni taqiqlash

rego package k8s. admission. vulns

deny[msg] {
input. kind. kind == "Pod"
some c img:= input. request. object. spec. containers[c].image vulns:= data. registry. scan [img] # actual-snapshot from PIP count ({v     v:= vulns[_]; v.severity == "CRITICAL"}) > 0 msg:= sprintf("image %s has CRITICAL vulns", [img])
}

11. 2 Rego: maʼlumotlarni faqat MFA va «oq» IP orqali eksport qilish

rego package api. export

default allow = false

allow {
input. action == "export"
input. subject. mfa_verified == true net. cidr_contains("203. 0. 113. 0/24", input. env. ip)
}

11. 3 Cedar: faqat egasiga yoki jamoa aʼzolariga oʻqish

cedar permit(
principal in Group::"team_members",
action in [Action::"read"],
resource in Photo::"")
when { resource. owner == principal          resource. team_id in principal. team_ids };

11. 4 Kyverno (YAML): taqiqlash’: latest’va majburlash. resurslar

yaml apiVersion: kyverno. io/v1 kind: ClusterPolicy metadata:
name: disallow-latest-and-require-limits spec:
validationFailureAction: Enforce rules:
- name: disallow-latest match: { resources: { kinds: ["Pod"] } }
validate:
message: "Image tag 'latest' is not allowed."
pattern:
spec:
containers:
- name: ""
image: "!:latest"
- name: require-limits match: { resources: { kinds: ["Pod"] } }
validate:
message: "resources. limits.{cpu,memory} required."
pattern:
spec:
containers:
- resources:
limits:
cpu: "?"
memory: "?"

11. Terraform-reja uchun CI 5 Conftest

bash terraform plan -out tf. plan terraform show -json tf. plan > tf. json conftest test tf. json --policy policies/terraform

12) Mavjud qobiliyatlarga integratsiyalash

RBAC/ABAC: PaC - deklaratsiya qatlami; Rolli dvigatel haqidagi maqoladagi PDP/PEP qayta ishlatiladi.
Kelishuvlarni boshqarish: «ads/personalization» siyosati maʼlumotlar/endpointlarga kirish sharti sifatida.
Anonimlashtirish/PII: siyosatchilar anonimlashtirish profillari va DP-byudjetsiz trening/eksport qilishni taqiqlaydi.
Geo-yo’naltirish: saqlash hududlari bo’yicha trafikni/ma’lumotlarni yo’naltirish siyosati.

13) Jarayonlar va odamlar

Siyosat domenlari egalari: xavfsizlik, platforma, ma’lumotlar, mahsulot/marketing.
Revyuerlar: security + domen egalari.
Siyosat katalogi: maqsad tavsifi, xavf, SLO, aloqa, misollar, hodisalarga havolalar.
O’qitish: ishlab chiquvchilar uchun gaydlar va snippetlar (testlarni qanday yozish kerak, Rego-ni qanday tuzatish kerak).

14) Arxitektorning chek-varaqasi

1. Minimal domen va owners toʻplami aniqlanganmi?
2. Test, linter va CI bilan siyosatchi ombori?
3. PDP/PEP perimetr, API, K8s va maʼlumot payplaynlarida joylashtirilganmi?
4. Kontekst va validatsiya sxemalari bormi?
5. Bandllarni imzolash va yetkazib berish, kesh va nogironlik strategiyasi?
6. Metrika (latency, deny, drift), decision-log va audit?
7. TTL va hisobot bilan istisnolar jarayoni?
8. Enforce oldidan Dry-run/shadow?
9. Partial evaluation/« issiq »yoʻllar uchun oldindan kompilyatsiya?
10. Degradatsiyaga Runbook (fail-closed/allow-with-redaction)?

Xulosa

Policy as Code qoidalarni kod-revyu, testlar, CI/CD, metriklar va qaytishlar kabi printsiplar boʻyicha takrorlanadigan, tekshiriladigan va boshqariladigan qiladi. PaC-ni avtorizatsiya (RBAC/ABAC), komplayens va platforma xavfsizligi bilan ulash orqali siz admission-nazoratdan tortib ma’lumotlar eksportigacha va ML-payplayngacha bo’lgan tizim xatti-harakatlarini boshqarishning yagona, bashorat qilinadigan va ko’paytiriladigan konturini olasiz.

Contact

Biz bilan bog‘laning

Har qanday savol yoki yordam bo‘yicha bizga murojaat qiling.Doimo yordam berishga tayyormiz.

Telegram
@Gamble_GC
Integratsiyani boshlash

Email — majburiy. Telegram yoki WhatsApp — ixtiyoriy.

Ismingiz ixtiyoriy
Email ixtiyoriy
Mavzu ixtiyoriy
Xabar ixtiyoriy
Telegram ixtiyoriy
@
Agar Telegram qoldirilgan bo‘lsa — javob Email bilan birga o‘sha yerga ham yuboriladi.
WhatsApp ixtiyoriy
Format: mamlakat kodi va raqam (masalan, +998XXXXXXXX).

Yuborish orqali ma'lumotlaringiz qayta ishlanishiga rozilik bildirasiz.