Systems Manager と Config Rule で不許可のアプリケーションがインストールされた EC2 を強制停止するをやってみた!

AWS Summit 2019 や AWS Innovate 2020 で紹介されている SSM Inventory と Config Rule を利用したアプリケーション統制の仕組みをやってみます!
2020.03.24

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

園部です。

今日は 「 許可していないアプリケーションを勝手にインストールしている EC2 を見つけて、強制的に停止する 」 という心地よいガバナンスを AWS Systems Manager Inventory(以降、SSM Inventory) と AWS Config(以降、Config)でやってみます。

仕組み

  • SSM Inventory を活用して構成情報を収集します。
  • Config Managed Rule の一つである ec2-managedinstance-inventory-blacklisted を活用して許可していないアプリケーションがインストールされた EC2 を検出します。
  • Config 自動修正 と SSM Automation で該当インスタンスを停止します。

※ 今回は通知部分が実施しませんが、実際に利用する場合は管理者と利用者が確認できるような通知を行うことをお勧めします。管理者での発見・把握はもちろんのこと、利用者側も EC2 が停止した利用がわからなければ理解が進みませんし、問い合わせて初めて知るのでは心証はよくないでしょう。

引用元: AWS Summit 2019 AWS Systems Manager 徹底活⽤ 〜エンタープライズのユースケースから〜

やってみた

SSM Inventory 設定

今回、この部分は本記事内では流れだけの記載とさせていただきます。知りたい!という方は是非、現在実施中の AWS Innovate で実施されているハンズオン(H-2)に参加してみてください!

  • 今回は Amazon Linux2 を2台起動
  • ssm-agent と 適切な IAM ロールを EC2 に設定
  • セットアップインベントリ よりインベントリ収集を開始

  • 1台のみ vsftpd をインストール ( vsftp に問題があるということではなく事例として取り上げています。)

vsftpd がインストールされた EC2 (後に停止される EC2)

vsftpd がインストールされていない EC2

Config ルール作成

ルール >>> ルールを追加 >>> ec2-managedinstance-applications-blacklisted を選択

デフォルトのまま

以下の項目を入力します

  • applicationNames : Blacklist にするアプリケーション名( SSM Inventory 「名前」 列に相当)
  • platformType : Linux OR Windows( SSM マネージドインスタンス 「プラットフォーム」 列に相当)

こちらでは、修復アクションと IAM ロールを設定します。自動修復については以前記載した記事をご参考いただければと思います。

保存 を選択

結果確認

保存すると初回評価が実行されます。

想定通り、vsftpd がインストールされている EC2 が検出され、自動修復(EC2 停止)が実行されました。

EC2 が停止していることが確認できます。

さいごに

以前から、やってみようと思っていた SSM Inventory を Config で活用する仕組みを実施してみました。 設定も比較的簡単に行うことができます。 SSM Inventory の活用による構成管理は AWS Summit や AWS Innovate、 Blackbelt でも取り上げられています。一度設定をしておくことで必要な際に、スムーズに情報を確認することができるのでお勧めです。 EOL 対策や脆弱性対応の中で、該当する EC2 を抽出するなどのケースでは活躍すると思いますので、是非 一度試して欲しいサービスです。