パブリックからのアクセスを許可しているセキュリティグループを見つけるツール
少し前の話になるのですが、LLMによる開発支援機能を試したいなぁと思って、Cursorを使ってみました。
(同じエディタ内で完結するCursorの開発体験はめっちゃよかったです!)
今回はそのなかで作ったAWSのちょっと便利ツールについて紹介します。
作った理由
皆で共有する検証環境に、意図せずグローバルに許可を与える可能性のあるセキュリティグループが残ったままになっているのを見かけたことがきっかけです。チュートリアル通りに設定したままのものがそのまま残っているケース等だと思います。
AWS Firewall Managerを使えばこういったケースを特定できるとは思いますが、月額$100ですし、実行したらSlackに通知してくれるくらいのライトさで確認したり監視できないかなぁと思ったのがきっかけです。これを定期的に実行するためにLambda化するベースとして試しに作ってみました。
機能
- AWSアカウント内のすべてのセキュリティグループをスキャン
- グローバルに対して公開されているインバウンドルールを持つセキュリティグループを検出
- Pythonの標準ライブラリ
ipaddress
でプライベートIP以外を特定。
- Pythonの標準ライブラリ
- 検出結果をSlackに通知
使用方法
インストール方法のとおりにセットアップして、下記コマンドで実行します。
1 | python src/main.py |
該当するセキュリティグループが見つかった場合、下記のような通知が飛びます。
意図的に外部公開しているセキュリティグループは除外したいケースもあると思うので、その場合はYAMLファイルに該当のセキュリティグループの情報を./config/exclusions.yaml
に追加します
1 | - group_id: sg-12345678 |
そうすると、該当するセキュリティグループの通知はスルーされるようになります。