Firewall саясаты және ACL
1) Мақсаттар мен қағидаттар
Firewall/ACL - бұл деректер жазықтығын бақылау: кім, қайда, қашан және қандай хаттама бойынша жүреді. Негізгі қағидаттар:- Least privilege: тек қажетті рұқсат ету (айқын allow, implicit deny).
- Segmentation: қоршаған ортаны оқшаулау (prod/stage/dev), тенанттар, критикалық контурлар (PCI/KMS/DB).
- Egress-бақылау: шығыс трафигі FQDN/IP тізімдерімен және жеке endpoint 'термен шектелген.
- Identity-aware (L7): шешімдер тек IP бойынша ғана емес, аутентификацияланған мәні бойынша (SPIFFE/OIDC) қабылданады.
- Infrastructure as Code: ережелер код ретінде, review/CI/CD, өзгерістер аудиті.
2) Таксономия: қайда және нені сүземіз
2. 1 Қабаттар және күйі
L3/L4 stateless: классикалық ACL (CIDR, протокол, порт).
L3/L4 stateful: security groups/NSG, қосылымдарды бақылайды.
L7-aware: proxy/WAF/mesh RBAC (әдістер, жолдар, JWT-claims, SNI).
Inline vs out-of-band: инлайн-фаервол трафикті бағыттайды; out-of-band - талдау/alert.
2. 2 Контурлар
Perimeter: edge/WAF/Anti-DDoS.
Core: transit hub / меж-VPC/VNet.
Workload: SG/NSG на VM/ENI/POD.
App-level: Envoy/Istio/NGINX policy, service-to-service mTLS.
3) Бұлтты модельдер
AWS
Security Group (SG): stateful на ENI/instance/LB.
Network ACL (NACL): кіші желідегі stateless, ереже тәртібі, екі бағытты жазбалар.
AWS Network Firewall/GWLB: L7 инспекциясы/IDS.
Ұсыным: «SG - негізгі бақылау, NACL - ірі дәнді қоршау/deny-парақ».
Azure
NSG (stateful), ASG (тегтер бойынша қолданбалар тобы), Azure FW үшін L7/IDS, Private Endpoints.
Ұсыным: NSG сабнетте + NIC, ASG арқылы қызмет көрсету тегтері.
GCP
VPC Firewall Rules (stateful), Hierarchical FW (ұйымдастырушылық/папкалық), Cloud Armor (L7), Private Service Connect.
Ұсыныс: org-level guardrails + жобалық allow.
4) Ережелер дизайны: үлгілер
4. 1 Негізгі жиынтықтар
Deny all egress → FQDN/IP бойынша рұқсат етеміз: пакеттік репозиторийлер, артефакт-тіркелімдер, бөгде API (жеке/тіркелген шығулар арқылы).
East-West минимум: сервистер тек қажетті тәуелділіктермен сөйлеседі.
Admin қатынау: MFA бар bastion/JIT арқылы, сессияларды жазу.
4. 2 Тегтер мен топтар
IP орнына labels/tags қолданыңыз: 'env', 'service', 'tier', 'tenant', 'pci = true'.
Тегті өзгерту кезінде саясатты жаңарту - IP торларын қолмен өңдеусіз.
4. 3 Өмірлік цикл
Propose → Evaluate (staging) → Enforce (prod), dry-run/соқтығысу логымен.
Ескіру: әрбір ереже үшін TTL/owner, пайдаланылмайтын автотіркеу.
5) Kubernetes және сервис-меші
5. 1 NetworkPolicy (L3/L4)
Минимумы - «қажеттісінен басқасына тыйым салу».
yaml apiVersion: networking. k8s. io/v1 kind: NetworkPolicy metadata: { name: deny-all, namespace: core }
spec:
podSelector: {}
policyTypes: ["Ingress","Egress"]
kind: NetworkPolicy metadata: { name: api-egress }
spec:
podSelector: { matchLabels: { app: api } }
egress:
- to:
- namespaceSelector: { matchLabels: { ns: db } }
ports: [{ protocol: TCP, port: 5432 }]
- to:
- ipBlock: { cidr: 10. 100. 0. 0/16 } # Private endpoints ports: [{ protocol: TCP, port: 443 }]
5. 2 L7 RBAC в mesh (Istio/Envoy)
mTLS + JWT/claims/scopes/paths бойынша авторизациялау.
yaml apiVersion: security. istio. io/v1 kind: AuthorizationPolicy metadata: { name: api-rbac }
spec:
selector: { matchLabels: { app: api } }
rules:
- from:
- source:
principals: ["spiffe://svc. payments"]
to:
- operation: { methods: ["POST"], paths: ["/v1/payouts"] }
when:
- key: request. headers[x-tenant]
values: ["eu-1","eu-2"]
6) Egress-бақылау және жеке периметрлер
PaaS/тіркелгілерге/қоймаларға PrivateLink/Private Service Connect бағдарламасын таңдаңыз.
Қалған egress NAT/прокси арқылы allowlist FQDN және тіркелген IP (сыртқы allowlist үшін).
Тағалардың/VM интернетке тікелей шығуын бұғаттаңыз; тек egress-шлюз арқылы ғана ерекшеліктер.
7) DNS және SNI-саналы ережелер
Split-horizon: ішкі аймақтар сыртынан бөлінбейді.
Шығыс HTTPS (SNI allow) үшін FQDN/SNI қолдауымен FW/Proxy.
Жеткізушілердің нақты домендеріне pinning орнатыңыз; олардың IP өзгерістерін бақылаңыз.
8) Логи, аудит, бақылау
flow logs (VPC/VNet/NSG/NACL) қосыңыз, SIEM-ге жіберіңіз.
Логтардағы 'trace _ id' бағдарламаларымен корреляциялау.
Өлшемдер: hit/miss ережелері, top-talkers, drop-rates, трафиктің асимметриясы, «egress жылыстауы».
Есептер: «пайдаланылмайтын ережелер», «ең кең рұқсаттар».
9) Код ретінде басқару (IaC) және тексеру
Terraform/CloudFormation + модульдік үлгілер саясаты.
Policy as Code (OPA/Gatekeeper/Conftest): '0. 0. 0. 0/0 ',' description/owner/ttl 'талабы, prod/dev араластыруға тыйым салу.
CI: линт, статанализ, қол жетімділік симуляторлары (reachability analyzer), жоспар-қарау, мандаттық peer review.
10) Қол жетімділікті және хаосты тестілеу
Әртүрлі кіші желілерден/AZ/өңірлерден Synthetic-сынамалар: TCP/443, ДБ/брокерлердің ерекше порттары.
DR жолдарын тексеру үшін уақытша deny: тәуелділікті өшіру → retries/circuit/fallback жұмыс істеуі керек.
MTU/MSS: perimeters (әсіресе IPsec/NAT-T) бөлімдерінің жоқтығына көз жеткізіңіз.
11) Өнімділік және сенімділік
Орталықтандырылған тар жерден аулақ болыңыз: inline-FW (GWLB/scale sets) көлденең масштабтаңыз.
ECMP/AS-path/BGP хабтар арасында бөлу үшін.
TLS-инспекция профильдері: нүктелі (қымбат) қосу, кілттердің таңбаларын бөлек сақтау, комплаенсті сақтау.
12) Пішіндер үлгілері (қысқартылған референстер)
12. 1 AWS SG: API → Postgres + S3 PrivateLink
hcl resource "aws_security_group" "api" {
name = "sg-api"
description = "Ingress from ALB, egress to DB and PrivateLink"
vpc_id = var. vpc_id
ingress { from_port=8080 to_port=8080 protocol="tcp" security_groups=[aws_security_group. alb. id] }
egress { from_port=5432 to_port=5432 protocol="tcp" security_groups=[aws_security_group. db. id] }
egress { from_port=443 to_port=443 protocol="tcp" prefix_list_ids=[aws_vpc_endpoint. s3. prefix_list_id] }
tags = { owner="team-api", env=var. env, ttl="2026-01-01" }
}
12. 2 Azure NSG: deny-by-default + allow bastion
bash az network nsg rule create -g rg -n allow-bastion --nsg-name nsg-app \
--priority 100 --direction Inbound --access Allow --protocol Tcp \
--source-address-prefixes 10. 0. 0. 10 --source-port-ranges "" \
--destination-port-ranges 22 --destination-address-prefixes 10. 1. 0. 0/16
12. 3 GCP hierarchical firewall: org-guardrail
yaml direction: INGRESS priority: 1000 action: deny enableLogging: true match:
layer4Configs: [{ ipProtocol: "all" }]
srcIpRanges: ["0. 0. 0. 0/0"]
targetResources: ["organizations/123456"]
12. 4 Envoy RBAC (L7 allow)
yaml
- name: envoy. filters. http. rbac typed_config:
rules:
action: ALLOW policies:
payments-post:
permissions: [{ url_path: { path: "/v1/payouts", ignore_case: true } }]
principals: [{ authenticated: { principal_name: { exact: "spiffe://svc. payments" } } }]
13) Антипаттерндер
`0. 0. 0. 0/0 'in ingress/egress «уақытша» → мәңгі қалады.
«Қар бүршіктері» (консольдегі қолмен түзетулер) кодсыз және ревизиясыз.
prod/stage/dev үшін жалпы SG/NSG; сыни және сыни емес кіші желілерді араластыру.
Egress-бақылаудың және жеке endpoint's → кілттердің/құпиялардың сыртқа шығуының болмауы.
DNS/SNI елемеу: жеткізушінің IP рұқсат - ертең ол ауыстырылды және бүкіл ауқымы ашылды.
flow logs және runbook жоқ → форензия мүмкін емес.
14) iGaming/қаржы ерекшелігі (PCI/реттеуші)
PCI CDE жеке VRF/сегментінде, ешқандай интернет; PSP/логтарға қол жеткізу - private connectivity/mTLS және HMAC бар прокси арқылы.
Data residency: PII/төлем оқиғалары - ел/өңір ішінде; өңіраралық - тек агрегаттар/аноним.
KMS/Vault/HSM: жеке кіші желілер/SG, тек mTLS клиенттері қысқа сертификаттармен.
WORM-аудит: өзгермейтін қоймадағы FW/flow логтары (Object Lock), реттеуші минимумға ≥ ретеншн.
Серіктестер (PSP/KYC): FQDN allowlist, статикалық egress IP, провайдерлер бойынша SLA мониторингі.
15) Prod-дайындық чек-парағы
- Бірыңғай сегменттеу моделі (hub-and-spoke, VRF), CIDR қиылысусыз.
- Deny-by-default на egress; PaaS/сақтау орындарына арналған жеке endpoints.
- SG/NSG stateful workload үшін, NACL/route-filters - кіші желілерге/хабтарға.
- K8s: NetworkPolicy «deny-all», mesh mTLS + L7 RBAC.
- IP орнына тегтер/топтар; owner/TTL/description әрбір ережеде.
- IaC + Policy-as-Code; қол жетімділік симуляциясы бар CI; міндетті peer review.
- Flow logs қосылған; дашбордтар top-talkers, drop-rates; «egress ағуына» алерта.
- Әкімшілік қол жеткізу үшін Bastion/JIT; MFA; сессияларды журналға түсіру.
- Runbook 'i: ережені қалай қосу/алып тастау керек, оқиға кезінде қалай жұмыс істеу керек; «өлі» ережелерге тұрақты ревизия жүргізу.
- PCI/қаржы үшін: CDE оқшаулау, WORM-аудит, PSP/KYC үшін FQDN-allow, статикалық egress IP.
16) TL; DR
Қорғауды мына қабаттар бойынша жасаңыз: ворклоадтардағы SG/NSG stateful, кіші желілердегі NACL/route-filters, mesh/проксидегі L7 RBAC, периметрдегі WAF/edge. Әдепкі - deny-by-default, egress тек бақыланатын нүктелер немесе private endpoints арқылы. Ережелерді код ретінде сипаттаңыз, оларды қол жетімділік саясаттарымен және симуляторларымен тексеріңіз, flow-логтерді жинаңыз. iGaming/Қаржы үшін PCI сегментациясын, WORM аудитін және қатаң FQDN-allow PSP/KYC қосыңыз.