<aside> 🙋🏻 쿠버네티스 플랫폼을 다양한 곳에서 사용하면서, 보안에 대한 고려가 필요해지고 있습니다. Ingress 에 OPA 를 적용하여 통제할 수 있는 환경을 손쉽게 테스트 해볼 수 있게 실습 가이드와 vagrantfile 을 제공합니다. OPA 도입 검토를 하시는 분들에게 도움이 되시길 바랍니다.
</aside>
실습 환경 구성도
: 자신의 PC 1대에서 vagrant 로 Ubuntu 가상머신을 쿠버네티스 배포 - 권장 PC환경(CPU 4코어 이상, 램 16기가 이상)
# 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
: 쿠버네티스 인그레스의 한 종류이며, Envoy Proxy 을 통해서 트래픽을 처리 - 링크
그림 출처: https://www.getambassador.io/docs/run/latest/architecture/
OPA
Open Policy Agent : 클라우드 네이티브 환경에 적합한 오픈 소스 정책 엔진, 다양한 플랫폼과 소프트웨어와 연동 가능 - 추천글
그림 출처: https://www.openpolicyagent.org/docs/latest/
주요 연동 사례 : 쿠버네티스, Envoy 등
쿠버네티스 : 사용자가 리소스 생성 시 K8S API 서버는 AdmissionReview 과정에서 OPA 에 정책 질의 후 평가 결과에 따라 요청 처리 - 링크 Katakoda
Envoy : Envoy v1.7.0 이상 부터 External Authorization filter 를 통해 외부에 권한 평가 요청 가능 - 링크
그외 : AWS CloudFormation Hooks, Docker, HTTP APIs, Kafka, SSH and sudo, Terraform
<aside> 👉🏻 실습 시나리오 및 테스트 내용은 [CNCF blog] 원본 링크의 글을 대부분 참고 했음을 미리 알려드립니다
</aside>