API Gateway: arxitektura va xavfsizlik
TL; DR
API-shlyuz - bu siyosatning yagona nuqtasi (authz, rate, transformatsiya, audit) va tashqi dunyo va xizmatlar o’rtasidagi ishonch chegarasi. Zero-Trust (mTLS/JWT), policy-as-code, SLO yo’naltirilgan trafikni boshqarish va ortogonal kuzatish muvaffaqiyat keltiradi. Quring: edge gateway → BFF → service mesh; versiyalashni va fich-bayroqlarni saqlang; vebxuk va kalitlar himoyasini avtomatlashtiring; kanar relizlarini sinovdan o’tkazing.
1) Joylashtirish rollari va patternlari
Edge/API Gateway (north-south): tashqi chegara. Termination TLS, WAF, DDoS, authN/Z, rate/quotas, CORS, transformatsiyalar, kesh, webhooks.
BFF (Backend-for-Frontend): aniq mijozlarga moslashish qatlami (web/mobile/partners). Sxemalar, agregatsiyalar, limitlar, javoblarni keshlash.
Internal Gateway (east-west )/Service Mesh Ingress: servis-ga ichki avtorizatsiya, mTLS, siyosat-routing.
gRPC/REST/GraphQL shlyuzi: protokol translatori va validator sxemasining yagona nuqtasi.
Anti-patternlar: «hammasi bir monolit shlyuz orqali izolyatsiyasiz muhit», «plaginlarda yashirin biznes mantiq», «qoidalarni qo’lda boshqarish».
2) Ishonch modeli va autentifikatsiya
TLS 1. 2+/1. 3 ta perimetrda, HSTS ommaviy domenlarda; ichida - shlyuz va servislar o’rtasidagi mTLS.
OAuth2/OIDC: Authorization Code (PKCE); server integratsiyalari uchun client-credentials; Qisqa TTL va kalitlar rotatsiyasi (JWKS) bilan JWT.
hamkor integratsiyalar va vebxuklar uchun HMAC imzolari (mijoz uchun kalit, SHA-256/512, taymshtampni tekshirish va anti-replay).
API-kalitlar - faqat qo’shimcha omil sifatida/treking uchun; scope, IP, muddatni cheklash.
- AuthN (kim) va authZ (nima mumkin) ni ajrating. Atributlardan (scopes, roles, tenant, risk flags) foydalaning.
- Barcha tokenlar - aud/iss/exp/nbf; clock-skew ≤ 60s; majburiy kid va JWKS-kesh ≤ 5 daqiqa.
3) Avtorizatsiya va siyosat (Zero-Trust)
ABAC/RBAC shlyuzda: claims ustidagi qoidalar + so’rov konteksti (IP/ASN/geo/tenant).
Policy-as-Code (masalan, OPA/Rego): qoidalarni Git, CI-validatsiya, kanareya shakllarida saqlash.
Multi-ijara:’X-Tenant-Id’, SSOni tenant-chegarada izolyatsiya qilish; ijarachiga kvotalar/limitlar.
4) Trafikni boshqarish va ishonchlilik
Rate limiting: leaky/token bucket, granulyarligi: kalit/tenant/route/BIN/mamlakat (to’lov API uchun).
Quotas: kunduzgi/oylik, og’ir operatsiyalar uchun alohida (masalan, hisobotlar).
Burst control va dynamic throttling asosida yuk va SLO.
Circuit breaker: xato/yashirin boʻlganda ochish; outlier detection.
Retry with backoff+jitter; idempotentlik:’Idempotency-Key’kaliti + TTL oynasi + natijani saqlash.
Timeouts: mijoz <shlyuz <apstrim; oqilona p95-mo’ljallar (masalan, 1. 5s/3s/5s).
Failover/Canary:% -routing (weighted), session-affinity ixtiyoriy, blue/green.
5) Transformatsiyalar va validatorlar
Sxemalar: REST uchun OpenAPI/JSON Schema; gRPC uchun Protobuf; GraphQL uchun SDL. Shlyuzda request/response validatsiyasi.
gRPC REST transpilatsiya, GraphQL federation (BFF uchun).
Header normallashtirish (trace-ids, security headers), response filtering (PII-tahriri).
CORS: whitelists,’Vary’toʻgʻri,’Authorization’soʻrovlarida taqiqlangan.
Compression и response caching (ETag/Cache-Control) для safe-GET.
6) Perimetr xavfsizligi
WAF: OWASP Top-10 qoidalari, tanqidiy routlar uchun ijobiy model, virtual patchlar.
Bot-himoya: rate-based signatura, device fingerprint, jamoat endpointlari uchun himoyalangan kapchalar.
DDoS-qalqon: upstream (cloud) + lokal limitlar; geo/ASN blok-varaqlar.
CSP/Referrer-Policy/X-Frame-Options - agar shlyuz statik/vidjetlarga xizmat ko’rsatsa.
WebSockets/SSE/WebTransport: alohida limitlar va taym-autlar profillari; token bo’yicha auth-uzaytirish.
7) Vebxuki: xavfsizlik va yetkazib berish
Har bir oluvchining o’z siri bo’ladi; ’HMAC (signature, timestamp’ path’body)’imzosi; ruxsat etilgan vaqt oynasi (masalan, 5 daqiqa).
Qabuldagi idempotentlik:’event _ id’bo’yicha dedup.
Retralar: eksponensial, maksimal N; hand-shake uchun status-endpoint.
mTLS/Allow-list IP; cheklovlar bilan so’rov bo’yicha replay imkoniyati.
8) Kuzatuv va audit
Logi :/PAN/PII sirlarini noto’g "ri talqin qilmaslik; ’trace _ id ’/’ span _ id’ bo’yicha korelllash; kamuflyaj qilish.
Metriklar: RPS, error rate, latency p50/p95/p99, open circuits, retry rate, 4xx vs 5xx, saturation.
Treyslar: W3C Trace Context; ’traceparent ’/’ tracestate’ ni apstrimlarga tashlash.
Audit: «kim va nimani keltirib chiqardi/o’zgartirdi» alohida oqimi, o’zgarmas ombor; siyosat voqealari (access-denied, quota-hit).
9) Sirlar va kriptografiya
Kalitlarni saqlash: KMS/Vault, har 90 kunda (yoki ko’proq) rotatsiya, o’qish uchun alohida rollar.
Sertifikatlar: avtomatik ravishda berish/yangilash (ACME), mobil uchun pinning (TOFU/HPKP-like ehtiyotkorlik bilan).
JWKS-rotatsiya: ikkita aktiv kalit (eski/yangi), aniq prokat oynalari.
TLS kriptoprofillari: ECDHE afzalligi, zaif shifrlar/protokollarni taqiqlash.
10) Komplayens va ma’lumotlar
PCI DSS: PAN-safe oqimlari, tokenizatsiya; hech qachon raw-PAN’ni plaginlar orqali prokslamang.
GDPR/DSAR: mintaqa/tenant yoʻnalishi, data residency, olib tashlash/anonimlashtirish.
PII ekspozitsiya chegarasi: shlyuzdagi maydonlarni filtrlash, sezgir sarlavhalarni shifrlash.
11) Topologiyalar va ko’p mintaqalik
Self-managed vs Managed (Envoy/Kong/NGINX vs bulutli API-shlyuz). Qattiq nazorat uchun/PCl - ko’pincha self-managed.
Multi-AZ/Multi-Region Active-Active: global DNS/GSLB, health-based va geo-routing, per-mintaqaviy secret-stores.
DR-reja: RPO/RTO, sovuq/issiq standby shlyuz bilan sink siyosatchi.
12) API versiyalash va evolyutsiyasi
Strategiyalar: URI vN, header-versioning, content-negotiation. Jamoatchilik uchun - aniq deprecation policy (6-12 oydan ≥).
Backward-compat: ixtiyoriy maydonlarni qoʻshish orqali sxemalarni kengaytirish; Git, OpenAPI linterlariga shartnomalar.
Canary/Shadow: trafikni yangi versiyaning «soyasiga» tushirish, javoblarni taqqoslash.
13) Unumdorlik va kesh
GET/idempotent soʻrovlari uchun edge kesh; shartlar: to’g "ri ETag/Cache-Control.
Connection pooling HTTP/2 yoqilgan holda ushlab turish; gRPC uchun - maksimal foyda.
Payload budgets: tana o’lchamlarini cheklash; gzip/br.
Yuqori chastotali panellar/kataloglar uchun BFF javoblarining pre-compute.
14) Konfiguratsiyani boshqarish
GitOps: yo’nalishlar/siyosatning deklarativ manifestlari; review/CI (lint, security scan); Kanareya qismli CD.
Shlyuzdagi ficha-bayroqlar: deploysiz yo’nalishlar/qoidalarning tezkor o’chirgichi.
Takrorlanuvchi siyosatlar uchun templeytlar (OIDC, rate, CORS).
15) Mini-snippetlar (psevdo)
Idempotentlik (Kong/Envoy-style):yaml plugins:
- name: idempotency config:
header: Idempotency-Key ttl: 24h storage: redis
Rate/Quota:
yaml
- name: rate-limiting config: {policy: local, minute: 600, key: consumer_id}
- name: response-ratelimiting config: {limits: {"heavy": {minute: 60}}, key: route_id}
JWT/OIDC:
yaml
- name: oauth2-introspection config:
jwks_uri: https://idp/.well-known/jwks. json required_scopes: ["payments:write","payments:read"]
WAF (profil):
yaml
- name: waf config:
mode: block ruleset: owasp_crs exclusions: ["/health", "/metrics"]
Webhook imzosi:
pseudo sig = HMAC_SHA256(secret, timestamp + "\n" + method + "\n" + path + "\n" + sha256(body))
assert now - timestamp < 300s
16) NFT (NFR) va shlyuz uchun SLO
Uptime (oy): ≥ 99. 95% (edge), ≥ 99. 9% (internal).
Latency p95: ≤ 50-100 ms apstrimga qo’shimchalar.
Error budget: ≤ 0. shlyuzdan 05% 5xx (apstrimdan tashqari).
Xavfsizlik siyosati: 100% TLS bilan so’rovlar; sirlar tarqalishining 0 ta hodisasi; MTTR zaifligi WAF qoidalari ≤ 24h.
17) Joriy etish chek-varaqasi
- Arxitektura xaritasi: edge → BFF → mesh, domen/routlar roʻyxati.
- TLS/mTLS, JWKS-rotatsiya, KMS/Vault sirlari.
- OAuth2/OIDC, scopes/claims, ABAC/OPA.
- Rate/quotas, circuit-breaker, retry/backoff, idempotentlik.
- OpenAPI/JSON Schema validatorlari, gRPC/REST/GraphQL transformatsiyalari.
- WAF/DDoS/bot profil, CORS/CSP.
- Webhook xavfsizligi: HMAC, anti-replay, allow-list.
- Logi/metrika/treys; kirish/o’zgartirish auditi.
- GitOps/policy-as-code; kanareochnie postovki; DR-reja.
- PCI/GDPR nazorati: kamuflyaj, retensiyalar, DSAR-protseduralari.
18) Tez-tez xatolar
Shlyuz/log konfiguratsiyasida sirlarni saqlash.
Global "CORS/hamma ishonch’Origin’.
Idempotentlik va halol taym-autlarning yo’qligi → dubli va ko’chki.
Shlyuz plaginlarida authN va biznes mantiqni aralashtirish.
JWKS rotatsiyasi va kid → «tiqilib qolgan» kalitlar yoʻq.
Trace-korrelyatsiyasiz kuzatish → ko’r RCA.
Xulosa
API Gateway - bu shunchaki teskari proksi emas, balki unumdorlik, komplayens va monetizatsiya asosidagi siyosat va xavfsizlik platformasi. Zero-Trust tuzing, shartnomalarni sxemalar bilan tuzing, trafikni SLO orqali boshqaring, konfiguratsiyalarni GitOps va policy-as-code orqali avtomatlashtiring. Shunda shlyuz tor bo’yin emas, balki arxitekturangizning barqaror «qirrasi» bo’ladi.