[アップデート] AWS Firewall Managerのセキュリティグループ監査機能ですべてのIPアドレス範囲(0.0.0.0/0および::/0)を検出できるようになりました

過度にオープンなセキュリティグループを監査できる。利用料は要チェック。
2023.08.31

みなさんこんにちは、杉金です。
AWS Firewall Manager のセキュリティグループ監査機能ですべてのIPアドレス範囲(0.0.0.0/0および::/0)を検出できるようになりました。

なにができるのか

AWS Firewall Managerの管理下にあるAWSアカウントで、セキュリティグループのルールに「0.0.0.0/0」もしくは「::/0」が含まれていないかを監査できるようになりました。 また、自動修復を有効にした場合はルールを発見次第、該当のセキュリティグループのルールを削除します。

やってみた

管理者アカウントでセキュリティポリシーを作成

AWS Firewall Managerの管理者アカウントからセキュリティポリシーを作成します。

ポリシーの詳細を設定していきます。

設定項目は以下です。

  • AWS services
    • Security group
  • Security group policy type
    • Auditing and enforcement of security group rules(セキュリティグループルールの監査と施行)
  • Region
    • Asia Pacific(Tokyo)

次へと進み、ポリシー名を決めて「Configure managed audit policy rules」を選択します。

次はポリシールールを設定します。監査するルールはインバウンドルールにしました。
その下の「Audit overly permissive security group rules」を選択すると、ポリシーアクションをいくつか選択できます。その中に今回のアップデート内容である「Rule allows all traffic」が選択できます。

「Add application list」から、監査したいアプリケーションを指定できます。 何も指定しない場合はすべてのセキュリティグループが監査対象になります。今回は何も指定せずに進みます。

Policy actionは自動修復を選択します。
次へと進み、ポリシーのスコープ定義は以下のようにしました。

<設定内容>

  • AWS accounts this policy applies to
    • Include all accounts under my organization
  • Resource type
    • Security group
  • Resources
    • Include all resources that match the selected resource type

メンバーアカウントでセキュリティグループ作成

試しにメンバーアカウントで適当なセキュリティグループを作ってみます。

インバウンドルールにSSHで0.0.0.0/0を設定しました。作成して1分ぐらいでリロードを押すと、設定したセキュリティグループのルールが消えました

管理者アカウントでコンプライアンス状況を確認すると、全アカウント準拠の状態になっていました。

自動修復しないパターンも試してみる

管理者アカウントから対象のセキュリティポリシーのリンクを選択します。

「Policy details」→「Policy action」の編集から設定を変更します。

自動修復しないオプションを選択して「Save」します。

テスト用のセキュリティグループルールを作り、管理者アカウントから確認すると以下のように非準拠の状態になっているアカウントがあることが分かります。

対象のアカウントをクリックすると、非準拠のリソースが確認できます。

該当のセキュリティグループを選択すると非準拠になっているルールが表示されます。

以上が試してみた結果です。

料金

本記事執筆時点では、セキュリティポリシーごと(リージョン毎)に$100.00/月の料金が発生します。

最後に

何らかの試行錯誤でセキュリティグループをすべてのIPアドレス範囲で許可して、解決したあとに設定変更したことを忘れてしまう。というのは初心者が起こしてしまいがちなパターンなように思います。 意図せず解放してしまっているケースのときに、この機能が役立ちそうですね。とはいえ、料金はやや気になります。

参考資料