GH GambleHub

방화벽 정책 및 ACL

1) 목표와 원칙

방화벽/ACL은 데이터 평면 제어입니다. 기본 원칙:
  • 최소 특권: 필요한 만 허용하십시오 (명시 적 허용, 암시 적 거부).
  • 세분화: 환경 격리 (prod/stage/dev), 테넌트, 임계 윤곽 (PCI/KMS/DB).
  • 탈출 제어: 아웃 바운드 트래픽은 FQID/IP 목록 및 개인 엔드 포인트로 제한됩니다.
  • 신원 인식 (L7): 결정은 IP뿐만 아니라 인증 된 엔티티 (SPIFFE/OIDC) 에 의해 이루어집니다.
  • 코드로서의 인프라: 코드, 검토/CI/CD, 감사 변경 규칙.

2) 분류: 우리가 필터링하는 곳

2. 1 레이어 및 상태

L3/L4 무국적자: 클래식 ACL (CIDR, 프로토콜, 포트).
L3/L4 상태: 보안 그룹/NSG, 연결 모니터링.
L7 인식: 프록시/WAF/메쉬 RBAC (메소드, 경로, JWT 클레임, SNI).
인라인 대 대역 외: 인라인 방화벽 노선 트래픽; 대역 외-분석/경고.

2. 컨투어 2 개

주변 경계계: edge/WAF/Anti-DDoS.

핵심: 대중 교통 허브/

워크로드: SG/NSG неVM/ENI/POD.
앱 레벨: Envoy/Istio/NGINX 정책, 서비스 간 mTLS.

3) 클라우드 모델

AWS

보안 그룹 (SG): Stateful неENI/인스턴스/LB.
네트워크 ACL (NACL): 서브넷, 규칙 순서, 양방향 항목의 무국적자.
AWS 네트워크 방화벽/GWLB: L7 검사/IDS.
권장 사항: "SG-기본 제어, NACL-거친 펜싱/거부 목록".

푸른

NSG (stateful), ASG (태그 별 응용 프로그램 그룹), L7/IDS 용 Azure FW, Private Endpoints.
추천: sabnet + NIC의 NSG, ASG를 통한 서비스 태그.

GCP

VPC 방화벽 규칙 (stateful), 계층 적 FW (조직/폴더), Cloud Armor (L7), 개인 서비스 연결.
추천: org 수준의 가드 레일 + 프로젝트가 허용됩니다.

4) 규칙 설계: 패턴

4. 1 기본 세트

배치 리포지토리, 아티팩트 레지스터, 타사 API (개인/고정 출력을 통해) 에 허용되는 모든 출구 → 를 거부합니다.
동서 최소: 서비스는 필요한 종속성과 만 통신합니다.
관리자 액세스: MFA를 통한 요새/JIT, 녹음 세션을 통해.

4. 태그 및 그룹 2 개

IP 대신 라벨/태그를 사용하십시오: 'env', 'service', 'tier', 'tentier', 'pci = 참'.
태그가 변경되면 정책 업데이트-IP 그리드의 수동 편집 없음.

4. 3 수명주기

건식/적중 로그가있는 제안 → 평가 (준비) → 시행 (prod).
노화: 각 규칙에 대한 TTL/소유자, 사용되지 않은 자동 확인.

5) Kubernetes 및 서비스 메쉬

5. 1 네트워크 정책 (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 텍스트 메쉬 (Istio/Envoy)

mSL + 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) 탈출 통제 및 개인 경계

PaaS/레지스터/리포지토리를 통한 PrivateLink/Private Service Connect 선호.
허용리스트 FQDN과 고정 IP (타사 허용량 목록) 가있는 GPS/프록시를 통한 나머지 출구.
인터넷에 포드/VM의 직접 액세스를 차단합니다. 출구 게이트웨이를 통해서만 예외.

7) DNS 및 SNI 인식 규칙

분할 수평선: 내부 영역은 외부에서 해결되지 않습니다.
발신 HTTPS (SNI 허용) 에 대한 FQID/SNI 지원이있는 FW/Proxy.
특정 공급 업체 도메인에 대한 고정 수정; IP의 변경 사항을 모니터링하십시오.

8) 로그, 감사, 관찰

흐름 로그 (VPC/VNet/NSG/NACL) 를 사용하여 SIEM으로 보냅니다.
로그의 'trace _ id' 를 통한 응용 프로그램과 관련이 있습니다.
메트릭: 적중/미스 규칙, 최고 화자, 드롭 레이트, 트래픽 비대칭, 탈출 누출.
보고서: "사용되지 않은 규칙", "가장 넓은 권한".

9) 코드 관리 (IaC) 및 검사

템플릿에 의하여 Terraform/CloudFormation + 모듈 식 정책.
코드로서의 정책 (OPA/Gatekeeper/Conftest): no '0. 0. 0. 0/0 ', 요구 사항' 설명/소유자/ttl ', prod/dev의 혼합 금지.
CI: 보푸라기, 정적 분석, 도달 가능성 분석기, 계획보기, 필수 동료 검토.

