반응형
1. 개념
- 쿠버네티스에서 각 파드는 기본적으로 서로간에 모든 통신이 가능한 상태
- 때문에 DB처럼 보안적으로 중요한 파드에 대해 접근을 제어하기 위하여 NetworkPolicy 서비스 활용
- 파드 생성 시 labels에 명시한 key : value를 기준으로 NetworkPolicy 적용
2. NetworkPolicy 상황별 설정
- NetworkPolicy를 설정하지 않은 경우 모든 파드에서 DB로 접근 가능
- 특정 파드에서만 접근을 허용하고자 하는 경우
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: db-policy
namespace: prod
spec:
podSelector:
matchLabels:
role: db
policyTypes:
- Ingress
ingress:
- from:
- podSelector:
matchLabels:
role: api-pod
ports:
- protocol: TCP
port: 3306
- 특정 네임스페이스의 특정 파드에서만 접근을 허용하고자 하는 경우
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: db-policy
namespace: prod
spec:
podSelector:
matchLabels:
role: db
policyTypes:
- Ingress
ingress:
- from:
- podSelector:
matchLabels:
role: api-pod
namespaceSelector:
matchLabels:
name: dev
ports:
- protocol: TCP
port: 3306
- 특정 네임스페이스의 모든 파드에서 접근을 허용하고자 하는 경우
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: db-policy
namespace: prod
spec:
podSelector:
matchLabels:
role: db
policyTypes:
- Ingress
ingress:
- from:
- namespaceSelector:
matchLabels:
name: dev
ports:
- protocol: TCP
port: 3306
- 클러스터 외부의 특정 서버로부터 접근을 허용하고자 하는 경우
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: db-policy
namespace: prod
spec:
podSelector:
matchLabels:
role: db
policyTypes:
- Ingress
ingress:
- from:
- ipBlock:
cidr: 192.168.1.100/32
ports:
- protocol: TCP
port: 3306
- DB에서 특정 파드로 접근을 허용하고자 하는 경우
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: db-policy
namespace: prod
spec:
podSelector:
matchLabels:
role: db
policyTypes:
- Egress
egress:
- to:
- podSelector:
matchLabels:
role: etc-pod
ports:
- protocol: TCP
port: 8080
- DB에서 클러스터 외부의 특정 서버로 접근을 허용하고자 하는 경우
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: db-policy
namespace: prod
spec:
podSelector:
matchLabels:
role: db
policyTypes:
- Egress
egress:
- to:
- ipBlock:
cidr: 192.168.1.100/32
ports:
- protocol: TCP
port: 8080
3. NetworkPolicy 확인
- NetworkPolicy 목록 확인 kubectl get networkpolicies
- NetworkPolicy 정보 확인 kubectl describe networkpolicies [NetworkPolicy_이름]
반응형
'Kubernetes' 카테고리의 다른 글
Kubernetes StorageClass 개념 및 설정 (0) | 2023.03.16 |
---|---|
Kubernetes PV·PVC 개념 및 설정 (0) | 2023.03.16 |
Kubernetes SecurityContext 개념 및 설정1 (0) | 2023.03.16 |
Kubernetes 프라이빗 레포지토리(PrivateRepository) 개념 및 설정 (0) | 2023.03.16 |
Kubernetes 서비스어카운트(ServiceAccount) 개념 및 설정1 (0) | 2023.03.16 |