自由気ままに書いちゃおう

好きなことをつらつらと・・・

【AWS】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

 

 

 

以上です。