1.7 KiB
1.7 KiB
Lab networking
Namespace mnt는 gitops/policies/baseline에서 ingress와 egress를 모두 default-deny로
시작하고 kube-dns UDP/TCP 53만 공통 허용합니다.
| Owner | Allowed traffic |
|---|---|
gitops/apps/auth-server |
Traefik -> auth-server:8080; auth-server -> PostgreSQL:5432, Keycloak:8080 |
gitops/apps/auth-migration |
migration Job -> PostgreSQL:5432 |
gitops/apps/identity-postgres |
Keycloak, auth-server, migration Job -> PostgreSQL:5432 |
gitops/platform/minio |
MinIO peer; MinIO Operator; approved in-namespace clients |
gitops/platform/keycloak |
Traefik/auth-server ingress; PostgreSQL egress; Keycloak peer |
gitops/platform/registry |
Traefik/in-namespace ingress; MinIO egress |
gitops/platform/vault |
VSO controller ingress; kube-apiserver TokenReview egress |
gitops/platform/keycloak-operator |
kube-apiserver egress |
NetworkPolicy CIDR 10.43.0.0/16과 10.208.141.0/24는 lab K3s의 service
CIDR/control-plane subnet 계약입니다. 클러스터 설정이 다르면 overlay에서
명시적으로 변경해야 합니다. staging/prod로 복사하지 않습니다.
정책 추가 순서:
- source/destination workload label과 namespace를 확인합니다.
- 실제 named port와 protocol을 확인합니다.
- 가장 좁은 pod/namespace selector로 ingress와 egress 양쪽을 작성합니다.
- 해당 stage를 렌더하고 정적 검증합니다.
- server-side dry-run과 diff 후 적용합니다.
- 허용 요청과 차단되어야 할 요청을 모두 확인합니다.
ipBlock은 Kubernetes API처럼 selector로 표현할 수 없는 lab 경계에서만
사용합니다. 넓은 RFC1918 CIDR 전체 허용을 기본값으로 만들지 않습니다.