ACM, Cloudfront, ALB를 활용한 전송되는 데이터 암호화

xlwdn·2023년 5월 14일
0

시나리오


 전세계를 대상으로 웹 서비스를 제공하고 있는 기업에서 CF를 CDN으로 사용하고, 백엔드 서버는 ALB 뒤에 존재합니다.
사용자는 CF 사용자 지정 도메인으로 service.example.com을 사용하며, CF origin은 service-alb.example을 도메인으로 사용하는 ALB입니다.
 기업의 보안 정책에 따라, 사용자와 백엔드 간의 전송되는 모든 트래픽은 암호화되어야합니다.

딱히 복잡하지 않은 시나리오이다. 사용자 -> CF, CF -> ALB, ALB -> EC2 간의 통신이 모두 SSL/TLS로 요청을 전송하도록 구성하면된다.

User -> CF간 전송 암호화


CF로 들어오는 요청은 ACM을 사용하여 service.example.com에 대한 인증서를 생성하고, 이 사용자 지정 인증서를 사용하도록 CF를 구성하면 된다. 또한 반드시 암호화되어야하므로 HTTP요청을 HTTPS로 리디렉트하도록 기본 동작을 변경한다.

CF -> ALB간 전송 암호화


AWS Certificate Manager(ACM)를 사용하여 service-alb.example.com에 대한 인증서를 생성한다. ALB에서 새 대상 그룹과 service-alb.example.com ACM 인증서를 사용하는 새 HTTPS 수신기를 추가하고 HTTPS 프로토콜만 사용하도록 CloudFront 오리진을 수정한 뒤, ALB에서 HTTP 수신기를 삭제합니다.

ALB -> EC2간 전송 암호화


EC2 인스턴스에 대한 도메인 이름을 사용하여 타사 인증서 공급자로부터 공개 인증서를 생성한 뒤, HTTPS 수신기에 대해 이 인증서를 사용하도록 백엔드를 구성한다. 또한 HTTPS 프로토콜을 사용하도록 대상 그룹을 구성한다.



클플에서 한 번씩 읽고 사용해봤을 법한 시나리오이기에 이해하는 데에는 그리 어렵지 않을 것이다.

0개의 댓글