ELB 로드 밸런서에 TLS 종료가 필요한지 확인 - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

ELB 로드 밸런서에 TLS 종료가 필요한지 확인

작성자: Priyanka Chaudhary(AWS)

환경: 프로덕션

기술: 네트워킹; 보안, 자격 증명, 규정 준수

AWS 서비스: Amazon CloudWatch Events, Elastic Load Balancing(ELB), AWS Lambda

요약

Amazon Web Services(AWS) Cloud에서 Elastic Load Balancing(ELB)은 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스, 컨테이너, IP 주소 및 AWS Lambda 함수와 같은 여러 대상에 수신 애플리케이션 트래픽을 자동으로 분산합니다. 로드 밸런서는 리스너를 사용하여 로드 밸런서가 사용자의 트래픽을 수락하는 데 사용하는 포트와 프로토콜을 정의합니다. Application Load Balancer는 애플리케이션 계층에서 라우팅 결정을 내리고 HTTP/HTTPS 프로토콜을 사용합니다. Classic Load Balancer는 TCP 또는 Secure Sockets Layer(SSL) 프로토콜을 사용하여 전송 계층에서, 또는 HTTP/를 사용하여 애플리케이션 계층에서 라우팅 결정을 내립니다HTTPS.

이 패턴은 Application Load Balancer 및 Classic Load Balancer에 대한 여러 이벤트 유형을 검사하는 보안 제어를 제공합니다. 함수가 호출되면 AWS Lambda는 이벤트를 검사하고 로드 밸런서가 규정을 준수하는지 확인합니다.

이 함수는 CreateLoadBalancer, , , , CreateLoadBalancerListeners, DeleteLoadBalancerListenersCreateLoadBalancerPolicy, DeleteListener, SetLoadBalancerPoliciesOfListener CreateListener및 API 호출에 대해 Amazon CloudWatch Events 이벤트를 시작합니다ModifyListener. 이벤트가 이러한 중 하나를 감지하면 Python 스크립트를 실행하는 AWS Lambda를 APIs호출합니다. Python 스크립트는 리스너에 SSL 인증서가 포함되어 있는지, 적용되는 정책이 전송 계층 보안()을 사용하는지 확인하기 위해 평가합니다TLS. SSL 정책이 이외의 것으로 확인되면 TLS함수는 관련 정보와 함께 Amazon Simple Notification Service(AmazonSNS) 알림을 사용자에게 보냅니다. 

사전 조건 및 제한 사항

사전 조건 

  • 활성 AWS 계정

제한 사항

  • 이 보안 제어는 로드 밸런서 리스너를 업데이트하지 않는 한 기존 로드 밸런서를 확인하지 않습니다.

  • 이 보안 제어는 리전별로 적용됩니다. 모니터링할 각 AWS 리전에 배포해야 합니다.

아키텍처

대상 아키텍처

로드 밸런서에 TLS 종료가 필요한지 확인합니다.

자동화 및 규모 조정

도구

AWS 서비스

  • AWS CloudFormation - AWS CloudFormation 는 AWS 리소스를 모델링 및 설정하고, 빠르고 일관되게 프로비저닝하고, 수명 주기 내내 관리할 수 있도록 지원합니다. 템플릿을 사용하여 리소스와 해당 종속성을 설명하고 리소스를 개별적으로 관리하는 대신 스택으로 함께 시작 및 구성할 수 있습니다.

  • Amazon CloudWatch Events - Amazon CloudWatch Events는 AWS 리소스의 변경 사항을 설명하는 시스템 이벤트의 거의 실시간 스트림을 제공합니다.

  • AWS Lambda - AWS Lambda는 서버를 프로비저닝하거나 관리하지 않고도 실행 중인 코드를 지원하는 컴퓨팅 서비스입니다.

  • Amazon S3-Amazon Simple Storage Service(S3)는 웹 사이트, 모바일 애플리케이션, 백업, 데이터 레이크 등 다양한 스토리지 솔루션에 사용할 수 있는 확장성이 뛰어난 객체 스토리지 서비스입니다.

  • Amazon SNS – Amazon Simple Notification Service(Amazon SNS)는 웹 서버 및 이메일 주소를 포함하여 게시자와 클라이언트 간의 메시지 전송 또는 전송을 조정하고 관리합니다. 구독자는 구독하는 주제에 게시된 모든 메시지를 수신하며 주제에 대한 모든 구독자는 동일한 메시지를 수신합니다.

코드

이 패턴에는 다음과 같은 첨부 파일이 포함됩니다.

  • ELBRequirestlstermination.zip - 보안 제어를 위한 Lambda 코드입니다.

  • ELBRequirestlstermination.yml - 이벤트 및 Lambda 함수를 설정하는 CloudFormation 템플릿입니다.

에픽

작업설명필요한 기술

S3 버킷을 정의합니다.

Amazon S3 콘솔에서 Lambda 코드 .zip 파일을 호스팅할 S3 버킷을 선택하거나 생성합니다. 이 S3 버킷은 평가하려는 로드 밸런서와 동일한 AWS 리전에 있어야 합니다. S3 버킷 이름은 전역적으로 고유하며 네임스페이스는 모든 AWS 계정에서 공유됩니다. S3 버킷 이름에는 선행 슬래시를 포함할 수 없습니다.

클라우드 아키텍트

Lambda 코드를 업로드합니다.

첨부 파일 섹션에 제공된 Lambda 코드(ELBRequirestlstermination.zip 파일)를 S3 버킷에 업로드합니다.

클라우드 아키텍트
작업설명필요한 기술

AWS CloudFormation 템플릿을 시작합니다.

S3 버킷과 동일한 AWS 리전에서 AWS CloudFormation 콘솔을 열고 연결된 템플릿 를 배포합니다ELBRequirestlstermination.yml. AWS CloudFormation 템플릿 배포에 대한 자세한 내용은 CloudFormation 설명서의 AWS CloudFormation 콘솔에서 스택 생성을 참조하세요.

클라우드 아키텍트

템플릿에서 파라미터를 작성합니다.

템플릿을 시작하면 다음 정보를 입력하라는 메시지가 표시됩니다.

  • S3 버킷: 첫 번째 에픽에서 생성하거나 선택한 버킷을 지정합니다. 여기에 첨부된 Lambda 코드(ELBRequirestlstermination.zip파일) 를 업로드했습니다.

  • S3 키: S3 버킷에 있는 Lambda .zip 파일의 위치를 지정합니다(예: ELBRequirestlstermination.zip 또는 controls/ELBRequirestlstermination.zip). 선행 슬래시를 포함하지 마세요.

  • 알림 이메일: Amazon SNS 알림을 수신하려는 활성 이메일 주소를 제공합니다.

  • Lamba 로깅 수준: Lambda 함수의 로깅 수준 및 빈도를 지정합니다. 정보를 사용하여 진행 상황에 대한 자세한 정보 메시지를 기록하고, 배포를 계속할 수 있는 오류 이벤트의 경우 오류를 기록하고, 잠재적으로 유해한 상황에 대한 경고를 기록할 수 있습니다.

클라우드 아키텍트
작업설명필요한 기술

구독을 확인합니다.

CloudFormation 템플릿이 성공적으로 배포되면 제공한 이메일 주소로 구독 이메일을 보냅니다. 위반 알림을 받기 시작하려면 이 이메일 구독을 확인해야 합니다.

클라우드 아키텍트

관련 리소스

첨부

이 문서와 관련된 추가 콘텐츠에 액세스하려면 attachment.zip 파일의 압축을 풉니다.