AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
로드 밸런서에 연결할 때 클라이언트 SSL/TLS 협상 오류가 발생하는 이유는 무엇입니까?
Elastic Load Balancer(ELB)에 연결할 때 발생하는 SSL/TLS 협상 오류를 해결하고 싶습니다.
간략한 설명
이 오류는 클라이언트가 로드 밸런서와 보안 연결을 협상할 수 없을 때 발생합니다. 일반적으로 이 문제는 지원되지 않는 암호 또는 프로토콜 버전으로 인해 발생합니다.
TLS 연결을 설정하려면 클라이언트가 로드 밸런서의 보안 정책에 정의된 암호 및 프로토콜을 하나 이상 지원하는지 확인하십시오.
해결 방법
참고: AWS Command Line Interface(AWS CLI) 명령 실행 시 오류가 발생하는 경우, AWS CLI 오류 문제 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
로드 밸런서의 보안 정책 확인
로드 밸런서의 보안 정책을 확인하려면 다음 단계를 완료하십시오.
- Amazon Elastic Compute Cloud(Amazon EC2) 콘솔을 엽니다.
- 탐색 창의 로드 밸런싱에서 로드 밸런서를 선택합니다.
- 로드 밸런서를 선택한 다음, 리스너를 선택합니다.
- 보안 정책을 확인합니다.
Application Load Balancer 및 Network Load Balancer의 경우 보안 정책 열에서 보안 정책을 찾습니다.
Classic Load Balancer의 경우 암호 열에서 변경을 선택하여 보안 정책을 확인합니다.
AWS CLI를 사용하려면 다음 명령 중 하나를 실행합니다.
- Application Load Balancer 및 Network Load Balancer의 경우 describe-listeners 명령을 실행합니다.
- Classic Load Balancer의 경우 describe-load-balancers 명령을 실행합니다.
지원되는 프로토콜 및 암호 확인
Classic Load Balancer는 사용자 지정 보안 정책을 지원합니다. 그러나 Application Load Balancer와 Network Load Balancer는 사용자 지정 보안 정책을 지원하지 않습니다.
보안 정책에 대한 자세한 내용은 다음 문서를 참조하십시오.
- Application Load Balancer의 보안 정책
- Network Load Balancer의 보안 정책
- Classic Load Balancer의 사전 정의된 SSL 보안 정책
(선택 사항) 로드 밸런서의 보안 정책 테스트
로드 밸런서의 보안 정책에서 지원하는 프로토콜 및 암호를 테스트합니다. sslscan 또는 openssl과 같은 오픈 소스 명령줄 도구를 사용하십시오.
자세한 내용은 GitHub 웹 사이트의 sslscan을 참조하십시오.
sslscan 명령 사용
Amazon Linux EC2 인스턴스 또는 로컬 시스템에서 sslscan 명령을 설치하고 실행합니다. 로드 밸런서가 소스 IP 주소의 TLS 연결을 수락하는지 확인하십시오.
Amazon Linux EC2 인스턴스에서 sslscan을 사용하려면 다음 단계를 완료하십시오.
-
다음 명령을 실행합니다.
sudo yum install sslscan -
로드 밸런서에서 지원되는 암호를 검색하려면 다음 명령을 실행합니다. example.com을 도메인 이름으로 바꿉니다.
[ec2-user@ ~]$ sslscan --show-ciphers example.com참고: Amazon Linux 2023(AL2023)은 EPEL을 지원하지 않습니다.
openssl 명령 사용
로드 밸런서의 보안 정책을 테스트하려면 openssl 명령을 사용할 수도 있습니다. Amazon Linux EC2 인스턴스 또는 로컬 시스템에서 openssl 명령을 실행합니다.
특정 SSL/TLS 버전에 지원되는 암호를 나열하려면 다음 명령을 실행합니다.
*$* openssl ciphers -v
다음 명령은 TLS 버전 TLS 1.2에서 지원되는 암호를 보여줍니다.
*$* openssl ciphers -V | grep "TLSv1.2"
s_client 명령을 실행하여 TLS 버전과 암호 제품군을 테스트합니다. 특정 암호 제품군의 강도를 확인하려면 TLS Ciphersuite Search와 같은 타사 웹 사이트 리포지토리를 사용하십시오. 예를 들어, 다음 명령을 실행하면 출력에 www.example.com의 암호가 표시됩니다.
openssl s_client -connect example.com:443
TLS_PSK_WITH_AES_128_CBC_SHA 제품군은 취약합니다. 서버에 대해 이 제품군을 사용하는 경우 다음과 같은 오류가 발생합니다.
openssl s_client -connect example.com:443 -cipher PSK-AES128-CBC-SHA -quiet 140062732593056:error:140740B5:SSL routines:SSL23_CLIENT_HELLO:no ciphers available:s23_clnt.c:508:
ECDHE-RSA-AES128-GCM-SHA256 제품군은 강력합니다. 서버에 대해 이 제품군을 사용하는 경우 다음과 유사한 성공 메시지가 표시됩니다.
openssl s_client -connect example.com:443 -cipher ECDHE-RSA-AES128-GCM-SHA256 New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256 Server public key is 2048 bit Secure Renegotiation IS supported Compression: NONE Expansion: NONE No ALPN negotiated SSL-Session: Protocol : TLSv1.2 Cipher : ECDHE-RSA-AES128-GCM-SHA256 Session-ID: 73B49649716645B90D13E29656AEFEBF289A4956301AD9BC65D4832794E282CD Session-ID-ctx: Master-Key: C738D1E7160421281C4CAFEA49941895430168A4028B5D5F6CB6739B58A15235F640A5D740D368A4436CCAFD062B3338 Key-Arg : None Krb5 Principal: None PSK identity: None PSK identity hint: None Start Time: 1647375807 Timeout : 300 (sec) Verify return code: 0 (ok)
연결에 사용되는 TLS 프로토콜의 버전을 지정하려면 openssl 명령을 실행합니다. 다음 예제는 서버에서 TLS 1.1을 지원하는지 확인하는 테스트를 보여줍니다.
openssl s_client -connect example.com:443 -tls1_1 -quiet depth=2 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root G2 verify return:1 depth=1 C = US, O = DigiCert Inc, CN = DigiCert Global CA G2 verify return:1 depth=0 CN = *.peg.a2z.com verify return:1
(선택 사항) Application Load Balancer의 연결 로그와 Network Load Balancer의 액세스 로그 확인
클라이언트가 Application Load Balancer의 HTTPS 리스너를 연결하는 경우 연결 로그를 사용하여 프로토콜과 암호를 확인하십시오. 연결에 사용되는 프로토콜과 암호는 tls_protocol 및 tls_cipher 필드에 있습니다. TLS 협상이 실패한 경우 tls_verify_status 필드는 Failed:$error_code로 설정되고 tls_protocol 및 tls_cipher 필드는 ‘-’로 설정됩니다.
클라이언트가 Network Load Balancer의 TLS 리스너를 연결하는 경우 액세스 로그를 사용하여 프로토콜과 암호를 확인하십시오. 연결에 사용되는 프로토콜과 암호는 tls_protocol_version 및 tls_cipher 필드에 있습니다. TLS 협상이 실패하면 액세스 로그가 기록되지 않습니다.
자세한 내용은 Application Load Balancer의 연결 로그와 Network Load Balancer의 액세스 로그를 참조하십시오.
로드 밸런서 보안 정책 업데이트
지원되는 프로토콜 또는 암호를 사용하여 보안을 강화하려면 로드 밸런서의 보안 정책을 업데이트하십시오. 보안 정책을 업데이트하는 방법에 대한 자세한 내용은 다음 문서를 참조하십시오.
- Application Load Balancer의 경우 보안 정책 업데이트를 참조하십시오.
- Network Load Balancer의 경우 보안 정책 업데이트를 참조하십시오.
- Classic Load Balancer의 경우 콘솔을 사용하여 SSL 협상 구성 업데이트를 참조하십시오.
- 언어
- 한국어

