VPCプレフィックスリストでIPアドレスを管理してみた

この記事は公開されてから半年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

VPCプレフィックスリストを使って、EC2へIPアドレスの接続許可設定を導入してみました。

目次

プレフィックスリストとは

AWSの公式ドキュメントには下記のように記載があります。https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/managed-prefix-lists.html

プレフィックスリストは、1 つ以上の CIDR ブロックのセットです。プレフィクスリストを使用すると、セキュリティグループとルートテーブルの設定と管理が容易になります。

セキュリティグループ内でソースIPアドレスの代わりにプレフィックスリストを使用することができるのため、いくつかのCIDRブロックがまとまったプレフィックスリストを利用することにより、管理上の手間が低減する可能性があります。

プレフィックスリストの種類

プレフィックスリストには次の種類があります。

  • AWS マネージドプレフィックスリスト
  • カスタマー管理プレフィックスリスト

AWS マネージドプレフィックスリスト

こちらはAWSが管理するプレフィックスリストです。
現在はそれぞれS3、DynamoDB、CloudFrontのIP アドレス範囲を含む3種類のリストが提供されています。

例えば、CloudFrontでオリジンへのアクセスをエッジサーバからのみに絞りたい場合、オリジンとして設定したEC2やALBのセキュリティグループに、公開されているエッジサーバのIPレンジをそのままソースとして設定する形だと、エッジサーバのIPレンジが変化した場合、それに合わせてセキュリティグループを修正する必要が出てきます。

代わりに、セキュリティグループのルールのソースとして上記のCloudFrontのプレフィックスリストを利用すれば、プレフィックスリストの中身はAWSにより更新されるため、エッジサーバのIPレンジの変化が発生しても、ユーザ側でセキュリティグループの修正が不要になります。

カスタマー管理プレフィックスリスト

こちらはユーザーが自分で作成および管理するプレフィックスリストです。
任意の名前・CIDRブロックを指定して作成することができます。
今回はこちらのプレフィックスリストを作成・設定します。

手順

プレフィックスリストの作成

実際にカスタマー管理のプレフィックスリストを作ってみます。

VPCのコンソールのメニューからマネージドプレフィックスリストを選択

「プレフィックスリストを作成」を選択

プレフィックスリスト名や最大エントリ(プレフィックスリストの中で指定可能なCIDRブロックの数)、プレフィックスリストに含めたいCIDRブロックを入力し、「プレフィックスリストを作成」をクリックします。

プレフィックスリストが作成されました。

 

セキュリティグループにプレフィックスリストを使用したルールを設定

下記のように、インバウンドルールのソースに先ほど作成したプレフィックスリストを指定してセキュリティグループを作成しました。

ルールとしては一つですが、先ほど作成したプレフィックスリストに含まれる二つのCIDRブロックからの80番ポートへのアクセスが許可されます。

なお、セキュリティグループにはルール数の制限(デフォルトだと最大60個)がありますが、プレフィックスリストを利用してルールを設定した場合、最大エントリの値の分だけルール数を消費するのでご注意ください。(今回は最大エントリを10としてプレフィックスリストを作成したので、下記のルールは実質10個分のルール数を消費しています)

 

セキュリティグループをEC2インスタンスへアタッチ

作成したセキュリティグループをWEBサーバが稼働しているEC2インスタンスにアタッチし、プレフィックスリストに含まれていないIPアドレスからブラウザでアクセスしてみます。

ページを表示できませんでした。

次に、プレフィックスリストに含めたIPアドレスから同じページにアクセスしてみます。

無事ページが表示され、プレフィックスリストに含めたIPアドレスから接続可能な設定になっていることが確認できました。

まとめ

プレフィックスリストを利用してEC2へのアクセス許可を設定してみました。

今回は一つのセキュリティグループ・EC2に対して設定を行いましたが、例えば会社の拠点のIPアドレスをプレフィックスリストの形でまとめておけば、拠点のIPアドレスが変わった際に、EC2インスタンスが複数ある場合でもプレフィックスリストを変更するだけで変更が全てのセキュリティグループに反映されるような運用ができそうです。

一点、セキュリティグループの画面で表示されるルール数と、実質的に使用されているルール数に乖離が出るのは注意が必要かと感じました。

投稿者プロフィール

Asuka
2018年に入社しました
最近はセキュリティ分野に興味あり