GH GambleHub

Zasady zapory i ACL

1) Cele i zasady

Firewall/ACL to sterowanie płaszczyzną danych: kto, gdzie, kiedy i na którym idzie protokole. Podstawowe zasady:
  • Najmniejszy przywilej: zezwalaj tylko na niezbędne (wprost zezwalaj, domyślnie zaprzeczaj).
  • Segmentacja: izolacja środowisk (prod/stage/dev), najemców, konturów krytycznych (PCI/KMS/DB).
  • Kontrola Egress: ruch wychodzący jest ograniczony do list FQDN/IP i prywatnych punktów końcowych.
  • Świadomość tożsamości (L7): Decyzje podejmowane są przez uwierzytelniony podmiot (SPIFFE/OIDC), nie tylko przez IP.
  • Infrastruktura jako kod: zasady jako kod, przegląd/CI/CD, zmiany audytu.

2) Taksonomia: gdzie i co filtrujemy

2. 1 Warstwy i status

L3/L4 bezpaństwowe: klasyczne ACL (CIDR, protokół, port).
L3/L4 statious: grupy zabezpieczeń/NSG, połączenia monitorujące.
L7-aware: proxy/WAF/mesh RBAC (metody, ścieżki, twierdzenia JWT, SNI).
Inline vs out-of-band: Inline firewall routes traffic; out-of-band - analiza/alert.

2. 2 Kontury

Obwód: krawędź/WAF/anty-DDoS.
Rdzeń: piasta tranzytowa/меς-VPC/VNet.
Obciążenie pracą: SG/NSG на VM/ENI/POD.
Poziom aplikacji: Wysłannik/Istio/NGINX polityka, service-to-service mTLS.

3) Modele w chmurze

AWS

Grupa Bezpieczeństwa (SG): stateful на ENI/instance/LB.
Sieć ACL (NACL): bezpaństwowiec w podsieci, kolejność zasad, wpisy dwukierunkowe.
Zapora sieciowa AWS/GWLB: Inspekcja L7/IDS.
Zalecenie: „SG - podstawowa kontrola, NACL - ogrodzenie gruboziarniste/lista odmowy”.

Azure

NSG (statious), ASG (grupy aplikacji według tagów), Azure FW dla L7/IDS, Prywatne punkty końcowe.
Zalecenie: NSG on sabnet + NIC, serwis tags via ASG.

GCP

VPC Firewall Rules (Statious), Hierarchical FW (organizacyjny/folder), Cloud Armor (L7), Private Service Connect.
Zalecenie: org-level barierki + projekt pozwalają.

4) Rule Design: Wzory

4. 1 Zestawy podstawowe

Odmowa wszystkich egress → dozwolone za pośrednictwem FQDN/IP do: repozytoria partii, rejestry artefaktów, API osób trzecich (za pośrednictwem prywatnych/stałych wyjść).
Minimum wschód-zachód: usługi komunikują się tylko z niezbędnymi zależnościami.
Dostęp administratora: poprzez bastion/JIT z MFA, sesje nagraniowe.

4. 2 Tagi i grupy

Użyj etykiet/znaczników zamiast IP: 'na', 'service', 'tier', 'lokator', 'pci = true'.
Aktualizacja zasad po zmianie znacznika - brak ręcznej edycji sieci IP.

4. 3 Cykl życia

Zaproponuj → Oceń (ustawianie) → Wymuś (prod), z dziennikami dry-run/hit.
Starzenie się: TTL/właściciel dla każdej reguły, automatyczne sprawdzanie nieużywane.

5) Kubernety i siatka serwisowa

5. 1 „Polityka” (L3/L4)

Minimalnym jest „zakaz wszystkiego poza tym, co jest potrzebne”.

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 Siatka RBAC (Istio/Envoy)

authorization/claims/scopes/paths MTLS + JWT.

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) Kontrola wyjścia i obwodów prywatnych

Wybierz Usługę Prywatną Łączcie się przez PaaS/rejestry/repozytoria.
Reszta wyjścia za pośrednictwem NAT/proxy z listą dopuszczalną FQDN i stałym IP (dla third-party permlist).
Blok bezpośredniego dostępu strąków/VM do Internetu; wyjątki tylko przez bramę wyjścia.

7) Zasady DNS i SNI

Split-horizon: wewnętrzne strefy nie rozdzielają się z zewnątrz.
FW/Proxy z obsługą FQDN/SNI dla wychodzącego HTTPS (pozwala SNI).
Naprawić szpilki do określonych domen dostawcy; monitorować zmiany w ich IP.

8) Dzienniki, audyt, obserwowalność

Włącz dzienniki przepływu (VPC/VNet/NSG/NACL), wyślij do SIEM.
Koreluj z aplikacjami za pomocą 'trace _ id' w dziennikach.
Wskaźniki: zasady hitu/miss, top-talkers, drop-rates, asymetria ruchu, wycieki wycieków.
Raporty: „niewykorzystane reguły”, „najszersze uprawnienia”.

9) Zarządzanie jako kod (IaC) i kontrole

