Kubernetes
[Kubernetes] 특정 API에 대한 접근을 제한하는 방법
기록하는 백앤드개발자
2024. 8. 24. 10:10
반응형
ㅁ 들어가며
ㅇ 쿠버네티스 환경에서 특정 API에 대한 접근을 제한하는 방법을 정리하였다.
ㅇ Ingress 규칙을 설정하여 해당 경로로의 요청을 특정 서비스로 라우팅하지 않도록 할 수 있다.
ㅇ 네트워크 차단에 있어서 네트워크 정책(Network Policy)와 Ingress 리소스의 차이점도 알 수 있었다.
ㅁ Ingress 리소스 생성
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: block-path-ingress
namespace: default
spec:
rules:
- http:
paths:
- path: /blocked-path/*
pathType: Prefix
backend:
service:
name: non-existent-service
port:
number: 80
ㅇ /blocked-path/* 경로에 대한 요청을 차단하는 Ingress 리소스를 생성한다.
ㅇ 이 방법은 요청을 유효하지 않은 서비스로 라우팅하여 실질적으로 차단하는 효과가 있다.
ㅇ 위의 예시에서는 non-existent-service라는 이름의 서비스로 요청을 라우팅하여 해당 경로에 대한 요청을 차단한다.
ㅁ 네트워크 정책(Network Policy) VS Ingress 리소스
ㅇ 쿠버네티스 환경에서 접근을 제한하는 방법에 있어 네트워크 정책과 Ingress 리소스에는 차이가 있었다.
네트워크 정책
ㅇ 네트워크 정책을 사용하여 Pod 간의 네트워크 트래픽을 제어할 수 있다.
ㅇ 이는 네트워크 레벨에서의 접근 제어를 의미하며, 특정 API 경로에 대한 직접적인 제어는 아니다.
Ingress 리소스
ㅇ Ingress 리소스를 사용하여 HTTP 및 HTTPS 경로를 기반으로 트래픽을 제어할 수 있다.
ㅇ 특정 URL 경로에 대한 접근을 제한하고자 할 때 유용하다.
ㅇ 위의 예시 처럼 특정 경로에 대한 요청을 차단하거나 리다이렉트할 수 있다.
ㅁ 마무리
Ingress 리소스는 주로 HTTP 및 HTTPS 트래픽을 제어하기 때문에, 네트워크 레벨에서의 차단보다는 경로 기반의 트래픽 제어에 적합하다.
ㅁ 함께 보면 좋은 사이트
반응형