type
status
date
slug
summary
tags
category
icon
password
理論
CloudFrontとALBの連携に関する汎用的知識
WebアプリケーションをAWSで構築する際、CloudFrontとALB(Application Load Balancer)を組み合わせることで、高速でセキュアな配信を実現できます。ただし、CloudFrontを経由せず直接ALBにアクセスされることを防ぐ設定が必要になる場合があります。以下に、この問題に関連する重要な知識を簡潔にまとめます。
CloudFrontとALBの役割
- CloudFront
- グローバルコンテンツ配信ネットワーク(CDN)。
- キャッシュを利用して高速化し、トラフィックを最適化。
- セキュリティ機能(AWS WAFやオリジンアクセス制御)を提供。
- ALB
- アプリケーション層の負荷分散を提供。
- 複数のターゲット(EC2、ECSなど)にトラフィックを分散。
CloudFront経由のみアクセスを許可する方法
CloudFrontを通さず直接ALBにアクセスされるリスクを防ぐには、以下の方法を使用します。
1. CloudFront管理プレフィックスリストを利用
- AWSはCloudFront用の管理プレフィックスリストを提供しています。
- 設定方法:
- ALBのセキュリティグループのインバウンドルールに、
com.amazonaws.global.cloudfront.origin-facing
を指定。 - これにより、CloudFrontのオリジン-facingエッジIPのみがALBにアクセス可能となる。
2. AWS WAFを活用
- ALBにAWS WAFを設定し、特定のリファラーやIPからのアクセスを制限。
- WAFのルールを利用して、CloudFront以外からのトラフィックをブロック。
3. Lambda@Edgeを利用
- CloudFrontのリクエスト時にLambda@Edgeを使用して、リファラーを検証。
- ALBに直接アクセスされるリクエストをCloudFrontレベルでブロック可能。
運用上の注意点
- CloudFrontのIP変更:
ip-ranges.json
を手動で利用する方法は非推奨。管理プレフィックスリストを使用する方が効率的。
- コスト最適化:
- CloudFrontを経由することでキャッシュが効率化され、ALBの負荷を軽減。
まとめ
CloudFrontとALBを安全かつ効率的に運用するには、管理プレフィックスリストを利用してALBへのアクセスを制限することが最も推奨されます。この設定により、CloudFront経由のみのアクセスを簡単に実現できます。
実践
略
一問道場
質問 #332
ある企業が、WebアプリケーションをオンプレミスのデータセンターからAWSクラウドに移行しました。このWebアプリケーションのインフラストラクチャは、Amazon CloudFrontディストリビューションを使用してApplication Load Balancer(ALB)にルーティングし、Amazon Elastic Container Service(Amazon ECS)でリクエストを処理する構成です。最近のセキュリティ監査で、このWebアプリケーションがCloudFrontエンドポイントとALBエンドポイントの両方からアクセス可能であることが判明しました。しかし、企業はWebアプリケーションがCloudFrontエンドポイントからのみアクセス可能であることを求めています。
最小限の手間でこの要件を満たすソリューションはどれですか?
A: 新しいセキュリティグループを作成し、それをCloudFrontディストリビューションにアタッチする。ALBセキュリティグループのインバウンドルールを更新して、CloudFrontのセキュリティグループからのみアクセスを許可する。
B: ALBセキュリティグループのインバウンドルールを更新して、CloudFront管理プレフィックスリスト
com.amazonaws.global.cloudfront.origin-facing
のみからのアクセスを許可する。C: Elastic Load Balancing用のVPCインターフェイスエンドポイント
com.amazonaws.region.elasticloadbalancing
を作成する。ALBのスキームを「インターネット向け」から「内部」に変更する。D: AWSが提供する
ip-ranges.json
ドキュメントからCloudFrontのIPを抽出する。ALBセキュリティグループのインバウンドルールを更新して、CloudFront IPのみからのアクセスを許可する。解説
解説
この問題の目的は、Webアプリケーションが CloudFrontエンドポイント のみを介してアクセスできるようにし、直接のALBエンドポイントからのアクセスを制限することです。以下、各選択肢について解説します。
A: CloudFront用のセキュリティグループを作成してALBに適用
- CloudFrontに直接セキュリティグループを適用することはできません。CloudFrontはAWSのエッジサービスであり、EC2やALBのようにセキュリティグループをサポートしていないため、このアプローチは技術的に不可能です。
- 不適切な回答です。
B: CloudFront管理プレフィックスリストを使用する
- AWSはCloudFrontの管理プレフィックスリスト(
com.amazonaws.global.cloudfront.origin-facing
)を提供しています。このリストには、CloudFrontのオリジン-facingエッジIPが含まれています。
- ALBセキュリティグループのインバウンドルールを更新して、このプレフィックスリストのみにアクセスを許可することで、CloudFront経由のみのアクセスを実現できます。
- 最も効率的な方法であり、正解です。
C: ALBを内部ALBに変更する
- ALBを「インターネット向け」から「内部」に変更することで、ALBがプライベートアクセス専用になります。ただし、この方法ではCloudFrontのIP範囲を明示的に許可する設定が別途必要になります。
- この方法は、設定が複雑になるため、手間が増えます。
- 効率的ではないため不適切です。
D: ip-ranges.json
からCloudFrontのIPを抽出して設定
- AWSが提供する
ip-ranges.json
ファイルにはCloudFrontのIPアドレス範囲が記載されています。この情報を手動でALBセキュリティグループに設定することで、CloudFront経由のトラフィックのみを許可できます。
- ただし、この方法ではCloudFrontのIP範囲が変更された場合に都度更新が必要になり、運用負荷が増加します。
- Bと比べると手間が多いため不適切です。
正解: B
CloudFront管理プレフィックスリストを使用することで、簡単かつ効率的にCloudFront経由のトラフィックのみを許可できます。この方法は、運用負荷も最小限に抑えられるため、推奨される解決策です。
- 作者:みなみ
- 链接:https://tangly1024.com/資格勉強/177d7ae8-88e2-8038-a97e-f4426f86f4b8
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章