API Gateway: arhitektura we howpsuzlyk
TL; DR
API-şlýuz syýasatyň ýeke-täk nokady (authz, rate, transformasiýa, audit) we daşarky dünýä bilen hyzmatlaryň arasyndaky ynam serhedidir. Üstünlik: Zero-Trust (mTLS/JWT), policy-as-code, SLO gönükdirilen traffigi dolandyrmak we ortogonal gözegçilik. Guruň: edge gateway → BFF → service mesh; wersiýalanmagy we fiç-baýdaklary saklaň; webhook we açar goragyny awtomatlaşdyryň; kanar relizlerini synagdan geçiriň.
1) Ýerleşdirmegiň rollary we patternleri
Edge/API Gateway (north-south): daşarky serhet. Termination TLS, WAF, DDoS, authN/Z, rate/quotas, CORS, transformasiýa, kesh, webhooks.
BFF (Backend-for-Frontend): anyk müşderilere uýgunlaşma gatlagy (web/mobile/partners). Jogaplaryň shemalary, agregasiýalary, çäkleri, keşleri.
Internal Gateway (east-west )/Service Mesh Ingress: hyzmat-hyzmatyň içerki ygtyýarnamasy, mTLS, syýasatçy-routing.
gRPC/REST/GraphQL şlýuzy: protokol translatorynyň we şemalarynyň ýeke nokady.
Anti-pattern: "hemme zat bir monolit şlýuzyň üsti bilen gurşawy izolýasiýa etmezden", "pluginlerde gizlin iş logikasy", "düzgünleriň el bilen dolandyrylmagy".
2) Ynam modeli we tassyklama
TLS 1. 2+/1. 3 perimetrde, HSTS jemgyýetçilik domenlerinde; içinde - gulp bilen hyzmatlaryň arasyndaky mTLS.
OAuth2/OIDC: Authorization Code (PKCE); serwer integrasiýalary üçin client-credentials; Gysga TTL we açar aýlawly JWT (JWKS).
Hyzmatdaş integrasiýalary we webhuklar üçin HMAC gollary (müşderi üçin açar, SHA-256/512, taýtstampy barlamak we anti-replay).
API-açarlar - diňe goşmaça faktor/treking üçin; skope, IP, möhleti çäklendirmek.
- authN (kim) we authZ (näme mümkin) bölüň. Atributlary (skopes, roles, tenant, risk flags) ulanyň.
- Ähli bellikler - aud/iss/exp/nbf; clock-skew ≤ 60s; hökmany kid we JWKS-kesh ≤ 5 minut.
3) Awtorizasiýa we syýasat (Zero-Trust)
ABAC/RBAC şlýuzda: claims + soragyň mazmuny boýunça düzgünler (IP/ASN/geo/tenant).
Policy-as-Code (mysal üçin, OPA/Rego): düzgünleriň Git, CI-tassyklama, kanareýa hasaplamalarynda saklanmagy.
Köp kärendeçilik: 'X-Tenant-Id', SSO-da tenant-serhetde izolýasiýa; kärendeçi üçin kwotalar/çäklendirmeler.
4) Traffigi dolandyrmak we ygtybarlylyk
Rate limiting: leaky/token bucket, granulýasiýa: açar/tenant/route/BIN/ýurt (töleg API üçin).
Quotas: gündelik/aýlyk, agyr amallar üçin aýratyn (mysal üçin, hasabatlar).
Burst control we dynamic throttling.
Circuit breaker: nädogry/gizlin açyş; apstrimlere görä outlier detection.
Retry with backoff+jitter; idempotentlik: 'Idempotency-Key' açary + TTL penjiresi + netijäni saklamak.
Timeouts: müşderi <şlýuz <apstrim; paýhasly p95-görkezmeler (mysal üçin, 1. 5s/3s/5s).
Failover/Canary:% -routing (weighted), session-affinity opsiýa, blue/green.
5) Transformasiýalar we walidatorlar
Shemalar: REST üçin OpenAPI/JSON Shema; gRPC üçin Protobuf; GraphQL üçin SDL. Şlýuzda request/response tassyklamasy.
GraphQL federasiýasy (BFF üçin).
Header normalizasiýa (trace-ids, security headers), response filtering (PII-redaksiýa).
CORS: whitelists, 'Vary' dogry, 'Authorization' soraglarynda "gadaganlyk.
Compression и response caching (ETag/Cache-Control) для safe-GET.
6) Perimetriň howpsuzlygy
WAF: OWASP Top-10 düzgünleri, möhüm ýollar üçin oňyn model, wirtual ýamalar.
Bot-gorag: rate-based signaturalar, device fingerprint, köpçülige açyk nokatlar üçin goralýan kapçalar.
DDoS-galkan: upstream (cloud) + lokal çäkler; geo/ASN blok sahypalary.
CSP/Referrer-Policy/X-Frame-Options - eger şlýuz statika/widjetlere hyzmat etse.
WebSockets/SSE/WebTransport: aýry-aýry çäkleriň we wagt-autlaryň profilleri; token boýunça awth-uzaltma.
7) Webhuklar: howpsuzlyk we eltip bermek
Her bir alyjynyň öz syry bar; gol 'HMAC (signature, timestamp' path 'body)'; rugsat berilýän wagt penjiresi (mysal üçin 5 minut).
Kabul edilişdäki idempotentlik: 'event _ id'.
Retraýlar: eksponensial, iň ýokary N; hand-shake üçin status-endpoint.
mTLS/Allow-list IP; çäklendirmeler bilen haýyş boýunça replay mümkinçiligi.
8) Gözegçilik we audit
Logy :/PAN/PII syrlaryny ýazmaň; 'trace _ id '/' span _ id' boýunça korelllemek; gizlemek.
Metrikler: RPS, error rate synp boýunça, latency p50/p95/p99, open circuits, retry rate, 4xx vs 5xx, saturation.
Söwda: W3C Trace Context; 'traceparent '/' tracestate' -ni akymlara zyňmak.
Audit: "kim we näme sebäp boldy/üýtgetdi" aýratyn akym, üýtgemeýän ammar; syýasat wakalary (access-denied, quota-hit).
9) Syrlar we kriptografiýa
Açarlary saklamak: KMS/Vault, her 90 günde aýlanmak (ýa-da köplenç), okamak üçin aýratyn rollar.
Şahadatnamalar: awtomatiki bermek/täzelemek (ACME), jübi üçin pinning (TOFU/HPKP-like seresaplylyk bilen).
JWKS-rotasiýa: iki sany işjeň açar (köne/täze), açyk aýlaw penjireleri.
Kriptoprofiller TLS: ECDHE-ni ileri tutmak, gowşak şifrleri/protokollary gadagan etmek.
10) Komplayens we maglumatlar
PCI DSS: PAN-safe akymlary, tokenizasiýa; hiç haçan pluginleriň üsti bilen raw-PAN ýazmaň.
GDPR/DSAR: sebit/tenant boýunça marşrut, data residency, aýyrmak/anonimleşdirmek.
PII ekspozisiýa çägi: şlýuzdaky meýdanlary süzmek, duýgur sözbaşylary şifrlemek.
11) Topologiýalar we köp sebitlilik
Self-managed vs Managed (Envoy/Kong/NGINX vs bulut API şlýuzy). Berk gözegçilik üçin/PCl - köplenç öz-özüňi dolandyrýar.
Multi-AZ/Multi-Region Active-Active: global DNS/GSLB, health-based we geo-routing, per-region secret-stores.
DR-meýilnamasy: RPO/RTO, synk syýasatçy bilen sowuk/ýyly standby şlýuz.
12) API wersiýalaşdyrmak we ewolýusiýa
Strategiýalar: URI vN, header-versioning, content-negotiation. Köpçülik üçin - takyk deprecation policy (6-12 aýa ≥).
Backward-compat: opsiýa meýdançalaryny goşmak bilen shemalary giňeltmek; Git şertnamalary, OpenAPI linterleri.
Canary/Shadow: traffigi täze wersiýanyň "kölegesine" geçirmek, jogaplary deňeşdirmek.
13) Öndürijilik we nagt pul
GET/idempotent soraglary üçin edge kesiş; şertler: dogry ETag/Cache-Control.
Apstrimlere baglanyşyk; HTTP/2 saklamak; gRPC üçin - iň ýokary girdeji.
Payload budgets: jisimleriň ululygyny çäklendirmek; gzip/br.
Ýokary ýygylykly paneller/kataloglar üçin BFF jogaplaryndan öň kompýuter.
14) Konfigurasiýany dolandyrmak
GitOps: marşrutlaryň/syýasatlaryň deklaratiw manifestleri; review/CI (lint, security scan); Kanareýaly CD.
Şlýuzdaky baýdaklar: deploýsyz marşrutlaryň/düzgünleriň çalt öçürijisi.
Gaýtalanýan syýasatlar üçin templatlar (OIDC, rate, CORS).
15) Kiçi snippetler (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 goly:
pseudo sig = HMAC_SHA256(secret, timestamp + "\n" + method + "\n" + path + "\n" + sha256(body))
assert now - timestamp < 300s
16) Şlýuz üçin NFT (NFR) we SLO
Uptime (aý): ≥ 99. 95% (edge), ≥ 99. 9% (internal).
Latency p95: ≤ goşundylary 50-100 ms.
Error budget: ≤ 0. Şlýuzdan 05% 5xx (akymdan başga).
Howpsuzlyk syýasaty: 100% TLS soraglary; 0 syr syzdyrylan hadysalar; WAF düzgünleriniň gowşaklygy MTTR ≤ 24h.
17) Girizmegiň çek-sanawy
- Binagärlik kartasy: edge → BFF → mesh, domenleriň/marşrutlaryň sanawy.
- TLS/mTLS, JWKS-rotasiýa, KMS/Vault-daky syrlar.
- OAuth2/OIDC, scopes/claims, ABAC/OPA.
- Rate/quotas, circuit-breaker, retry/backoff, idempotentlik.
- OpenAPI/JSON Shema tassyklaýjylary, gRPC/REST/GraphQL.
- WAF/DDoS/bot profili, CORS/CSP.
- Webhook howpsuzlygy: HMAC, anti-replay, allow-list.
- Tölegler/metrikler/söwdalar; giriş/üýtgeşme barlagy.
- GitOps/policy-as-code; kanareýa örtükleri; DR meýilnamasy.
- PCI/GDPR gözegçilik: gizlemek, retensiýa, DSAR-proseduralary.
18) Ýygy-ýygydan ýalňyşlyklar
Şlýuzyň konfigurasiýasynda/bloglarynda syrlary saklamak.
Global "-da CORS/hemmelere ynam 'Origin'.
Idempotentligiň we dogruçyl taým-autlaryň ýoklugy → goşa we göç.
Şlýuz pluginlerinde authN we iş logikasyny garyşdyrmak.
JWKS aýlawy we kid → "dykylan" açarlar ýok.
Trace-korrelasiýasyz synlamak → kör RCA.
Gysgaça maglumat
API Gateway diňe bir tersine proksi däl, eýsem öndürijilik, laýyklyk we monetizasiýa esaslanýan syýasat we howpsuzlyk platformasydyr. Zero-Trust guruň, şertnamalary shemalar bilen düzüň, SLO arkaly traffigi dolandyryň, GitOps we policy-as-code arkaly konfigurasiýalary awtomatlaşdyryň. Şonda şlýuz dar agzyňyza däl-de, arhitekturaňyzyň durnukly "gyrasyna" öwrüler.