AWS Security Hub の 3 つのステータスについて
AWS Security Hub を使い始めたのだが、ステータスにあたるパラメータが多く混乱したので整理しておく。用語と概念 も参考になる。
Compliance.Status
純粋にチェックに合格しているか否かを示し、ステータスは PASSED (合格) 、FAILED (不合格) 、WARNING (合否不明)、NOT_AVAILABLE (チェック失敗) のステータスがある。大抵は PASSED か FAILED になる。
Workflow.Status
各レコードについての追跡状況を示していて、ユーザが状況に応じて変更できるステータス。ステータスは 4 種類あり、NEW は新たに検出された状態、NOTIFIED は担当者に通知した状態、SUPPRESSED は検出を意図的に抑制した状態、RESOLVED は解決した状態を示す (自由に変えられるので運用方法は利用者に任せられる)。検出対象のリソース自体を修正しても RESOLVED にならないことがあるので、リソースの修正が完了したら手動で RESOLVED したほうがよい。
Compliance.Status では FAILED になってしまうが運用において必要な設定であり、合否チェックの対象から外したい、といったような場合には SUPPRESSED を設定すればよい。
RecordState
各レコードがアクティブかアーカイブであるかを示す。ステータスはチェック対象を示す ACTIVE か ARCHIVED のみ。検出されたタイミングでは ACTIVE だが、リソースが削除された場合などに ARCHIVED へ変更される。タイミングは特に決まっていないようだ。
補足
運用上チェックしなくてもいい場合には、コントロール (EC2.8 など、チェックの種類) を無効にすることがあるだろう。しかし、コントロールを無効にしても、その時点で既に検出されていた項目の Compliance.Status が FAILED だと、不合格判定のまま残り続けてしまうので、Workflow.Status で適宜 SUPPRESSED などに設定したほうがよい。