CloudFrontからオリジン(ALB)へのアクセスをCloudFrontからのみに限定する方法として以下の2点があります。

  • CloudFrontでタグを付与しタグのない通信はALBでブロックする
  • ALBにセキュリティグループを適用する

今回はセキュリティグループを使用してCloudFrontからオリジン(ALB)へのアクセスをCloudFrontからのみに限定する方法を紹介します。
前回CloudFrontをさくっと試したい記事を書きまして、続編のような記事になります。ご興味お持ちいただけましたら以下もご参照ください。

今さら聞けないCloudFrontの基本的な使い方

構成

赤枠部分の通信をセキュリティグループを使用してCloudFrontからオリジン(ALB)へのアクセスをCloudFrontからのみに限定します。

今回やらないこと

  • CloudFrontの設定方法
  • EC2の構築
  • セキュリティグループ設定以外のALB設定

今回やりたいこと

改めてですが今回はセキュリティグループを使用してCloudFrontからオリジン(ALB)へのアクセスをCloudFrontからのみに限定させます。
この部分に特化して手順をご紹介します。

セキュリティグループの修正

やるべきことは極めてシンプルでALBにCloudFrontからのみ受け付ける用にセキュリティグループを修正します。
既にALBにアタッチしているセキュリティグループを修正します。
まずVPCのページに移動して「セキュリティグループ」をクリックします。

次にALBにアタッチしている「セキュリティグループを選択します。
以下の例では「k-sawada-alb-sg」という名前のセキュリティグループを選択しています。続けて「インバウンドルール」のタブをクリックして対象を選んで「インバウンドルールの編集」をクリックします。

インバウンドルールの編集をします。
既に80番ポートのルールがあると思いますが、こちらをAWSが提供しているCloudFront用のプレフィックスリストを設定します。
以下の画像のようにクリックすると下の方にプレフィックスリストがあります。
com.amazonaws.global.cloudfront.origin-facing
というのがAWSが提供しているCloudFront用のプレフィックスリストになります。

選択すると以下のような画面になります。
問題ないことを確認して「ルールを保存」をクリックします。
※今回の例ではHTTPに対して設定しておりますが、必要に応じてHTTPSへの設定も実施してください
※また今回はALBに対して設定しておりますが、セキュリティグループですので、EC2への設定も可能です。環境に応じて使い分けてください。

注意事項

今回ご紹介した方法で設定しようとしたらエラーが出て設定できないということがあります。
それはセキュリティグループのルール数が上限を超えている可能性があります。その際は「Service Quotas」のページに遷移して「AWSのサービス」→「Amazon VPC」の「Inbound or outbound rules per security group」を確認してください。
上限を超えている場合は上限を上げる申請をすることでエラーを解消することができます。
以下の例では既に上限が100になっていたためエラーは発生しませんでした。

以上で、簡単にセキュリティグループを使ってCloudFrontからオリジン(ALB)へのアクセスをCloudFrontからのみに限定することができました。