TLS 리스너를 사용하려면 로드 밸런서에 한 개 이상의 서버 인증서를 반드시 배포해야 하며, 이를 기본 인증서라고 한다.
암호화된 트래픽을 로드 밸런서의 해독 없이 대상으로 전달해야 하는 경우, TLS 리스너를 생성하는 대신 포트 443에서 수신하는 TCP 리스너를 생성하고 NLB에서 요청을 해독하지 않고 바로 전달하도록 한다.
로드 밸런서는 SNI를 지원하는 스마트 인증서 선택 알고리즘을 사용하며 아래와 같은 조건으로 이루어진다.
- 해싱 알고리즘(MD5보다 SHA 선호)
- 키 길이(가장 큰 길이 선호)
- 유효 기간
인증서 갱신
각 인증서는 유효 기간이 있으며 기간이 끝나기 전에 갱신, 교체 해야한다.
- AWS Certificate Manager가 제공하고 로드 밸런서에 배포된 인증서는 자동으로 갱신이 가능합니다. ACM은 인증서가 만료되기 전에 갱신을 시도합니다. 자세한 내용은 AWS Certificate Manager 사용 설명서에서 관리형 갱신을 참조
- ACM에 인증서를 가져온 경우에는 인증서의 만료일을 반드시 모니터링해서 만료되기 전에 인증서를 갱신해야 합니다. 자세한 내용은 AWS Certificate Manager 사용 설명서에서 인증서 가져오기를 참조
- IAM으로 인증서를 가져온 경우, 새 인증서를 만들어 ACM이나 IAM으로 가져온 후 로드 밸런서에 새 인증서를 추가하고, 만료된 인증서를 로드 밸런서에서 제거
보안 정책
TLS 리스너를 생성할 때 보안 정책을 선택해야 하고 필요에 따라 업데이트할 수 있다.
AWS 콘솔에서 서비스 검색에 <인증서>를 입력하여 AWS Certificate Manager(ACM) 서비스 선택
인증서 나열 카테고리를 선택하면 해당 계정에서 사용 중인 인증서의 목록을 확인할 수 있다.
해당 인증서의 연결된 리소스에서 LB명 확인 가능하고, EC2의 특정 로드 밸런서의 리스너 항목에서 적용된 인증서 명을 확인할 수 있다.
Elastic Load Balancing은 Network Load Balancer에 대해 다음과 같은 보안 정책을 제공합니다.
ELBSecurityPolicy-TLS13-1-2-2021-06
ELBSecurityPolicy-TLS13-1-2-Res-2021-06
ELBSecurityPolicy-TLS13-1-2-Ext1-2021-06
ELBSecurityPolicy-TLS13-1-2-Ext2-2021-06
ELBSecurityPolicy-TLS13-1-1-2021-06
ELBSecurityPolicy-TLS13-1-0-2021-06
ELBSecurityPolicy-TLS13-1-3-2021-06
ELBSecurityPolicy-FS-1-2-Res-2020-10
ELBSecurityPolicy-FS-1-2-Res-2019-08
ELBSecurityPolicy-FS-1-2-2019-08
ELBSecurityPolicy-FS-1-1-2019-08
ELBSecurityPolicy-FS-2018-06
ELBSecurityPolicy-TLS-1-2-Ext-2018-06
ELBSecurityPolicy-TLS-1-2-2017-01
ELBSecurityPolicy-TLS-1-1-2017-01
ELBSecurityPolicy-2016-08
ELBSecurityPolicy-TLS-1-0-2015-04
ELBSecurityPolicy-2015-05 (과 동일)ELBSecurityPolicy-2016-08
* TLS 리스너의 경우 ELBSecurityPolicy-TLS13-1-2-2021-06 보안 정책을 사용하는 것이 좋다. 이 정책은 AWS Management Console을(를) 사용하여 만든 리스너의 기본 정책이고, 보안 및 성능에 최적화되어 있으며 TLS 1.2와 하위 호환되는 TLS 1.3이 포함되어 있다.
* ELBSecurityPolicy-2016-08은(는) AWS CLI을(를) 사용하여 만든 리스너의 기본 보안 정책이다.
TLS 1.3 보안 정책
다음 표는 권장 정책(ELBSecurityPolicy-TLS13-1-2-2021-06) 및 기타 TLS 1.3 정책을 설명합니다. ELBSecurityPolicy- 접두사가 제목 행의 정책 이름에서 제거되어 해당 위치에 맞게 조정되었습니다.
보안 정책 | TLS13-1-2-2021-06 | TLS13-1-3-2021-06 | TLS13-1-2-Res-2021-06 | TLS13-1-2-Ext1-2021-06 | TLS13-1-2-Ext2-2021-06 | TLS13-1-1-2021-06 | TLS13-1-0-2021-06 |
TLS 프로토콜 | |||||||
Protocol-TLSv1 | ✓ | ||||||
Protocol-TLSv1.1 | ✓ | ✓ | |||||
Protocol-TLSv1.2 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
Protocol-TLSv1.3 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
TLS 암호 | |||||||
TLS-AES-128-GCM-SHA256 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
TLS-AES-256-GCM-SHA384 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
TLS-CHACHA20-POLY1305-SHA256 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
ECDHE-ECDSA-AES128-GCM-SHA256 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
ECDHE-RSA-AES128-GCM-SHA256 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
ECDHE-ECDSA-AES128-SHA256 | ✓ | ✓ | ✓ | ✓ | ✓ | ||
ECDHE-RSA-AES128-SHA256 | ✓ | ✓ | ✓ | ✓ | ✓ | ||
ECDHE-ECDSA-AES128-SHA | ✓ | ✓ | ✓ | ||||
ECDHE-RSA-AES128-SHA | ✓ | ✓ | ✓ | ||||
ECDHE-ECDSA-AES256-GCM-SHA384 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
ECDHE-RSA-AES256-GCM-SHA384 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
ECDHE-ECDSA-AES256-SHA384 | ✓ | ✓ | ✓ | ✓ | ✓ | ||
ECDHE-RSA-AES256-SHA384 | ✓ | ✓ | ✓ | ✓ | ✓ | ||
ECDHE-RSA-AES256-SHA | ✓ | ✓ | ✓ | ||||
ECDHE-ECDSA-AES256-SHA | ✓ | ✓ | ✓ | ||||
AES128-GCM-SHA256 | ✓ | ✓ | ✓ | ✓ | |||
AES128-SHA256 | ✓ | ✓ | ✓ | ✓ | |||
AES128-SHA | ✓ | ✓ | ✓ | ||||
AES256-GCM-SHA384 | ✓ | ✓ | ✓ | ✓ | |||
AES256-SHA256 | ✓ | ✓ | ✓ | ✓ | |||
AES256-SHA | ✓ | ✓ | ✓ |
- AWS CLI를 사용하여 로드 밸런서에 대한 보안 정책 구성을 보려면 describe-ssl-policies 명령을 사용하면 된다.
AWS Docs : https://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/create-tls-listener.html
'Cloud > AWS' 카테고리의 다른 글
AWS Chatbot을 이용한 ChatOps 모니터링 (0) | 2023.11.28 |
---|---|
AWS - Redis용 ElastiCache 전송 중 암호화 (0) | 2023.11.16 |
AWS EC2 인스턴스 타입 및 세대와 EBS 최대 개수 (0) | 2023.09.07 |
AWS CLI 명령어 (0) | 2023.05.04 |
AWS Route 53 & 레코드 (0) | 2023.04.23 |