[アップデート]GuardDuty EKS Runtime Monitoring でエージェントを自動インストールするクラスターを選択できるようになりました

EKS Runtime Monitoring を利用する際、コンテナランタイムの挙動を確認するために専用エージェント (guardduty-agent) を EKS にインストールする必要があります。
この際、手動で個別にインストールするか GuardDuty agent management を有効化して特定のアカウントとリージョンに含まれるすべての EKS クラスターを対象に自動インストールするかを選ぶことができます。

今回のアップデートにより、 GuardDuty agent management を有効化した場合でもエージェントをインストールする対象クラスターをタグで選択可能になりました。

やってみた

GuardDuty agent management を有効化した環境でタグのみ異なる 3 つのクラスターを立ち上げてみます。
guardduty-agent をインストールするかどうかは GuardDutyManaged タグで決まるので、今回は下記 3 つのクラスターを作成します。

  • test-eks(GuardDutyManaged=true)
  • test-eks-2(GuardDutyManaged=false)
  • test-eks-3(タグ設定無し)

例)test-eks の場合

この場合、test-eks と test-eks-3 に guardduty-agent がインストールされてモニタリングが始まりました。

GuardDuty agent management を有効化している場合は GuardDutyManaged=true もしくは GuardDutyManaged タグが無い状態でエージェントを自動インストールできるようです。
ここで GuardDutyManaged タグの有無によって変わるのは、エージェントを自動で管理するかであることに注意が必要です。
先ほどのクラスターについて、test-eks-2(GuardDutyManaged=false) を true に変更してみます。
また、同時に test-eks-3(タグ設定無し) について GuardDutyManaged=false のタグを付与しました。
すると、test-eks-2 はエージェント自動管理の対象に、test-eks-3 はエージェント自動管理の対象外に変わります。

しかし、この変更と実際にエージェントがインストールされてモニタリングの対象になるかは関係が無いです。
モニタリングの対象になる条件は GuardDuty EKS Runtime Monitoring が有効かつ、有効なエージェントがインストールされていることだからです。
test-eks-3 について GuardDutyManaged=false タグがついているにも関わらず、今もモニタリングの対象です。(この状態でクラスター内でいろいろと操作を行うと検知されました。)
これは、自動管理の対象外になっただけでインストール済みのエージェントはアンインストールされないからです。
※ クラスター単位で設定可能になっただけで以前から存在した下記挙動と同様になります。

GuardDuty がエージェントを自動的に管理するように設定していて、ここでこのオプションを選択解除した場合、GuardDuty は GuardDuty セキュリティエージェントを削除しません。
EKS Runtime Monitoring の設定

逆に test-2 のように GuardDutyManaged = false で構築したクラスターを GuardDutyManaged = true に変更すると、Agent management type が Auto-managed になってエージェントがインストールされます。
つまり、GuardDutyManaged = true であれば監視対象になりますが、GuardDutyManaged = false だから監視対象ではないとは限らないです。
この辺りが気になる場合は下記記事の手順で手動インストールした方が良いと思いました。
Terraform 等からアドオンとして管理可能です。

ただ、アップデートが面倒なアドオン周りを自動で全て管理してもらえるのはやはり便利です。

また、GuardDuty は必要に応じて既存のセキュリティエージェントを更新します。 EKS Runtime Monitoring の設定

上記を踏まえて GuardDuty agent management を有効化する際は、今回のアップデートでかなり使いやすくなったのではないかと思います。

まとめ

GuardDuty EKS Runtime Monitoring がまた一つ使いやすくなりました。
一つのアカウント内で特定クラスターのみを監視したい場合は是非参考にしていただけると幸いです。