今回はCloudFront利用時に使っておきたいプレフィックスリストについてです。
- ■ CloudFrontのプレフィックスリストとは?
- ■ CloudFrontのプレフィックスリストの使いどころ
- ■ CloudFrontのプレフィックスリストはどこにある?
- ■ セキュリティグループでCloudFrontのプレフィックスリストを使う際の注意点
- ■ CloudFrontのプレフィックスリストを使ったとしても・・・
■ CloudFrontのプレフィックスリストとは?
正確には「CloudFront用のAWSマネージドプレフィックスリスト」と言います。
AWSマネージドプレフィックスリストなので、プレフィックスリスト内のIPアドレスについてはAWS管理となり、利用者観点ではIPアドレス云々を特に気にする必要がないのが助かります。
■ CloudFrontのプレフィックスリストの使いどころ
CloudFrontに到達したリクエストは事前に登録したオリジン(ALBやEC2など)に転送されるか、CloudFrontでキャッシュされているデータとマッチしていれば(=キャッシュヒットしていれば)CloudFrontが直接レスポンスを返します。
この際、オリジン側観点で考えると、「CloudFrontからのアクセスのみを許可したい」という要望が出てくることが予想できます。(というより、そういう要望が大半。。。)
そのため、オリジン(ALBやEC2)にアタッチするセキュリティグループにて「CloudFrontのIPアドレスをすべて許可する」ということをしたくなります。
その際に使えるのが、今回のCloudFrontのプレフィックスリストです。
■ CloudFrontのプレフィックスリストはどこにある?
1.VPCコンソールの「マネージドプレフィックスリスト」を選択します。
2.検索窓に「cloudfront」と入力します。
ここで出てくる「com.amazonaws.global.cloudfront.origin-facing」がCloudFrontのプレフィックスリストです。
■ セキュリティグループでCloudFrontのプレフィックスリストを使う際の注意点
Work with AWS-managed prefix lists - Amazon Virtual Private Cloud
に記載の通り、CloudFrontのプレフィックスリストはWeight:55となっており、CloudFrontのプレフィックスリスト自体で55個のIPアドレスが含まれます。
セキュリティグループでプレフィックスリストを使う際には、セキュリティグループのルール個数制限(デフォルトで1セキュリティグループで60ルールまで登録可能)に注意する必要があります。
実質、60-55=5個しか余らない。。。
セキュリティグループの上限に引っかかった場合には以下のようなエラー(The maximum number of rules per security group has been reached.)画面が出力されます。
■ CloudFrontのプレフィックスリストを使ったとしても・・・
セキュリティグループでCloudFrontのプレフィックスリストを利用し、ALBやEC2にアタッチすることでCloudFrontからのアクセスのみに制限することはできます。
ただしこの状態は、全く関係ないCloudFront(=第三者が所有しているCloudFront)から自分が所有しているオリジン(ALBやEC2)をCloudFrontオリジンとして登録できた場合、オリジンへのアクセスができる状況になります。
※第三者のCloudFrontから自分が所有しているALBを登録する難易度は高いですが、やろうと思えば出来てしまう、という状況です。
そのため、CloudFrontとALBを利用している構成(=カスタムオリジンとしてALB登録済みの構成)の場合には、CloudFrontのカスタムHTTPヘッダーをつけて制御した方がセキュリティが高まります。
Application Load Balancers へのアクセスを制限する - Amazon CloudFront
以上です。