Amazon Web Services 한국 블로그
Network Load Balancer용 TLS 종료 기능 출시 (서울 리전 포함)
HTTPS 프로토콜을 사용하여 웹 사이트에 액세스할 때에는 보안 통신 채널을 생성 및 유지하기 위해 다양하고 흥미로운 작업(공식 이름은 SSL/TLS 핸드셰이크)이 이루어집니다. 클라이언트(브라우저)와 웹 서버는 서로 연동하여 상호 동의 가능한 암호 및 익스체인지 키를 협상하고 세션 키를 설정합니다.
일단 통신이 설정되면 대화의 양 측은 세션 키를 사용하여 모든 후속 트래픽을 암호화 및 암호 해독합니다. 세션 키는 클라이언트와 서버 간의 고유한 키이므로 제3자는 트래픽을 해독하거나 대화를 간섭할 수 없습니다.
TLS Termination(종료) 기능 출시
이제 AWS에서는 Network Load Balancer에서 종료되는 TLS(Transport Layer Security)를 사용할 수 있는 기능을 고객에게 제공하여 보안 웹 애플리케이션의 구축 과정을 간소화합니다(TLS는 HTTPS의 “S”를 제공하는 기능으로 간주될 수 있습니다). 이 기능은 트래픽을 암호화 및 암호 해독하는 컴퓨팅 집약적인 작업으로부터 백엔드 서버를 해방시켜 주는 동시에 다음과 같은 다양한 기능과 이점도 제공합니다.
- 소스 IP 보존 – TLS가 NLB에서 종료되었을 때에도 소스 IP 주소와 포트가 백엔드 서버에 제공됩니다.
- 간소화된 관리 – 대규모 환경에서 TLS를 사용하는 것은 각 백엔드 서버에 서버 인증서를 배포하는 책임을 맡아야 함을 의미합니다. 이러한 책임은 추가적인 관리 작업(때로는 프록시 서버 작업 수반)을 유발하며, 여러 개의 인증서 사본이 존재함으로 인해 공격 표면도 증가됩니다. 오늘 발표된 기능은 이 모든 복잡성을 제거하고 인증서의 중앙 집중식 관리 지점을 제공합니다. AWS Certificate Manager(ACM)를 사용하는 경우 인증서는 사용자의 추가 작업 없이 안전하게 저장되고, 정기적으로 만료 및 교체되고, 자동으로 업데이트됩니다.
- 제로 데이 패칭 – TLS 프로토콜은 복잡하며 새로운 위협에 대응하여 수시로 업데이트됩니다. NLB에서 연결을 종료하는 방식은 백엔드 서버를 보호해 주며 이러한 위협에 대응하여 AWS에서 고객의 NLB를 업데이트할 수 있게 해 줍니다. AWS에서는 보안 중심의 공식 검증된 TLS/SSL 프로토콜 구현인 s2n을 활용합니다.
- 개선된 규정 준수 – 내장된 보안 정책을 사용하여 애플리케이션에 사용 가능한 암호 제품과 프로토콜 버전을 지정할 수 있습니다. 이 방식은 PCI 및 FedRAMP 규정 준수 작업에 도움이 되며 완벽한 TLS 점수를 얻을 수 있게 해 줍니다.
- 클래식 업그레이드 – 현재 TLS 종료를 위해 Classic Load Balancer를 사용 중인 경우, Network Load Balancer로 전환하면 로드 증가에 대응하여 규모를 신속하게 증가시킬 수 있습니다. 또한 NLB에 정적 IP 주소를 사용할 수 있으며 요청에 대한 소스 IP 주소를 로깅할 수 있습니다.
- 액세스 로그 – 이제 Network Load Balancer에 대한 액세스 로그를 활성화하고 해당 로그를 원하는 S3 버킷으로 전송할 수 있습니다. 로그 항목에는 TLS 프로토콜 버전, 암호 제품, 연결 시간, 핸드셰이크 시간 등의 세부 정보가 포함됩니다.
TLS 종료 사용
Network Load Balancer를 생성하고 수 분 내에 TLS 종료를 활용할 수 있습니다! API(CreateLoadBalancer
), CLI(create-load-balancer
), EC2 콘솔 또는 AWS CloudFormation 템플릿을 사용할 수 있습니다. 저는 콘솔을 사용하겠습니다. 시작하려면 로드 밸런서를 클릭합니다. 그런 다음 Network Load Balancer 영역에서 Create(생성)를 클릭합니다.
이름(MyLB2)을 입력하고 로드 밸런서 프로토콜로 TLS (Secure TCP)를 선택합니다.
그런 다음 하나 이상의 가용 영역을 선택하고, 옵션으로 각 영역에 대한 탄력적 IP 주소를 선택합니다. NLB에 태그를 지정할 수도 있습니다. 모든 설정을 마쳤으면 Next: Configure Security Settings(다음: 보안 설정 구성)를 클릭하여 계속합니다.
다음 페이지에서는 기존 인증서를 선택하거나 새 인증서를 업로드할 수 있습니다. 이미 www.jeff-barr.com에 대한 인증서가 있으므로 이것을 선택하겠습니다. 보안 정책도 선택합니다(잠시 후에 추가 설명).
현재 7개의 보안 정책 중에서 선택할 수 있습니다. 각 정책은 특정 TLS 버전 및 암호의 사용을 허용합니다.
describe-load-balancer-policies
명령을 사용하면 정책에 대해 더 자세히 알 수 있습니다.
인증서와 정책을 선택했으면 Next:Configure Routing(다음: 라우팅 구성)을 선택합니다. NLB와 대상 사이에 사용될 통신 프로토콜(TCP 또는 TLS)을 선택할 수 있습니다. TLS를 선택하는 경우 통신이 암호화됩니다. 이 방식을 사용하면 이동 중에 완전한 엔드 투 엔드 암호화를 구현할 수 있습니다.
나머지 설정 과정을 평소와 같이 진행하고 나면 Network Load Balancer를 바로 사용할 수 있습니다.
지금 이용 가능
TLS 종료 기능은 지금 이용 가능하며 미국 동부(버지니아 북부), 미국 동부(오하이오), 미국 서부(캘리포니아 북부), 미국 서부(오레곤), 아시아 태평양(뭄바이), 아시아 태평양(서울), 아시아 태평양(싱가포르), 아시아 태평양(시드니), 아시아 태평양(도쿄), 캐나다(중부), 유럽(프랑크푸르트), 유럽(아일랜드), 유럽(런던), 유럽(파리) 및 남아메리카(상파울루) 리전에서 오늘부터 사용을 시작할 수 있습니다.
— Jeff;