ELB 프로토콜 보안 설정 점검

Classic ELB 리스너에서 오래된 SSL/TLS 프로토콜을 허용하지 마세요.

설명

Classic ELB 보안 정책이 SSLv2, SSLv3, TLS 1.0 또는 TLS 1.1을 허용하면 클라이언트가 오래된 암호화 프로토콜로 연결할 수 있습니다. 이런 연결은 알려진 프로토콜 약점에 노출되거나 서비스의 전송 보안 기준을 충족하지 못할 수 있습니다.

정책 이름뿐 아니라 리스너에 실제 적용된 프로토콜과 암호군을 확인해야 합니다. 프런트엔드 정책은 백엔드 연결의 TLS 설정을 대신하지 않습니다.

잠재적 영향

  • 오래된 프로토콜을 협상한 연결에서 기밀 데이터의 보호 수준이 낮아질 수 있습니다.
  • 취약한 정책을 제거할 때 구형 클라이언트의 접속이 끊길 수 있어 호환성 확인이 필요합니다.

해결 방법

오래된 프로토콜을 허용하는 정책을 제거하고 TLS 1.2를 사용하는 ELBSecurityPolicy-TLS-1-2-2017-01 등 요구 사항에 맞는 Classic ELB 정책을 선택하세요. 인증서와 클라이언트 호환성을 확인한 뒤 HTTPS 또는 SSL 리스너의 PolicyNames에 연결하세요. 적용 후 실제 협상되는 프로토콜과 암호군을 확인하세요.

예시

정책 정의만 비교하는 발췌입니다. 실제 적용에는 인증서와 리스너가 필요하며, 해당 리스너의 PolicyNames에 MySSLPolicy를 지정해야 합니다.

변경 전

yaml
Resources:
  MyLoadBalancer:
    Type: AWS::ElasticLoadBalancing::LoadBalancer
    Properties:
      Policies:
        - PolicyName: MySSLPolicy
          PolicyType: SSLNegotiationPolicyType
          Attributes:
            - Name: Protocol-SSLv2
              Value: true

SSLv2를 허용하는 과거 정책 구성입니다. 운영 리스너에 이런 구성을 유지하지 마세요.

변경 후

yaml
Resources:
  MyLoadBalancer:
    Type: AWS::ElasticLoadBalancing::LoadBalancer
    Properties:
      Policies:
        - PolicyName: MySSLPolicy
          PolicyType: SSLNegotiationPolicyType
          Attributes:
            - Name: Reference-Security-Policy
              Value: ELBSecurityPolicy-TLS-1-2-2017-01

TLS 1.2만 허용하는 사전 정의 정책을 참조합니다. 이 정의를 작성하는 것만으로 리스너에 정책이 연결되지는 않습니다.

참조