目次
ごあいさつ
こんばんは。
最近は久々に歴女してます。もに倉です。
今回はプレフィックスリストへエントリを一気に追加したり一気に消したりしようと思います。
そもそもプレフィックスリストってな~に?
マネージドプレフィックスリストを使用したネットワーク CIDR ブロックの統合と管理
マネージドプレフィックスリストは、1 つ以上の CIDR ブロックのセットです。
プレフィクスリストを使用すると、セキュリティグループとルートテーブルの設定と管理が容易になります。
頻繁に使用する IP アドレスからプレフィクスリストを作成し、それらを個別に参照するのではなく、セキュリティグループのルールおよびルートでセットとして参照できます。
ざっくり言うと、セキュリティグループとかルートテーブルに設定するIPアドレスを、
使用用途なんかでフォルダ分けできるやつ みたいなことですかねー。
さっそくやっていく
箱を作る
CLIでやりたいことはエントリ(IP)を一気に追加したり一気に消したりすることだけなので、
そのほかの部分はGUIでポチポチやっていきます。
VPCのコンソールから「マネージドプレフィックスリスト」をクリックして、
[プレフィックスリストを作成]をクリック。
設定項目については以下の通り
・プレフィックスリスト名
そのまま。好きな名前にしよう。
・最大エントリ
何個までIPを設定できるか。
セキュリティグループのルール数は最大エントリ数で加算されるっぽいので、
大は小を兼ねるからって大きい数字を入れてしまうとわや。
・プレフィックスリストのエントリ
IPを設定するところ。今回はとりあえずあけておく。
・タグ
お好みで……。
CLIで触ってみる
CloudShell大先生で触っていきましょう!
今回の作業はsudoしてしまうとさっぱりできなくなってしまうので注意。
親切な画像
対象プレフィックスリストの情報を確認
IDとかバージョン情報とかが必要になるので、
まずは作業対象のプレフィックスリストの情報を見ていきます。
コマンドはこちら↓
aws ec2 describe-managed-prefix-lists --filters "Name=prefix-list-name,Values=【対象プレフィックスリストの名前】"
出力はこちら↓
{
"PrefixLists": [
{
"PrefixListId": "【プレフィックスリストのID】",
"AddressFamily": "IPv4",
"State": "create-complete",
"PrefixListArn": "【プレフィックスリストのARN】",
"PrefixListName": "【プレフィックスリストの名前】",
"MaxEntries": 【最大エントリ】,
"Version": 【バージョンの数字(作りたてなら1)】,
"Tags": [],
"OwnerId": "【AWSのアカウントID】"
}
]
}
→「PrefixListId」の欄が必要です。
今回入れたり消したりするIPをまとめておく
今回はなんか適当に入れます。
みんなも入れたいもんを入れよう!
送信メールサーバーで使われる Google の IP アドレスの範囲
これがちょうどよく4つIP使ってるみたいなんで、これを入れたり消したりしますよん。
まず、cloudshell上に↓こういうかんじで対象IPをまとめたjsonファイルを作成します。
vi entries.json
--------------------------------------------------------------------------
[
{"Cidr":"108.177.16.0/24"},
{"Cidr":"108.177.17.0/24"},
{"Cidr":"142.250.220.0/24"},
{"Cidr":"142.250.221.0/24"}
]
--------------------------------------------------------------------------
IPをまとめて追加してみる
jsonファイルが用意できたらあとは↓のコマンドを打つだけ!
aws ec2 modify-managed-prefix-list \
--prefix-list-id 【プレフィックスリストのID】 \
--current-version 【バージョンの数字】 \
--add-entries file://entries.json
簡単やね。
コマンドを叩くと以下のような出力が出ます。
{
"PrefixList": {
"PrefixListId": "【プレフィックスリストのID】",
"AddressFamily": "IPv4",
"State": "modify-in-progress",
"PrefixListArn": "【プレフィックスリストのARN】",
"PrefixListName": "monikura-test",
"MaxEntries": 【最大エントリ】,
"Version": 【バージョンの数字】,
"OwnerId": "【AWSのアカウントID】"
}
}
「modify-in-progress」って出てるんで、ちゃんとコマンドが通ってるなーと思えます。
そんでからコンパネで対象プレフィックスリストを見に行ってみると
入っている!
IPをまとめて削除してみる
消すときはこうじゃ。
バージョンは1から変わっているはずなので注意。必要に応じて確認を
aws ec2 modify-managed-prefix-list \
--prefix-list-id 【プレフィックスリストのID】 \
--current-version 【バージョンの数字】 \
--remove-entries file://entries.json
ほいだらまたこの表示がされるよん。
{
"PrefixList": {
"PrefixListId": "【プレフィックスリストのID】",
"AddressFamily": "IPv4",
"State": "modify-in-progress",
"PrefixListArn": "【プレフィックスリストのARN】",
"PrefixListName": "monikura-test",
"MaxEntries": 【最大エントリ】,
"Version": 【バージョンの数字】,
"OwnerId": "【AWSのアカウントID】"
}
}
あとがき
CLIはこういうときに便利ですね~

たまごのひび割れから身が見え始めたエンジニア。