2017-11-28 7 views
2

ECS 클러스터의 컨테이너에 API 게이트웨이 요청을 프록시하려고합니다. API 게이트웨이를 보안 그룹에 배치 할 수 없으므로 인터넷에 연결된 ALB로드 밸런서를 통해 서비스를 노출해야합니다. 서비스가 API GW의 트래픽 만 처리하는지 확인하려면 client certificates을 사용하려고합니다.ELB에서 API 게이트웨이 클라이언트 인증서 확인

ELB가 나를 위해 API 게이트웨이 클라이언트 인증서를 확인하고 요청을 HTTP 백엔드로 전달하기 전에 SSL 연결을 종료하도록 할 수있는 방법이 있습니까?

ELB가 인증서를 확인할 수없는 경우 프록시를 TCP 프록시로 "다운 그레이드"하고 내 서비스에서 SSL 핸드 셰이크를 수행해야합니다. 그러나 이렇게하려면 서비스 인증서를 제공해야합니다. AWS 제공 SSL 인증서를 사용하고 개인 키를 가지고 있지 않기 때문에 이것은 문제입니다. 따라서 SSL 핸드 셰이크를 재현 할뿐만 아니라 다른 곳에서 내 SSL 인증서를 받아야합니다. 맞습니까?

API 게이트웨이와 ALB 뒤에있는 ECS 서비스 간의 트러스트를 설정하는 것이 좋습니다.

+0

약어를 혼란스럽게 사용하여 죄송합니다. 이전 버전이 아닌'AWS :: ElasticLoadBalancingV2 :: LoadBalancer'를 사용하고 있습니다. 이것은 내가 "ELB"라고 부르는 것입니다. "ELB"가 더 적절하게 "ALB"가되어야한다고 생각합니다. –

답변

0

불행히도 ELB는 클라이언트 인증서 유효성 검사를 지원하지 않습니다. 서비스에서 SSL 종료를 구현하고 TCP 모드에서 ELB를 사용하거나 최신 NLB를 사용할 수 있습니다. 클라이언트 인증서의 개인 키가 필요하지 않은 경우 공개 키/인증서를 서비스의 신뢰할 수있는 CA에 추가하기 만하면 서비스가 API GW 클라이언트 인증서 만 신뢰합니다.

+0

Jack, AWS PrivateLink가 신뢰를 "설정"하기 위해 여기에 적용될 수 있는지 알고 있습니까? 또한, 인증서와 관련이 없지만 신뢰 설정에 관한 한 가지 더 많은 질문 - VPC (공개 IP 주소 제외)에서 잠겨있는 EC2에서 호스팅되는 http에 통합 백엔드를 구성하는 방법이 있습니까? – Nicholas

+0

내가 말하는 개인 키는 클라이언트 인증서가 아닌 SSL 인증서입니다. 인증서를 확인하려면 NLB를 통해 트래픽을 파이프해야하지만 서비스가 SSL 인증서를 제공해야합니다. 그렇습니까? 또한 개인 키를 가져올 수 없기 때문에 현재 ALB에서 SSL을 종료하는 데 사용중인 AWS를 제공 할 수 없습니다. 어쩌면 (잘하면) 내가 뭔가를 오해하고있는 것일까 요? –

+0

아. 잘 보셨 듯이 VPC Link는 이제 클라이언트 인증 SSL없이 백엔드 연결을 보호 할 수있는 API GW에서 사용할 수 있습니다. –