10) 실행 가능성 테스트 및 혼돈

상이한 서브넷/AZ/영역으로부터의 합성 샘플: 히/443, 데이터베이스/브로커의 특정 포트.
DR 경로를 확인하기위한 임시 거부: → 종속성 비활성화는 재시도/회로/대체를 트리거해야합니다.
MTU/MSS: 주변 장치 (특히 IPsec/NAT-T) 에 단편화가 없는지 확인하십시오.

11) 성능과 신뢰성

중앙 집중식 병목 현상을 피하십시오: 스케일 인라인 -FW (GWLB/스케일 세트).
허브 간 분포를위한 ECMP/AS 경로/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: 기본값으로 거부 + 허용 요새

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 계층 적 방화벽: org- 가드 레일

yaml direction: INGRESS priority: 1000 action: deny enableLogging: true match:
layer4Configs: [{ ipProtocol: "all" }]
srcIpRanges: ["0. 0. 0. 0/0"]
targetResources: ["organizations/123456"]

12. 4 특사 RBAC (L7 허용)

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 '은 영원히 유지됩니다.
코드와 개정없이 "눈송이" (콘솔의 수동 편집).
prod/stage/dev에 대한 일반적인 SG/NSG; 임계 및 비 임계 서브넷 혼합.

탈출 제어 부족 및 개인 엔드 포인트 → 키/비밀 유출

DNA/SNI 무시: 공급 업체의 IP 허용-내일 변경되었으며 전체 범위가 열렸습니다.
흐름 로그가 없으며 런북 → 위상 조정이 불가능합니다.

14) iGaming/Finance 세부 사항 (PCI/규제)

인터넷이없는 별도의 VRF/세그먼트에있는 PCI CDE; PSP/로그에 액세스하십시오-mTLS 및 HMAC의 개인 연결/프록시를 통해.
데이터 레지던트: PII/결제 이벤트 - 국가/지역 내; 지역간-집계/익명 만 가능합니다.
KMS/Vault/HSM: 개별 서브넷/SG, 인증서가 짧은 mSL 클라이언트 만 있습니다.

WORM 감사: 변경되지 않는 스토리지 (Object Lock) 의 FW/흐름 로그, 최소 유지

파트너 (PSP/KYC): 공급자 별 FQDN리스트, 정적 출구 IP, SLA 모니터링.

15) Prod 준비 점검표

  • 통합 세분화 모델 (허브 앤 스포크, VRF), 교차점이없는 CIDR.
  • 기본적으로 거부하는 не출구; PaaS/스토리지에 대한 개인 엔드 포인트.
  • SG/NSG는 서브넷/허브의 워크로드, NACL/경로 필터에 적합합니다.
  • K8: 네트워크 정책 "모두 거부", 메쉬 mSL + L7 RBAC.
  • IP 대신 태그/그룹; 각 규칙에 대한 소유자/TTL/설명.
  • IaC + 코드 정책; 도달 가능성 시뮬레이션이있는 CI; 필수 동료 검토.
  • 유량 로그 활성화; 대시 보드 탑 토커, 드롭 레이트; "탈출 누출" 에 대한 경고.
  • 관리자 액세스를위한 Bastion/JIT; MFA; 로깅 세션.
  • 런북 '및: 규칙을 추가/제거하는 방법, 사고에서 작동하는 방법; "죽은" 규칙의 정기적 인 개정.
  • PCI/Finance: CDE 격리, WORM 감사, PSP/KYC에 대한 FQDN- 허용, 정적 출구 IP.

16) TL; DR

계층별 보호 구축: 워크로드의 SG/NSG 스테이트, 서브넷의 NACL/경로 필터, 메쉬/프록시의 L7 RBAC, 주변의 WAF/에지. 기본적으로-기본적으로 거부하면 제어 된 포인트 또는 개인 엔드 포인트를 통해서만 빠져 나옵니다. 규칙을 코드로 설명하고 정책 및 도달 가능성 시뮬레이터로 확인하고 흐름 로그를 수집하십시오. iGaming/Finance의 경우 PCI 세분화, WORM 감사 및 엄격한 FQDN- 허용을 PSP/KYC에 추가하십시오.

Contact

문의하기

질문이나 지원이 필요하시면 언제든지 연락하십시오.우리는 항상 도울 준비가 되어 있습니다!

Telegram
@Gamble_GC
통합 시작

Email — 필수. Telegram 또는 WhatsApp — 선택 사항.

이름 선택 사항
Email 선택 사항
제목 선택 사항
메시지 선택 사항
Telegram 선택 사항
@
Telegram을 입력하시면 Email과 함께 Telegram에서도 답변드립니다.
WhatsApp 선택 사항
형식: +국가 코드 + 번호 (예: +82XXXXXXXXX).

버튼을 클릭하면 데이터 처리에 동의하는 것으로 간주됩니다.