[小ネタ]定期実行されるAWS Security Hub コントロールのチェック周期を確認してみた
こんにちは、AWS事業本部@福岡オフィスのべこみん(@beco_minn)です。
皆さんは普段AWS Security Hub(以下Security Hub)を利用していますか?もちろんしていますよね。
そんなSecurity Hubの主機能として、標準とそれに準ずるコントロールによりAWS環境のセキュリティチェックがあります。私も普段お世話になっています。
このセキュリティチェックですが、コントロールに応じてチェックのタイミングは以下2種類に分けられます。
- 定期的なチェック
- 一定の周期で実行される
- 変更トリガーによるチェック
- 対象のリソースの状態が変化したときに実行される
このうち、定期的なチェックは「最後の実行から12時間または24時間以内に自動的に実行される」という仕様になっていますが、具体的にどのコントロールが24時間なのか12時間なのかはどのドキュメントにも記載されていません。(2024年5月28日 記事執筆時点)
詳細は以下をご参照ください。
小ネタですが、本記事ではそんな各コントロールのチェック周期を確認する方法をご紹介します。
最初に結論
- Security Hubのコントロールは裏でAWS Configのルールが動いている
- なので、
aws configservice describe-config-rules
で周期タイミングを確認可能ConfigRules[].MaximumExecutionFrequency
の値が周期を示す
- これらのルールはSecurity Hubの標準有効化時に作成されるので、有効化時のCloudTrail ログでも確認可能
そもそもSecurity Hubの裏ではAWS Configが動いている
ご存じの方も多いかと思いますが、Security HubのセキュリティチェックではAWS Configのルールが利用されています。
これらのConfigルールはSecurity Hubによって作成、管理されるため、サービスリンクルールと呼ばれます。
詳細は以下をご参照ください。
AWS ConfigのAPI経由で周期を確認してみる
AWS Configのチェック周期(最大実行頻度)は MaximumExecutionFrequency
というパラメータで指定されます。
デフォルトでは24時間ごととなるようで、12時間の他に6時間、3時間、1時間が指定可能なようです。
この値はAWS Configのルール作成時に設定される値のため、ルールの設定として保持されているはずです。それでは実際に確認しましょう。
Security Hubのコントロールから対象のConfigルールを確認する
Security Hubのコンソールより、確認したいコントロールの詳細画面を開きます。
「調査」の欄にある Configルール をクリックすると、紐付いているConfigルールへのリンクが表示されます。
必要なのは下図赤枠部のルール名です。ルール名は英数字のランダムな文字列がsuffixとして付与されています。
AWS CLIでConfigルールの設定内容を確認する
今回利用するAWS CLIコマンドは aws.confgservice の describe-config-rules
です。
CLIドキュメントはこちら
それでは実行します。今回の対象コントロールは IAM.3 です。
今回は結果が見やすいように --queryオプションを利用します。
[cloudshell-user@ip-10-134-4-187 ~]$ aws configservice describe-config-rules --config-rule-names securityhub-access-keys-rotated-d11e6a87 --query "ConfigRules[].[ConfigRuleName,MaximumExecutionFrequency]" [ [ "securityhub-access-keys-rotated-d11e6a87", "Twelve_Hours" ] ]
上記結果より、IAM.3 コントロールのチェックは12時間おきに行われていることが分かりました。
最後に
Security Hubの詳細な料金を確認したい時など、コントロールのチェック周期が気になった時に本ブログがお役に立てば幸いです。
以上、べこみんでした。