AKS 프런트 엔드를 Front Door로 설정하여 IP 액세스 제어
3453 단어 AzureAKSFrontDoorkubernetes
인터넷에서 직접 액세스하는 경우에는 이것으로 좋지만 프런트 엔드 포인트가 Load Balancer가 아니라,
같은 레이어 7 로드 밸런서나 인터넷 트래픽을 제어하는 구성 요소가 앞에 있는 경우 추가 설정이 필요합니다. 그 이유는 이것들이 HTTP 헤더를 재기록해 버려, 백엔드로 취득할 수 있는 소스 IP 주소는 이러한 전단에 있는 컴퍼넌트의 것이 되어, 요구를 송신한 클라이언트의 것이 아니게 되기 때문입니다.
Front Door 측 설정
우선, Front Door와 AKS를 접속하기 위해서는 다음의 설정을 실시합니다. AKS의 엔드포인트는 Load Balancer이므로 이를 지정합니다.
이 시점에서 Ingress Controller에서 액세스를 제어하지 않는 경우에는 Front Door URL에서 일반 애플리케이션에 액세스할 수 있습니다. 하지만 이전 app1은 액세스 제어하고 있기 때문에 Front Door를 통해 액세스하면 화이트리스트의 IP 주소와 다르므로 다음과 같이 NGINX가 오류를 반환합니다.
NGINX Ingress Controller 설정
Front Door가 다시 작성하기 전에 액세스 소스 IP 주소는 X-Forwarded-For 헤더에 저장되므로 이 값을 가져오도록 Ingress Controller를 구성해야 합니다. NGINX Ingress Controller의 경우 ConfigMap에서 설정을 추가합니다.
대략적인 절차는 아래와 같습니다.
Helm에서 NGINX Ingress Controller를 배포하면 실제로 가져올 ConfigMap도 지정되지만 ConfigMap 자체는 생성되지 않습니다. 따라서 지정된 이름으로 직접 ConfigMap을 만듭니다.
ConfigMap 지정 확인
Ingress Controller 리소스를 검토하고 describe합니다.
kubectl -n ingress-basic get deployments.apps
NAME READY UP-TO-DATE AVAILABLE AGE
nginx-ingress-ingress-nginx-controller 1/1 1 1 4d5h
kubectl -n ingress-basic describe deployments.apps nginx-ingress-ingress-nginx-controller
(中略)
Containers:
controller:
(中略)
Args:
/nginx-ingress-controller
(中略)
--ingress-class=nginx
--configmap=$(POD_NAMESPACE)/nginx-ingress-ingress-nginx-controller
하단의
--configmap=
부분은 ConfigMap의 지정입니다.ConfigMap 만들기
확인한 name 및 namespace에서 ConfigMap을 만듭니다. 이 때 X-Forwarded-For를 사용하기 위해 use-forwarded-headers 환경 변수를 설정합니다.
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-ingress-ingress-nginx-controller #前述のdescribe結果から指定
namespace: ingress-basic #前述のdescribe結果から指定
data:
use-forwarded-headers: "true" #Forwardedヘッダーを使用する設定
배포합니다.
kubectl apply -f configmap.yaml
이제 Ingress Controller가 원래 소스 IP 주소를 볼 수 있습니다.
동작 확인
다시 Front Door를 통해 app1에 화이트리스트 IP 주소에서 액세스합니다.
안전하게 액세스할 수 있습니다!
Reference
이 문제에 관하여(AKS 프런트 엔드를 Front Door로 설정하여 IP 액세스 제어), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kazkokk/items/d274358d44f912efab55텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)