Amazon CloudFront で「AWS マネージドプレフィックスリスト」がサポートされたので使ってみた
2022.2.25
はじめに
こんにちは。CloudLead チームの Cold-Airflow です。
2022/2/7 に「Amazon CloudFront」にアップデートがありました。
本日より、Amazon CloudFront の AWS マネージドプレフィックスリストを使用して、CloudFront のオリジンに面したサーバーに属する IP アドレスのみからのオリジンへのインバウンド HTTP/HTTPS トラフィックを制限できます。CloudFront が、マネージドプレフィックスリストを CloudFront のオリジンに面したサーバーの IP アドレスで最新の状態に保つので、プレフィックスリストを自分で管理する必要がなくなります。
Amazon VPC now supports an AWS-managed prefix list for Amazon CloudFront
アップデートのメリットは?
従来、EC2をオリジンとした場合のオリジン直接のアクセス制御を行う方法としては、CloudFrontにカスタムヘッダーを追加してALBでルールの設定をしたりと、アクセス制御に手間が多くかかってしまっていました。
そこで、マネージドプレフィックスリストを使ってセキュリティグループで制御することでCloudFront経由でアクセスを受け取ることが出来、セキュリティの強化であったり、ログの一元化をすることでアクセス分析も可能となります。
従来のALBやWAFを使ったアクセス制御の方法についての詳細は下記をご覧ください。
Application Load Balancers へのアクセスを制限する – Amazon CloudFront
AWS WAF を使用してコンテンツへのアクセスの管理 – Amazon CloudFront
実際にやってみた
構成
CloudFront のオリジンに EC2 を配置した Web サイトを構築します。
CloudFront を経由しないアクセスをセキュリティグループで拒否します。
Web サイト構築
Apache で Web サーバを構築します。
Apache をインストールします。
sudo yum install -y httpd
Apache を起動します。
sudo systemctl start httpd
最後に適当な HTML ファイルを作成します。
echo "<h1>Hello World!</h1>" > /var/www/html/index.html
これで準備が整ったのでブラウザでアクセスして確認します。
現状のアクセス確認
ブラウザで EC2 のパブリック DNS を指定してアクセスを行います。
C:\Users>curl ec2-18-204-155-85.compute-1.amazonaws.com <h1>Hello World!</h1>
次に、CloudFront の DNS を指定してアクセスを行います。
現状では、どちらとも正常にアクセスできることが確認できました。
C:\Users>curl http://dx9yysqbeotm2.cloudfront.net <h1>Hello World!</h1>
それでは、セキュリティグループのルールに AWS マネージドプレフィックスリスト を設定してアクセス制御を行います。
EC2 のセキュリティグループに AWS マネージドプレフィックスリスト を設定
EC2 にアタッチしているセキュリティグループルールを編集します。
ソースからカスタムを選ぶと候補にある「com.amazonaws.global.cloudfront.origin-facing」を選択します。
見切れてますが、globalと入っているリストを選択すれば大丈夫です。
設定が完了したので EC2 と CloudFront でアクセスをして確認してみます。
- EC2 直接アクセス
C:\Users>curl ec2-18-204-155-85.compute-1.amazonaws.com curl: (7) Failed to connect to ec2-18-204-155-85.compute-1.amazonaws.com port 80: Timed out
- CloudFront 経由のアクセス
C:\Users>curl http://dx9yysqbeotm2.cloudfront.net <h1>Hello World!</h1>
- EC2 直接アクセス → セキュリティグループに拒否されているため TimeOut となりアクセス不可能
- CloudFront 経由のアクセス → 通常通りアクセス可能
まとめ
セキュリティグループを使用して EC2 オリジンのアクセス制御を実装してみました。
セキュリティグループを使えば、ALB や WAF の設定が必要なくなるので構築も楽ですし、コスト面も削減できるかもしれません。
素晴らしいアップデート内容です。
参考記事
Amazon VPC now supports an AWS-managed prefix list for Amazon CloudFrontよくある質問 – Amazon CloudFront | AWS
Application Load Balancers へのアクセスを制限する – Amazon CloudFront
AWS WAF を使用してコンテンツへのアクセスの管理 – Amazon CloudFront
オリジンアクセスアイデンティティ (OAI) を使用して Amazon S3 コンテンツへのアクセスを制限する – Amazon CloudFront
describe-managed-prefix-lists — AWS CLI 1.22.55 Command Reference
CIDR ブロックコレクションとプレフィックスリストを併用する – Amazon Virtual Private Cloud
AWSが管理するプレフィックスリストを操作する-AmazonVirtual Private Cloud
テックブログ新着情報のほか、AWSやGoogle Cloudに関するお役立ち情報を配信中!
Follow @twitter2021年新卒入社。インフラエンジニアです。RDBが三度の飯より好きです。 主にデータベースやAWSのサーバレスについて書く予定です。あと寒いのは苦手です。
Recommends
こちらもおすすめ
-
AWS GlueとAmazon Machine Learningでの予測モデル
2017.12.17
Special Topics
注目記事はこちら
データ分析入門
これから始めるBigQuery基礎知識
2024.02.28
AWSの料金が 10 %割引になる!
『AWSの請求代行リセールサービス』
2024.07.16