Istio 및 Auth0으로 최종 사용자 인증 및 권한 부여

Istio가 Kubernetes 클러스터에 대한 서비스 간 트래픽을 보호하는 방법과 최종 사용자 트래픽을 보호하기 위해 Auth0과 통합하는 방법을 알아보세요.






요약: 이 기사에서는 Istio 및 Auth0을 사용하여 Kubernetes에서 실행되는 애플리케이션을 보호하는 방법을 배웁니다. 새로운 클러스터를 생성하여 시작한 다음 보안되지 않은 샘플 애플리케이션을 배포합니다. 배포를 테스트한 후 Istio 및 Auth0을 사용하여 이 애플리케이션과 해당 포드를 보호하는 방법을 배웁니다. 참고로 this GitHub repository에서 이 애플리케이션을 찾을 수 있습니다.

머리말



보안은 모든 애플리케이션에서 올바르게 작동하는 데 가장 중요한 측면입니다. 앱과 사용자의 신원을 보호하지 못하면 비용이 많이 들 수 있습니다. 또한 고객과 투자자가 고품질 서비스를 제공할 수 있는 능력에 대한 믿음을 잃게 만들 수 있습니다. 따라서 애플리케이션을 개발할 때 표준과 모범 사례를 엄격히 따르는 것이 가장 중요합니다. 다행스럽게도 Auth0 , Microsoft , FacebookGoogle 과 같은 대형 공급업체는 앱의 ID 공급자 역할을 하여 이 작업을 단순화할 수 있습니다. 이러한 회사는 향상된 보안과 함께 사용자가 또 다른 자격 증명 세트를 만들지 않고도 앱에 빠르게 로그인할 수 있도록 합니다.

인증 및 권한 부여는 모든 서비스에서 구현해야 하므로 마이크로서비스 아키텍처의 경우 더 복잡합니다. 다른 스택을 사용하여 이러한 마이크로 서비스를 구축하는 경우 시나리오는 훨씬 더 문제가 될 수 있습니다. 각 스택에 대해 서로 다른 모범 사례 및 라이브러리 집합을 사용(아마도 쓰기 가능)하게 되므로 가능한 버그의 노출 영역이 증가하고 비즈니스 가치를 제공하는 데 투자할 수 있는 회사 리소스를 소비하게 됩니다.

이 문제를 해결하기 위해 Istio와 이를 Auth0과 통합하는 방법에 대해 알아봅니다. 보시다시피 the authentication features provided by Istio 중 하나를 사용하면 이 문제를 쉽게 방지하고 코드 변경 없이 애플리케이션을 보호할 수 있습니다.

전제 조건



Istio 및 사용 방법에 대해 알아보기 전에 관리자 액세스 권한이 있는 Kubernetes 클러스터를 손에 넣어야 합니다. 다음으로 클러스터와 상호 작용하려면 Kubernetes 명령줄 도구인 kubectl 이 필요합니다. kubectl를 설치하려면 the official documentation으로 이동하여 운영 체제에 대한 지침을 따르십시오.

이 기사에서는 kind 로 알려진 Kubernetes In Docker를 사용합니다. 그래도 Docker-Desktop( installationusage ), Rancher Desktop 또는 Minikube 과 같은 다른 로컬 Kubernetes 배포를 사용할 수 있습니다.
kind를 설치하려면 Kind Quick Start.의 설치 지침을 따르십시오.

종류로 클러스터 만들기



설치 후kind 다음 명령을 사용하여 Kubernetes 클러스터를 생성할 수 있습니다.

kind create cluster --image=kindest/node:v1.23.1


이 명령은 Kubernetes 버전 1.23.1로 컨테이너 이미지를 가져와서 컨테이너 런타임에서 실행합니다. 예를 들어 Docker에 있는 경우 다음을 실행하여 실행 중인 컨테이너를 볼 수 있습니다.

docker ps                                      


출력에 실행 중인 새 컨테이너가 표시됩니다.

CONTAINER ID   IMAGE                  COMMAND        NAMES
2974301ffa31   kindest/node:v1.23.1   "/usr/loca…"   kind-control-plane


Note: In this article, we use Kubernetes version 1.23. Istio 1.14 is compatible with versions 1.20 and onwards. To learn about the supported releases of Kubernetes, check the official docs at Istio > Supported Kubernetes releases.



Read more...

좋은 웹페이지 즐겨찾기