작성
·
90
0
안녕하세요, 강의 잘 들었습니다.
기존에 로그인 후 발급한 토큰을 apigateway에서 검사했었는데 k8s 버전에서는 별도로 토큰을 검사하지 않는 것 같습니다.
로그인하는 의미가 없어질 것 같은데 이부분을 추가하려면 각 서비스에 따로 추가를 하는게 좋을까요?
아니면 중앙으로 처리하는 방법이 따로 있을까요?
답변 2
0
안녕하세요, 이도원입니다.
말씀하신 것처럼 K8s에서 apigateway-service를 기동하여 사용하는게 아니라면, user-service의 토큰을 검증하는 부분은 따로 없게 됩니다. 따라서, user-service에서 apigateway-service에 있었던 역할을 하던가, 별도의 Gateway를 추가하는 작업이 필요할 것 같습니다. Gateway를 대신할 수 있도록 K8s의 Ingress를 사용해 볼수 있습니다. 추가로 인증확인을 위한 JWT 처리는 별도의 로직이 구현되어 있는 부분이기 때문에, K8s의 기능만으로 해결하기 보다는 인증처리를 위한 별도의 service 등을 추가해야 합니다. 저희도 이전 프로젝트에서 인증 처리를 위해 Frontend에서 인증서비스에 요청한 다음, 서비스를 사용할 수 있도록 진행했었습니다.
추가 질문사항 있으시면 다시 글 남겨주세요.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
Corwin님, 쿠버네티스 환경에서의 토큰 검사와 관련하여 질문해 주셨군요. 문서에 제공된 정보와 직접적으로 관련된 내용은 없지만, 일반적으로 쿠버네티스(Kubernetes) 환경에서는 마이크로서비스 간의 안전한 통신을 위해 토큰 검사와 같은 보안 메커니즘 구현이 중요합니다.
토큰 검사를 각 서비스에서 별도로 추가하는 방식과 중앙에서 처리하는 방식 모두 가능합니다.
각 서비스에서 별도로 추가하는 방식: 각 마이크로서비스가 자체적으로 토큰을 검증하게 됩니다. 이는 각 서비스의 독립성을 유지하는데 도움이 되지만, 보안 로직의 중복과 관리의 복잡성을 증가시킬 수 있습니다.
중앙에서 처리하는 방식: API 게이트웨이나 별도의 인증 서비스를 통해 토큰 검증을 중앙에서 처리하는 방법입니다. 이 방법을 사용하면 모든 요청이 검증 절차를 거치게 되어 보안을 강화할 수 있으며, 보안 로직을 한 곳에서 관리할 수 있는 장점이 있습니다.
쿠버네티스 환경에서는 Istio, Spring Cloud Gateway와 같은 서비스 메시(Service Mesh)나 API 게이트웨이를 통해 중앙집중식 인증 처리를 구현할 수 있습니다. 이러한 도구들은 토큰 검증뿐만 아니라, 서비스 간 통신의 보안, 로드 밸런싱, 서비스 발견 등 여러 가지 유용한 기능을 제공합니다.
중앙에서 인증을 처리할 때는 쿠버네티스의 환경이나 설정을 자동으로 감지하고 관리하도록 지원하는 Spring Boot의 기능을 활용할 수 있습니다. 예를 들어, 환경 변수를 통한 Kubernetes의 자동 감지 기능 등은 Spring Boot 애플리케이션을 쿠버네티스 환경에 보다 쉽게 통합할 수 있게 도와줍니다.
이러한 선택은 각 애플리케이션의 아키텍처와 보안 요구사항에 따라 결정해야 합니다. 중앙집중식 방법이 관리와 통합 면에서 유리할 수 있지만, 각 서비스의 독립성이 중요한 경우는 각각에서 별도로 처리하는 것이 더 적합할 수 있습니다.
여기서는 spring cloud의 apigateway를 뺐습니다. 쿠버네티스 환경에서는 불필요한 기능이기 때문이겠죠. ai 답변 말고 직접 답변을 어려우실까요?