설명
Classic Load Balancer의 HTTPS·SSL 리스너가 약한 암호군이나 구식 TLS 버전을 허용하면 클라이언트 연결의 보호 수준이 낮아질 수 있습니다. HTTPS를 사용하는 것만으로 충분하지 않으며 실제 리스너에 연결된 보안 정책을 확인해야 합니다.
잠재적 영향
- 취약한 조합이 협상되면 통신 보호가 약해지거나 조직의 TLS 요구 사항을 충족하지 못할 수 있습니다.
- 호환성을 확인하지 않고 정책을 변경하면 오래된 클라이언트의 연결이 실패할 수 있습니다.
해결 방법
- 해당 로드 밸런서 유형에서 지원하는 정책 중 필요한 TLS 버전과 암호군 기준을 충족하는 정책을 선택하세요. 사용하지 않는 약한 암호군과 구식 프로토콜은 비활성화하세요.
- 리스너의 실제 정책 연결, 인증서, 클라이언트 호환성을 함께 확인하고 변경 후 TLS 연결을 시험하세요.
- 클라이언트와 로드 밸런서 사이의 TLS와 대상 서버까지의 암호화는 별개로 관리하세요. 더 강한 정책이나 TLS 1.3이 필요하면 이를 지원하는 로드 밸런서로의 전환을 검토하세요.
예시
같은 VPC의 서브넷·보안 그룹과 유효한 인증서 ARN을 지정하는 Classic ELB 예시입니다. 대상 등록과 네트워크 규칙은 별도로 구성해야 합니다. 두 예시 모두 대상 서버로는 HTTP를 사용하므로 종단 간 암호화 구성은 아닙니다.
변경 전
yaml
Parameters:
SubnetIds:
Type: List<AWS::EC2::Subnet::Id>
SecurityGroupIds:
Type: List<AWS::EC2::SecurityGroup::Id>
CertificateArn:
Type: String
Resources:
MyLoadBalancer:
Type: AWS::ElasticLoadBalancing::LoadBalancer
Properties:
Subnets: !Ref SubnetIds
SecurityGroups: !Ref SecurityGroupIds
Listeners:
- InstancePort: "80"
InstanceProtocol: HTTP
LoadBalancerPort: "443"
Protocol: HTTPS
SSLCertificateId: !Ref CertificateArn
PolicyNames:
- My-SSLNegotiation-Policy
Policies:
- PolicyName: My-SSLNegotiation-Policy
PolicyType: SSLNegotiationPolicyType
Attributes:
- Name: Reference-Security-Policy
Value: ELBSecurityPolicy-2015-05
ELBSecurityPolicy-2015-05는 TLS 1.0·1.1과 3DES 암호군을 허용합니다.
변경 후
yaml
Parameters:
SubnetIds:
Type: List<AWS::EC2::Subnet::Id>
SecurityGroupIds:
Type: List<AWS::EC2::SecurityGroup::Id>
CertificateArn:
Type: String
Resources:
MyLoadBalancer:
Type: AWS::ElasticLoadBalancing::LoadBalancer
Properties:
Subnets: !Ref SubnetIds
SecurityGroups: !Ref SecurityGroupIds
Listeners:
- InstancePort: "80"
InstanceProtocol: HTTP
LoadBalancerPort: "443"
Protocol: HTTPS
SSLCertificateId: !Ref CertificateArn
PolicyNames:
- My-SSLNegotiation-Policy
Policies:
- PolicyName: My-SSLNegotiation-Policy
PolicyType: SSLNegotiationPolicyType
Attributes:
- Name: Reference-Security-Policy
Value: ELBSecurityPolicy-TLS-1-2-2017-01
ELBSecurityPolicy-TLS-1-2-2017-01은 TLS 1.2만 허용하고 3DES를 제외합니다. 이 정책도 정적 RSA와 CBC 암호군을 포함하므로 조직의 전체 암호군 기준을 충족하는지 별도로 확인하세요.