설명
CloudFront가 오래된 TLS 프로토콜을 허용하면 클라이언트가 조직의 암호화 기준보다 약한 방식으로 연결할 수 있습니다. 사용자 지정 인증서를 사용하는 배포에서는 viewerCertificate.minimumProtocolVersion으로 최소 TLS 버전과 암호군을 정하는 보안 정책을 선택합니다.
CloudFront 기본 인증서를 사용하는 경우에는 이 필드로 보안 정책을 변경할 수 없습니다. 또한 뷰어의 HTTPS 사용을 요구하는 설정과 CloudFront에서 오리진으로 연결하는 구간의 TLS 설정은 별개입니다.
잠재적 영향
- 오래된 TLS 프로토콜이나 약한 암호 방식이 협상되어 전송 구간의 보호 수준이 낮아질 수 있습니다.
- 서비스별 설정이 다르면 조직의 TLS 운영 기준을 일관되게 적용하기 어렵습니다.
해결 방법
- 사용자 지정 인증서를 사용하는 배포에는 TLS 1.2 이상을 최소 버전으로 하는 지원 보안 정책을 선택하세요. 예를 들어
TLSv1.2_2018은 최소 TLS 1.2를 요구합니다. - 인증서, 도메인 이름과
sslSupportMethod를 함께 구성하고 필요한 클라이언트의 연결을 시험하세요. viewerProtocolPolicy로 HTTPS만 허용하거나 HTTP를 HTTPS로 리디렉션하고, 오리진 연결의 TLS도 별도로 검토하세요.
예시
다음은 사용자 지정 인증서를 사용하는 배포의 보안 정책을 비교하는 부분 예시입니다. 인증서와 sslSupportMethod 등 나머지 배포 설정은 생략했습니다.
변경 전
yaml
apiVersion: cloudfront.aws.crossplane.io/v1alpha1
kind: Distribution
spec:
forProvider:
distributionConfig:
viewerCertificate:
minimumProtocolVersion: TLSv1.1_2016
TLSv1.1_2016은 TLS 1.1 연결도 허용합니다.
변경 후
yaml
apiVersion: cloudfront.aws.crossplane.io/v1alpha1
kind: Distribution
spec:
forProvider:
distributionConfig:
viewerCertificate:
minimumProtocolVersion: TLSv1.2_2018
TLSv1.2_2018은 뷰어 TLS 연결에 최소 TLS 1.2를 요구합니다. 이 변경만으로 HTTP 요청을 차단하거나 오리진 연결을 암호화하지는 않습니다.