説明
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 を指定します。これは例示用の国リストであり、すべてのサービスに推奨されるリストではありません。