설명
CloudFront 지리적 제한은 접속 IP의 지리적 위치를 기준으로 국가별 콘텐츠 접근을 제어합니다. 라이선스나 서비스 정책상 배포 지역을 제한해야 할 때 유용하지만, 전 세계 공개가 의도된 서비스에서는 제한을 사용하지 않을 수 있습니다.
이 기능은 사용자 신원이나 실제 체류 위치를 보장하지 않으며 인증과 오리진 접근 제한을 대신하지 않습니다.
잠재적 영향
필요한 국가 제한이 없으면 허용 지역 밖에서도 콘텐츠에 접근할 수 있습니다. 반대로 잘못된 목록은 정상 사용자 접근을 차단할 수 있습니다.
해결 방법
서비스의 국가별 제공 요구를 확인하고 필요한 경우 Restrictions.GeoRestriction에 적절한 허용 또는 차단 목록을 설정하세요. 실제 접속 결과와 오리진 직접 접근을 확인하고 인증 등 다른 통제도 유지하세요.
예시
지리적 제한만 비교하는 배포 발췌입니다. 실제 배포에 필요한 오리진·캐시 동작 등은 생략되어 있으며, 국가 코드는 서비스 정책에 맞게 선택해야 합니다.
변경 전
yaml
AWSTemplateFormatVersion: '2010-09-09'
Resources:
myDistribution:
Type: AWS::CloudFront::Distribution
Properties:
DistributionConfig:
Logging:
IncludeCookies: 'false'
Bucket: mylogs.s3.amazonaws.com
Prefix: myprefix
Restrictions:
GeoRestriction:
RestrictionType: none
ViewerCertificate:
CloudFrontDefaultCertificate: 'true'
RestrictionType: none은 국가별 접근 제한을 적용하지 않습니다.
변경 후
yaml
AWSTemplateFormatVersion: '2010-09-09'
Resources:
myDistribution:
Type: AWS::CloudFront::Distribution
Properties:
DistributionConfig:
Logging:
IncludeCookies: 'false'
Bucket: mylogs.s3.amazonaws.com
Prefix: myprefix
Restrictions:
GeoRestriction:
RestrictionType: whitelist
Locations:
- AQ
- CV
ViewerCertificate:
CloudFrontDefaultCertificate: 'true'
whitelist에 AQ와 CV를 지정합니다. 이는 예시 국가 목록이며, 모든 서비스에 권장되는 목록은 아닙니다.