API Gateway: Memarlıq və Təhlükəsizlik
TL; DR
API şlyuz siyasətin yeganə nöqtəsidir (authz, rate, transformasiya, audit) və xarici dünya və xidmətlər arasında etimad sərhədidir. Uğur verir: Zero-Trust (mTLS/JWT), policy-as-code, SLO yönümlü trafik idarəetmə və ortoqonal müşahidə. Qurmaq: edge gateway → BFF → service mesh; versiyası və Fich bayraqları saxlamaq; vebhuk və açarların qorunmasını avtomatlaşdırın; kanar relizləri test edin.
1) Rollar və yerləşdirmə nümunələri
Edge/API Gateway (north-south): xarici sərhəd. Termination TLS, WAF, DDoS, authN/Z, rate/quotas, CORS, transformasiyalar, cache, webhooks.
BFF (Backend-for-Frontend): xüsusi müştərilərə uyğunlaşma təbəqəsi (web/mobile/partners). Sxemlər, aqreqasiyalar, limitlər, cavabların önbelləklənməsi.
Internal Gateway (east-west )/Service Mesh Ingress: xidmət-xidmətə daxili avtorizasiya, mTLS, routing siyasətçisi.
gRPC/REST/GraphQL şlyuz: protokol translator və validator sxemləri vahid nöqtə.
Anti-nümunələr: «hamısı bir monolit şluz vasitəsilə mühit izolyasiya olmadan», «plugin gizli iş məntiqi», «əl qaydaları idarə».
2) Etimad modeli və autentifikasiya
TLS 1. 2+/1. 3 perimetrdə, ictimai domenlərdə HSTS; daxilində - şlüz və xidmətlər arasında mTLS.
OAuth2/OIDC: Authorization Code (PKCE) müştərilər üçün; server inteqrasiyası üçün client-credentials; Qısa TTL və açar rotasiyası (JWKS) ilə JWT.
Partnyor inteqrasiyası və vebhuk üçün HMAC imzaları (müştəri üçün açar, SHA-256/512, vaxt tuşunu yoxlamaq və anti-replay).
API açarları - yalnız əlavə faktor/trekinq üçün; scope məhdudlaşdırmaq, IP, müddət.
- authN (kim) və authZ (nə edə bilər) paylaşın. Atributlardan (scopes, roles, tenant, risk flags) istifadə edin.
- Bütün tokenlər - aud/iss/exp/nbf ilə; clock-skew ≤ 60s; məcburi kid və JWKS cache ≤ 5 dəq.
3) Avtorizasiya və siyasət (Zero-Trust)
Şlüzdə ABAC/RBAC: claims + sorğu kontekstinin üstündəki qaydalar (IP/ASN/geo/tenant).
Policy-as-Code (məsələn, OPA/Rego): qaydaların Git, CI-validasiya, kanarya hesablamalarında saxlanması.
Multi-icarə: 'X-Tenant-Id' ilə izolyasiya, tenant-sərhəddə SSO; kirayəçi üçün kvotalar/limitlər.
4) Trafik idarəetmə və etibarlılıq
Rate limiting: leaky/token bucket, qranulyarlıq: açar/tenant/route/BIN/ölkə (ödəniş API üçün).
Quotas: gündəlik/aylıq, ağır əməliyyatlar üçün ayrı-ayrı (məsələn, hesabatlar).
Yük və SLO əsasında Burst control və dynamic throttling.
Circuit breaker: səhvlər/gecikmə zamanı kəşf; outlier detection axınlar üzrə.
Retry with backoff+jitter; idempotentlik: 'Idempotency-Key' açarı + TTL pəncərəsi + nəticənin saxlanması.
Timeouts: müştəri <şlz <axın; ağlabatan p95 işarələri (məsələn,, 1. 5s/3s/5s).
Failover/Canary:% -routing (weighted), session-affinity, blue/green.
5) Transformasiya və validatorlar
Sxemlər: REST üçün OpenAPI/JSON Schema; gRPC üçün Protobuf; GraphQL üçün SDL. Şlüzdə request/response təsdiqlənməsi.
gRPC REST transpilyasiyası, GraphQL federasiyası (BFF üçün).
Header normallaşdırma (trace-ids, security headers), response filtering (PII-edition).
CORS: whitelists, 'Vary' düzgün, 'Authorization' sorğularında "qadağa.
Compression и response caching (ETag/Cache-Control) для safe-GET.
6) Perimetr təhlükəsizliyi
WAF: OWASP Top-10 qaydaları, kritik marşrutlar, virtual yamalar üçün müsbət model.
Bot-müdafiə: rate-based signatures, device fingerprint, ictimai end-point üçün qorunan kapçalar.
DDoS-qalxan: upstream (cloud) + lokal limitlər; geo/ASN blok vərəqləri.
CSP/Referrer-Policy/X-Frame-Options - şlyuz statik/widget xidmət edirsə.
WebSockets/SSE/WebTransport: ayrı-ayrı limitlər və zaman-aut profilləri; auth-token uzadılması.
7) Webhucks: təhlükəsizlik və çatdırılma
Hər bir alıcının öz sirri var; 'HMAC (signature, timestamp' path 'body)' imzası; icazə verilən vaxt pəncərəsi (məsələn, 5 dəq).
Qəbulda idempotentlik: 'event _ id' dedupu.
Retrasiyalar: eksponensial, maksimum N; hand-shake üçün status-end-point.
mTLS/Allow-list IP; məhdudiyyətlər ilə tələb replay imkanı.
8) Müşahidə və audit
Log 'lar: sirləri/PAN/PII; 'trace _ id '/' span _ id'; maskalama.
Metriklər: RPS, sinifə görə error rate, latency p50/p95/p99, open circuits, retry rate, 4xx vs 5xx, saturation.
Traces: W3C Trace Context; axınlara 'traceparent '/' tracestate' atmaq.
Audit: «Kim və nəyə səbəb oldu/dəyişdi», dəyişməz saxlama; siyasət hadisələri (access-denied, quota-hit).
9) Sirləri və kriptoqrafiya
Anahtarların saxlanması: KMS/Vault, hər 90 gündən bir (və ya daha tez-tez), oxumaq üçün fərdi rollar.
Sertifikatlar: Avtomatik buraxılış/yeniləmə (ACME), mobil pinning (TOFU/HPKP-like ehtiyatla).
JWKS-rotasiya: iki aktiv açar (köhnə/yeni), aydın pəncərələr.
Kriptoprofili TLS: ECDHE üstünlüyü, həssas şifrələrin/protokolların qadağan edilməsi.
10) Komplayens və məlumatlar
PCI DSS: PAN-safe axınları, tokenizasiya; heç vaxt plugins vasitəsilə raw-PAN proks.
GDPR/DSAR: region/tenant marşrutu, data residency, silinmə/anonimləşdirmə.
PII ekspozisiya limiti: şlüzdə sahələrin süzülməsi, həssas başlıqların şifrələnməsi.
11) Topologiyalar və çoxregionallıq
Self-managed vs Managed (Envoy/Kong/NGINX vs bulud API şlyuz). Ciddi nəzarət üçün/PCl - daha çox self-managed.
Multi-AZ/Multi-Region Active-Active: qlobal DNS/GSLB, health-based və geo-routing, per-regional secret-stores.
DR planı: RPO/RTO, mavi siyasətçi ilə soyuq/isti standby şlyuz.
12) API versiyası və təkamülü
Strategiyalar: URI vN, header-versioning, content-negotiation. İctimai üçün - aydın deprecation policy (≥ 6-12 ay).
Backward-compat: isteğe bağlı sahələr əlavə edərək sxemləri genişləndirmək; Git müqavilələr, OpenAPI linters.
Canary/Shadow: yeni versiyası «kölgə» trafik qaçış, cavab müqayisə.
13) Performance və Cache
GET/idempotent sorğular üçün edge cache; şərtlər: düzgün ETag/Cache-Control.
Axınlar üçün Connection pooling; HTTP/2 açıq saxlamaq; gRPC üçün - maksimum fayda.
Payload budgets: bədən ölçülərinin məhdudlaşdırılması; gzip/br.
Yüksək tezlikli panellər/kataloqlar üçün BFF-nin əvvəlcədən kompüter cavabları.
14) Konfiqurasiyanın idarə edilməsi
GitOps: marşrutların/siyasətin deklarativ manifestləri; review/CI (lint, security scan); Kanarya partiyaları ilə CD.
Şlüzdə Ficha bayraqları: deploi olmadan marşrutların/qaydaların sürətli açarı.
Təkrarlanan siyasətlər üçün temperatur (OIDC, rate, CORS).
15) Mini snippetlər (psevdo)
İdempotentlik (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 imza:
pseudo sig = HMAC_SHA256(secret, timestamp + "\n" + method + "\n" + path + "\n" + sha256(body))
assert now - timestamp < 300s
16) Şlüz üçün NFT (NFR) və SLO
Uptime (ay): ≥ 99. 95% (edge), ≥ 99. 9% (internal).
Latency p95: ≤ 50-100 ms aşqar.
Error budget: ≤ 0. Şlüzdən 05% 5xx (axın istisna olmaqla).
Təhlükəsizlik siyasəti: TLS ilə 100% sorğu; 0 sirr sızması hadisələri; MTTR zəiflik WAF qaydaları ≤ 24h.
17) Giriş çek siyahısı
- Memarlıq xəritəsi: edge → BFF → mesh, domenlərin/marşrutların siyahısı.
- TLS/mTLS, JWKS-rotasiya, KMS/Vault sirləri.
- OAuth2/OIDC, scopes/claims, ABAC/OPA.
- Rate/quotas, circuit-breaker, retry/backoff, idempotentlik.
- OpenAPI/JSON Schema validatorları, gRPC/REST/GraphQL transformasiya.
- WAF/DDoS/bot profili, CORS/CSP.
- Webhook təhlükəsizlik: HMAC, anti-replay, allow-list.
- Log/metrik/treys; giriş/dəyişiklik auditi.
- GitOps/policy-as-code; kanar hesablamaları; DR planı.
- PCI/GDPR nəzarət: maskalama, retensiyalar, DSAR prosedurları.
18) Tez-tez səhvlər
Şlüz/log konfiqurasiyasında sirlərin saxlanması.
Qlobal "CORS/bütün 'Origin güvənir.
İdempotentlik və dürüst zaman-aut → dubl və uçqun yoxdur.
Şlyuz pluginlərində authN və biznes məntiqini qarışdırın.
No JWKS-rotasiya və kid → «sıxılmış» açarları.
trace-korrelyasiya olmadan müşahidə → kor RCA.
Xülasə
API Gateway yalnız reverse proxy deyil, performans, uyğunluq və monetizasiyanın dayandığı siyasət və təhlükəsizlik platformasıdır. Zero-Trust qurun, sxem müqavilələrini düzəldin, SLO vasitəsilə trafiki idarə edin, GitOps və policy-as-code vasitəsilə konfiqurasiyaları avtomatlaşdırın. Sonra şlyuz dar bir boyun deyil, memarlığınızın sabit bir «kənarı» olacaq.