academia/deploy/k3s/networkpolicy.yaml

84 lines
1.7 KiB
YAML
Raw Normal View History

---
# Network Policy - Solo permitir tráfico necesario
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: default-deny-ingress
namespace: academia
spec:
podSelector: {}
policyTypes:
- Ingress
---
# Permitir tráfico al frontend desde ingress
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-frontend-ingress
namespace: academia
spec:
podSelector:
matchLabels:
app: student-frontend
policyTypes:
- Ingress
ingress:
- from:
- namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: kube-system
ports:
- protocol: TCP
port: 80
---
# Permitir tráfico al API desde frontend e ingress
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-api-ingress
namespace: academia
spec:
podSelector:
matchLabels:
app: student-api
policyTypes:
- Ingress
ingress:
# Desde ingress controller
- from:
- namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: kube-system
ports:
- protocol: TCP
port: 8080
# Desde frontend (para nginx proxy)
- from:
- podSelector:
matchLabels:
app: student-frontend
ports:
- protocol: TCP
port: 8080
---
# Permitir tráfico a SQL Server solo desde API
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-sqlserver-from-api
namespace: academia
spec:
podSelector:
matchLabels:
app: sqlserver
policyTypes:
- Ingress
ingress:
- from:
- podSelector:
matchLabels:
app: student-api
ports:
- protocol: TCP
port: 1433