<aside> 🙋🏻 쿠버네티스 플랫폼을 다양한 곳에서 사용하면서, 보안에 대한 고려가 필요해지고 있습니다. Ingress 에 OPA 를 적용하여 통제할 수 있는 환경을 손쉽게 테스트 해볼 수 있게 실습 가이드vagrantfile 을 제공합니다. OPA 도입 검토를 하시는 분들에게 도움이 되시길 바랍니다.

</aside>

실습 환경 구성

실습 환경 구성도 : 자신의 PC 1대에서 vagrant 로 Ubuntu 가상머신을 쿠버네티스 배포 - 권장 PC환경(CPU 4코어 이상, 램 16기가 이상)

Untitled

# vagrant 파일 다운로드
curl -O <https://raw.githubusercontent.com/gasida/KANS/main/ingress-opa/Vagrantfile>

**# 배포**
vagrant up

# 마스터노드 접속
vagrant ssh k8s-m

# (워커)노드 접속
vagrant ssh k8s-w1
vagrant ssh k8s-w2

# 클라이언트 가상머신 접속
vagrant ssh client

# (참고) 실습 완료 후 삭제 시
vagrant destroy -f

Emissary Ingress

Emissary Ingress : 쿠버네티스 인그레스의 한 종류이며, Envoy Proxy 을 통해서 트래픽을 처리 - 링크

그림 출처:  https://www.getambassador.io/docs/run/latest/architecture/

그림 출처: https://www.getambassador.io/docs/run/latest/architecture/

OPA 소개

OPA Open Policy Agent : 클라우드 네이티브 환경에 적합한 오픈 소스 정책 엔진, 다양한 플랫폼과 소프트웨어와 연동 가능 - 추천글

그림 출처:  https://www.openpolicyagent.org/docs/latest/

그림 출처: https://www.openpolicyagent.org/docs/latest/

주요 연동 사례 : 쿠버네티스, Envoy 등

  1. 쿠버네티스 : 사용자가 리소스 생성 시 K8S API 서버는 AdmissionReview 과정에서 OPA 에 정책 질의 후 평가 결과에 따라 요청 처리 - 링크 Katakoda

    Untitled

  2. Envoy : Envoy v1.7.0 이상 부터 External Authorization filter 를 통해 외부에 권한 평가 요청 가능 - 링크

    Untitled

  3. 그외 : AWS CloudFormation Hooks, Docker, HTTP APIs, Kafka, SSH and sudo, Terraform

데모 애플리케이션 & Ingress 설정

<aside> 👉🏻 실습 시나리오테스트 내용은 [CNCF blog] 원본 링크의 글을 대부분 참고 했음을 미리 알려드립니다

</aside>