설명
CloudFront를 사용하도록 설계한 서비스에서 배포가 비활성화되거나 오리진 구성이 빠지면 콘텐츠를 의도한 경로로 제공할 수 없습니다. 다만 모든 외부 서비스에 CDN이 필요한 것은 아니며, CDN을 사용하지 않는다는 이유만으로 서비스가 취약해지는 것은 아닙니다.
CloudFront 활성화만으로 오리진에 대한 직접 접근이나 애플리케이션 공격이 차단되지는 않습니다. 서비스의 가용성 요구와 오리진 접근 정책을 함께 검토해야 합니다.
잠재적 영향
- 필요한 배포가 동작하지 않으면 콘텐츠 제공이 중단되거나 오리진에 부하가 집중될 수 있습니다.
- 오리진에 직접 접근할 수 있으면 CloudFront에 적용한 접근 제어나 필터링을 우회할 수 있습니다.
해결 방법
- CDN이 필요한 서비스인지 확인하고, 필요한 배포의
Enabled,Origins와 캐시 동작을 구성하세요. - 오리진에 맞는 접근 제한과 HTTPS를 설정하고 뷰어 연결, 인증 및 필요한 WAF 정책을 별도로 검토하세요.
- 배포 상태와 실제 요청 경로를 확인하고 오류 및 오리진 부하를 모니터링하세요.
예시
다음은 배포 설정의 일부입니다. 실제 배포에는 기본 캐시 동작 등 필수 설정과 유효한 오리진이 필요합니다.
변경 전
yaml
Resources:
MyDistribution:
Type: AWS::CloudFront::Distribution
Properties:
DistributionConfig:
Enabled: false
DefaultRootObject: index.html
배포가 비활성화되어 있고 오리진이 없습니다.
변경 후
yaml
Resources:
MyDistribution:
Type: AWS::CloudFront::Distribution
Properties:
DistributionConfig:
Enabled: true
DefaultRootObject: index.html
Origins:
- DomainName: www.example.com
Id: origin1
CustomOriginConfig:
HTTPPort: 80
HTTPSPort: 443
OriginProtocolPolicy: https-only
배포를 활성화하고 HTTPS로 연결하는 사용자 지정 오리진을 지정합니다. 이 부분만으로 뷰어 HTTPS나 오리진의 직접 접근 제한까지 구성되지는 않습니다.