s3内の特定ファイルを特定の国に対して利用できないようにする際に考えること

以下の2つの要件を満たしたい時がある

  • 特定の国に対して利用できないようにしたい。
  • コンテンツを世界中のユーザーに低レイテンシーで配信したい。

CloudFront ウェブディストリビューションを活用する。

https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/DownloadDistS3AndCustomOrigins.html

CloudFront ウェブディストリビューションを使うことで配信しているコンテンツに対し特定地域のユーザーによるアクセスを回避することができる。地域制限を使用するには、次の 2 つの方法が考えられる。

・CloudFront の地理制限機能の使用
エッジロケーションによる地理的制限を有効化。

ディストリビューションに関連するすべてのファイルへのアクセスを制限し、国レベルでアクセスを制限する場合は、この方法を使用する。 

これをすると、S3 の公開しているバケットの中のファイル全てに制限をかけることができる。特定のファイルにのみ制限をかけることはできない。

・サードパーティの位置情報サービスの使用

上記 CloudFront の地理制限機能を使って要件を満たすことができない場合は、サードパーティのツールを探すことになる。

なお、Lambda@エッジを利用した制限アルゴリズムを連携するといった機能は現状存在しない。