관리 메뉴

피터의 개발이야기

[Kubernetes] 특정 API에 대한 접근을 제한하는 방법 본문

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 트래픽을 제어하기 때문에, 네트워크 레벨에서의 차단보다는 경로 기반의 트래픽 제어에 적합하다.

 

ㅁ 함께 보면 좋은 사이트

kubernetes doc - 쿠버네티스 API 접근 제어하기

Nginx Ingress Controller Ingress IP 제한 설정

반응형
Comments