2017-10-26 5 views
0

마이크로 서비스 응용 프로그램을 SSL로 보호하는 방법에 대한 의문이 있습니다.마이크로 서비스에서 SSL 사용

quik를 상황 스케치 :

나는 앞에로드 밸런서와 아마존 EC2 인스턴스가 있습니다. ec2 인스턴스에서 (VPC에서) 레지스트리 및 게이트웨이 응용 프로그램이있는 5 개의 마이크로 서비스를 실행 중입니다. 로드 밸런서는 Amazon 인증서 관리자의 인증서를 사용합니다. 또한 keytool로 생성 된 자체 서명 인증서가 있습니다.

지금은 데 질문은 : 나는 단지 내 게이트웨이 응용 프로그램에 대한 자체 서명 된 인증서를 구성하고 신뢰할 수있는 인증서로로드 밸런서와 자체 서명 인증서를 등록하거나 내가 모든 microservice에 대한 자체 서명 된 인증서를 구성해야해야 또한?

감사합니다,

+1

정확히 게이트웨이 응용 프로그램이란 무엇입니까? 귀하의 질문은 명확하지 않습니다. –

+1

위와 같이 내부 아키텍처를 더 잘 이해하지 않으면 이에 대한 답변을 얻을 수 없습니다. "게이트웨이 응용 프로그램"의 기능에 따라 응용 프로그램로드 밸런서 (ALB에 AWS 웹 응용 프로그램 방화벽을 추가 할 수도 있음)를 사용하여 수행 할 수있는 작업을 수행 할 수 있으므로 장애 지점이 제거되고 확장 성이 향상됩니다 귀하의 마이크로 서비스. 또한 balancer와 microservices 사이에 실제로 HTTPS가 필요한지 또는 브라우저와 균형 조정기로 충분할 것인지에 대한 질문이 있습니다 (일반적인 이유는 둘 다 필요한 것이기 때문에 기술적이지는 않습니다). –

+0

@ Michael-sqlbot 게이트웨이 응용 프로그램은 사용자의 상호 작용 지점 역할을하는 스프링 부트/각도 응용 프로그램입니다. 사용자가이 응용 프로그램을 통해 암시 적으로 요청한 요청은이를 처리 할 수있는 특정 마이크로 서버에 요청의 균형을 이루는 서비스 검색으로 라우팅됩니다. 마이크로 서비스는 모두 동일한 vpc에 있습니다. 그래서 실제로 브라우저와로드 밸런서 사이에 ssl 만 사용하면 충분합니다. –

답변

0
당신은 최종 사용자에 노출 microservices을 갖고 싶어

및 https로 확보했다.

보안을 원하는 경우 자체 서명 된 인증서를 사용하지 마십시오. Let 's Encrypt는 훨씬 더 좋은 선택입니다.

API 게이트웨이를 사용하면 https와 함께 사용할 수 있습니다. 모든 서비스에 대해 단일 종점이 될 수 있습니다. 그러면 디렉토리가 다른 서비스로 이어질 수 있습니다. 반면에, 모든 것이 하나의 머신으로 간다면, 나는 하나의 JVM을 사용할 것입니다 ... 그러나 그것은 다른 이야기입니다.

기타 옵션이 더 명확하지 않습니다. 의견에 따르면 - 나뿐만 아니라. 마이크로 서비스가 인터넷에 노출되어있는 경우로드 밸런서에서 https를 종료 할 수 있습니다. 내가 얻지 못하는 것은 >> 나의 게이트웨이 어플리케이션 < <입니다. 그것은 최종 사용자와 microservices 사이에 뭔가가있는 것 같습니다 ... 그게 사실이라면 https는 어딘가에 종료되어야합니다.

사이드 노트 - 왜 EC2 인스턴스 앞에로드 밸런서가 있는지 알 수 없습니다. 보통 LB는 auto scaling 그룹 앞에 사용되어 인스턴스간에 부하를 분산시킵니다. 당신이 그것을 자동화하고 싶다면 - Elastic Beanstalk이 좋은 선택입니다.

+0

안녕하세요 Michal 님의 의견에 감사드립니다. 게이트웨이 응용 프로그램을 명확히하기 위해 각도 프론트 엔드가있는 마이크로 서비스도 제공됩니다. 나는 loadbalancer 수준에서만 https를 사용하기로 결정했고 자기 서명 인증서를 버렸습니다. 사용자가 https로 리디렉션되도록 다른 포트에서 수신 대기중인 다른 nginx 컨테이너가 있고 loadbalancer가 https 도메인으로 301 리디렉션을 수행 한 후 nginx 포트의 포트 80을 매핑합니다. –