GH GambleHub

Firewall策略和ACL

1)目標和原則

Firewall/ACL是對數據平面的控制:誰、何時、何時以及通過哪個協議運行。基本原則:
  • Least privilege:只允許必要的(顯式allow, implicit deny)。
  • Segmentation:隔離環境(prod/stage/dev)、tenant、關鍵路徑(PCI/KMS/DB)。
  • Egress控制:出站流量僅限於FQDN/IP列表和私有endpoint 'ami。
  • Identity-aware (L7):通過身份驗證實體(SPIFFE/OIDC)而非僅通過IP做出決策。
  • 基礎架構作為代碼:規則作為代碼,評論/CI/CD,更改審核。

2)分類法: 在哪裏和什麼過濾器

2.1層和狀態

L3/L4無狀態:經典ACL(CIDR,協議,端口)。
L3/L4 stateful: security groups/NSG,跟蹤連接。
L7-aware:proxy/WAF/mesh RBAC(方法,路徑,JWT-claims,SNI)。
Inline vs out-of-band: inline faervol路由流量;樂隊外部-分析/警報。

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.

網絡ACL (NACL):子網無狀態、規則順序、雙向條目。
AWS Network Firewall/GWLB:L7 檢查/IDS。

建議: 「SG是主要控制,NACL是粗粒圍欄/垃圾清單。」

Azure

NSG(靜態),ASG(按標簽的應用程序組),Azure FW for L7/IDS,Private Endpoints。
建議:NSG on Sabnet+NIC,服務標簽通過ASG。

GCP

VPC Firewall Rules(狀態)、Hierarchical FW(組織/文件夾)、Cloud Armor (L7)、Private Service Connect。
建議:org-level guardrails+設計allow。

4)規則設計: 模式

4.1個基本套件

Deny all egress →通過FQDN/IP允許使用:批處理存儲庫,寄存器工件,第三方API(通過私有/固定輸出)。
東西部最低限度:服務僅與必要的依賴項通信。
管理訪問:通過MFA 的基礎/JIT,會話記錄。

4.2 Tagi和樂隊

使用labels/tags代替IP: 「env」、「service」、「tier」、「tenant」、「pci=true」。
更改標記時更新策略-無需手動編輯IP網格。

4.3生命周期

Propose → Evaluate (staging) → Enforce (prod),帶有幹跑/命中日誌。
過時:每個規則的TTL/所有者,自動反駁未使用的規則。

5) Kubernetes和服務-mesh

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/path授權。

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控制和私人外圍

首選PrivateLink/Private Service Connect到PaaS/寄存器/存儲。
其余的egress通過NAT/代理使用 allowlist FQDN和固定IP(用於第三方allowlist)。
阻止Pod/VM直接進入互聯網;僅通過egress網關排除。

7) DNS和SNI意識規則

Split-horizo​​n:內部區域不會在外部突出。
FW/Proxy支持外出HTTPS(SNI allow)的FQDN/SNI。
對特定供應商域進行修補;監視他們的IP更改。

8) Logi,審計,可觀察性

啟用flow logs (VPC/VNet/NSG/NACL),發送到SIEM。
通過日誌中的「trace_id」與應用程序相關聯。
度量標準:命中/錯過規則,top-talkers,落差,流量不對稱,「漏電」。
報告:「未使用的規則」,「最廣泛的權限」。

9)代碼管理(IaC)和驗證

Terraform/CloudFormation+模塊化模板策略。
政策作為代碼(OPA/Gatekeeper/Conftest):禁止'0。0.0.0/0',要求「描述/所有者/ttl」,禁止混合prod/dev。
CI:lint,statanalysis,可實現性模擬器(reachability analyzer),計劃查看,授權同行審查。

10)可達性測試和混亂

來自不同子網/AZ/地區的合成樣本:TCP/443,特定的DB/經紀端口。
臨時deny檢查DR路徑:禁用依賴關系→必須運行retries/circuit/fallback。
MTU/MSS: 確保perimeters(尤其是IPsec/NAT-T)上沒有碎片。

11)性能和可靠性

避免集中化瓶頸:水平縮放inline-FW (GWLB/scale sets)。
ECMP/AS-path/BGP用於在中心之間分配。
TLS檢查配置文件:點擊(昂貴)、單獨存儲密鑰打印、遵守合規性。

12)configs示例(參數,縮寫)

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;關鍵和非關鍵子網的混合。
缺乏盲目控制和私人結局,→泄露鑰匙/秘密。
忽視DNS/SNI:允許提供商IP-明天它改變並打開了整個範圍。
沒有flow logs和runbook's → forenzik是不可能的。

14) iGaming/財務細節 (PCI/監管)

PCI CDE在單獨的VRF/細分市場中,沒有Internet;通過mTLS和HMAC的私人連接/代理訪問PSP/Logs。
數據駐留:PII/支付事件-在國內/地區;跨區域-僅聚合/匿名。
KMS/Vault/HSM:單獨的子網/SG,只有證書短的mTLS客戶端。
WORM審核:不變存儲(對象鎖)中的FW/flow邏輯,重構≥監管最小值。
合作夥伴(PSP/KYC):FQDN allowlist,靜態egress IP,跨提供商監視SLA。

15)準備就緒支票清單

  • 單一分割模型(hub-and-spoke, VRF), CIDR無交叉點。
[] Deny-by-default на egress;PaaS/存儲的私有端。
  • 工作負載的SG/NSG狀態,NACL/路由過濾器-到子網/樞紐。
[] K8s: NetworkPolicy «deny-all», mesh mTLS + L7 RBAC.
  • 代替IP的標簽/組;每個規則的主人/TTL/描述。
[] IaC + Policy-as-Code;具有可實現性模擬的CI;強制性同行評審。
  • Flow logs包括在內;dashbords top-talkers,drop-rates;「egress泄漏」上的差異。
  • 用於管理員訪問的Bastion/JIT;MFA;會議日記。
  • Runbook'和:如何添加/刪除規則,如何在事件中工作;定期修訂「死」規則。
  • 用於PCI/財務: CDE隔離、WORM審核、PSP/KYC的FQDN allow、靜態egress IP。

16) TL;DR

跨層構建保護:SG/NSG靜態在滑行道上,NACL/路線過濾器在子網上, L7 RBAC在mesh/代理上, WAF/edge在外圍。默認情況下為deny-by-default,egress僅通過受控點或私人終止。將規則描述為代碼,通過策略和可實現性模擬器對其進行驗證,收集流日誌。對於iGaming/financial,在PSP/KYC中添加PCI細分,WORM審核和嚴格的FQDN allow。

Contact

與我們聯繫

如有任何問題或支援需求,歡迎隨時聯絡我們。我們隨時樂意提供協助!

Telegram
@Gamble_GC
開始整合

Email 為 必填。Telegram 或 WhatsApp 為 選填

您的姓名 選填
Email 選填
主旨 選填
訊息內容 選填
Telegram 選填
@
若您填寫 Telegram,我們將在 Email 之外,同步於 Telegram 回覆您。
WhatsApp 選填
格式:國碼 + 電話號碼(例如:+886XXXXXXXXX)。

按下此按鈕即表示您同意我們處理您的資料。