Terraform/CloudFormation + zasady modułowe według szablonów.
Polityka jako kod (OPA/Gatekeeper/Conftest): nie '0. 0. 0. 0/0 „, wymóg” opis/właściciel/ttl', zakaz mieszania prod/dev.
CI: lint, analiza statyczna, analizator osiągalności, widok planu, obowiązkowa wzajemna ocena.

10) Testowanie osiągalności i chaos

Próbki syntetyczne z różnych podsieci/AZ/regionów: TCP/443, określone porty bazy danych/brokerów.
Tymczasowe zaprzeczenie sprawdzania ścieżek DR: wyłączenie → zależność powinna wywołać ponowne próby/obwód/awaria.
MTU/MSS: Upewnij się, że na obwodach nie ma fragmentacji (zwłaszcza IPsec/NAT-T).

11) Wydajność i niezawodność

Unikaj scentralizowanego wąskiego gardła: Scale inline-FW (zestawy GWLB/scale).
ECMP/AS-path/BGP dla dystrybucji pomiędzy węzłami.
Profile kontroli TLS: zawierać punkt (drogie), przechowywać druki kluczy oddzielnie, przestrzegać zgodności.

12) Przykłady konfiguracji (odniesienia, skrócenie)

12. 1 AWS SG: API → Postgres + S3

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: odmowa domyślnie + zezwala na 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 zapora hierarchiczna: 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 Wysłannik RBAC (L7 zezwala)

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) Antypattery

`0. 0. 0. 0/0 'w ingress/egress „tymczasowo” → pozostaje na zawsze.
„Płatki śniegu” (ręczne edycje w konsoli) bez kodu i wersji.
Wspólne SG/NSG dla prod/stage/dev; mieszanie podsieci krytycznych i niekrytycznych.
Brak kontroli wyjścia i prywatnych punktów końcowych → wyciekające klucze/sekrety.
Ignorowanie DNS/SNI: pozwolił dostawcy na IP - jutro to się zmieniło i cały asortyment został otwarty.
Nie ma dzienników przepływu i runbooks → fazowanie jest niemożliwe.

14) Specyfikacje iGaming/Finance (PCI/Regulatory)

PCI CDE w oddzielnym VRF/segmencie, brak internetu; dostęp do PSP/logów - poprzez prywatną łączność/serwer proxy z mTLS i HMAC.
Miejsce zamieszkania: PII/zdarzenia płatnicze - w kraju/regionie; międzyregionalnie - tylko agregaty/anonimowe.
KMS/Vault/HSM: poszczególne podsieci/SG, tylko klienci mTLS z krótkimi certyfikatami.
Audyt WORM: dzienniki FW/przepływu w niezmienionej pamięci masowej (Object Lock), retencja ≥ minimum regulacyjne.
Partnerzy (PSP/KYC): FQDN permlist, static egress IP, SLA monitoring przez dostawcę.

15) Lista kontrolna gotowości Prod

  • Jednolity model segmentacji (piasta i głos, VRF), CIDR bez skrzyżowań.
  • Odmowa niewykonania zobowiązania „на egress”; prywatne punkty końcowe do PaaS/storage.
  • SG/NSG stacjonarne dla obciążenia pracą, NACL/filtry trasy - w podsieciach/piastach.
  • K8s: „Zaprzeczam”, siatka mTLS + L7 RBAC.
  • Tagi/grupy zamiast IP; właściciel/TTL/opis dla każdej reguły.
  • IaC + Policy-as-Code; CI z symulacją osiągalności; obowiązkowa wzajemna ocena.
  • Włączone dzienniki przepływu; deski rozdzielcze top-talkers, drop-rates; wpisy do „wycieku wyjścia”.
  • Bastion/JIT dla dostępu administratora; MSZ; sesje logowania.
  • Runbook "oraz: jak dodać/usunąć regułę, jak pracować w incydencie; regularne zmiany „martwych” zasad.
  • W przypadku PCI/Finance: izolacja CDE, audyt WORM, zezwolenie FQDN dla PSP/KYC, static egress IP.

16) TL; DR

Ochrona budowa warstw: SG/NSG statious na obciążeniach roboczych, NACL/route-filtry na podsieciach, L7 RBAC w siatce/proxy, WAF/krawędź na obwodzie. Domyślnie - odmowa domyślnie, wyjście tylko za pomocą kontrolowanych punktów lub prywatnych punktów końcowych. Opisz zasady jako kod, sprawdź je za pomocą zasad i symulatorów osiągalności, zbieraj dzienniki przepływu. W przypadku iGaming/Finance dodaj segmentację PCI, audyt WORM i ścisłe zezwolenie FQDN do PSP/KYC.

Contact

Skontaktuj się z nami

Napisz do nas w każdej sprawie — pytania, wsparcie, konsultacje.Zawsze jesteśmy gotowi pomóc!

Telegram
@Gamble_GC
Rozpocznij integrację

Email jest wymagany. Telegram lub WhatsApp są opcjonalne.

Twoje imię opcjonalne
Email opcjonalne
Temat opcjonalne
Wiadomość opcjonalne
Telegram opcjonalne
@
Jeśli podasz Telegram — odpowiemy także tam, oprócz emaila.
WhatsApp opcjonalne
Format: kod kraju i numer (np. +48XXXXXXXXX).

Klikając przycisk, wyrażasz zgodę na przetwarzanie swoich danych.