ちょっと話題の記事

「このセキュリティグループ使ってるんだっけ…?」に即座に答える AWS Config ルールのご紹介

「そのセキュリティグループ使ってます?」 に即座に答える便利な機能をご紹介!
2020.02.16

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

「えぇ・・・っと。このセキュリティグループ、削除して良いんだっけ。。」

みなさん、このような経験はないでしょうか?(私はよくあります・・・)

検証用途で一時的に作ったもの、過去に使っていたがインスタンスの削除にともない使われなくなった…etc さまざまな理由で使われていないセキュリティグループは存在しているかと思います。

いざ整理しようと思ったとき、悲しいかなセキュリティグループ側には判断するための属性がありません。

今回は、そんなときに役立つ AWS Config Rules を使って未使用のセキュリティグループを検出する方法のご紹介です。

AWS Config

AWS Config はリソースの設定履歴を記録してくれるツールで、『いつ』『何のリソースが』『どのように変更されたか』 といった情報を簡単に確認することができます。(便利なので、ぜひ使ってくださいね)

AWS Config には Config Rules という機能が存在します。Config Rules は、その名のとおり設定におけるルールを設けて、そのルールに従ったリソース設定がされているか否かをチェックすることが出来ます。

最近では従量課金方式に変更され、今回のようにチョット調べたいといった場合にも利用しやすくなりました。

やってみる

Config ルールの設定

百聞は一見に如かず、ということでやってみましょう。AWS Config の管理画面から [ルール] を開き、[ルールを追加] をクリックします。

今回は AWS マネージド型ルールを使いますので、[AWS によって管理されているルールの追加] を選択し、検索ボックスに [ec2-security-group-attached-to-eni] と入力します。同名のルールが表示されますので、これを選択し、[次へ]

ルールの名前を変更する場合は、任意の名前を入力。基本的には、何も変更することなく設定完了で問題ありません。

トリガー設定もデフォルトのままで [次へ] をクリック。

サマリーが表示されますので、[ルールを追加] をクリックして完了します。

確認

設定後ルールの評価が行われますので、すぐに結果を確認することができます。ルールの一覧から先ほど作成したルールを見つけると 準拠していないリソース との表示がありますね。これは EC2 や、どの ENI にもアタッチされていないセキュリティグループがある、ということを表しています。

詳細を確認するには、ルール名をクリックします。

リソースの一覧に、コンプライアンスの値が 非準拠 になっているものがあります。これらはすべて、使われていないセキュリティグループとなります。

リソース名をクリックし、[リソースタイムライン] をクリックすると更に、詳細に当該リソースの変更履歴などを確認することができます。

[関係] の項目をみると、このセキュリティグループでは VPC 以外に関係性をもったリソースが存在していないことが判ります。

EC2 などにアタッチされて利用中の場合は、[関係] の項目にアタッチされている ENI などの情報が表示されます。

これらの情報を参考に、使われてないセキュリティグループを整理してみると良いでしょう。

ルールの削除

ルールをそのまま置いておくと、セキュリティグループの設定変更のたびに再評価が行われ、課金の対象になります。今回のように、一時的な確認のために利用されるのであれば、確認をおえたらルールの削除を行うのが良いでしょう。

確認画面が表示されますので Delete と入力し、[削除] をクリック。

検証は以上です。

さいごに

前回の Security Hub の PCI DSS チェック対応の記事を書いているなかで、AWS Config で未使用のセキュリティグループチェックする設定を見つけました。そういえば、以前に「どのセキュリティグループが使用中なのか判らない問題」に直面したことがあり、このような場面でも利用できるなぁ、と思い記事にしました。

AWS Config Rules は AWS アカウント内のリソースが正しく利用されているかどうかをチェックするために非常に有用な機能が詰まってるな、とあらためて思いました。

その他にも便利な Config ルールや、自動修復機能などもありますので、AWS Config を追っかけてみようかと思います。

以上!大阪オフィスの丸毛(@marumo1981)でした!