こんにちは。AWS CLIが好きな福島です。
いきなりですが、Security Hubは、AWSのセキュリティ関連のサービスのアラートや検知した情報を集約、整理、優先順位付けて一元管理できるサービスとなっていますが、 Config Rulesの実行結果については、標準ではSecurity Hubで一元管理できません。
そのため今回は、独自に作成したConfig RulesをSecurity Hubに連携する方法をAWSのブログを参考に実施しました。
実際には、AWSから提供されているCFnテンプレートを流すだけなのですが、 東京リージョン(バージニア北部以外)では、ひと手間かかったため、 その内容をブログに記載いたします。 ※今回記載している内容は、試行錯誤し実施した内容のため、上記ブログに記載はございません。
ちなみにですが、独自に作成したConfig Rulesと書いているのは、 Security Hubのセキュリティ基準を有効にすると裏では、 頭に「securityhub-」と付与されたConfig Rulesが複数作成され、 その検出結果がSecurity Hubの検出結果の基となっています。
そのため、上記Config Rulesと区別するため、独自に作成したConfig Rulesと記載しております。
また、Security Hubの設定方法については、以下のブログを参照いただけますと幸いです。
https://blog.serverworks.co.jp/tech/2020/07/07/security_hub/
構成
今回の構成は、以下の通りとなります。 ※AWSのブログから抜粋。
この構成のCloudWatch EventおよびLambdaの実装は、 AWSから提供されているCFnテンプレートから提供されています。
ポイント
- Config Rulesのコンプライアンスチェックの変更をトリガーにLambdaが実行されるため、独自のConfig Rulesごとに追加設定等は必要ありません。
- 連携したConfig Ruleは、Security Hubの「タイトル」に「ConfigRule名」を入力すれば検索結果をフィルターできます。
やってみた
その前に
まず、LambdaのサンプルコードをAWSが提供しているのですが、 バージニア北部リージョン以外で実施すると以下のエラーが出力されます。 ※確認したのは、東京リージョンのみです。
エラーは、Lambdaのサンプルコードはバージニア北部にあるS3バケットに保存しているため、 バージニア北部リージョンからCFnを実施してくださいという内容でした。
ということで、東京リージョンでCFnを実施できないか、調査したところ、 以下の内容で実装できたので、その内容をご紹介いたします。
事前準備①(コードのダウンロード)
まず、Lambdaのサンプルコードをダウンロードします。
https://awsiammedia.s3.amazonaws.com/public/sample/ImportConfigRulesFindingsSecHub/config-cwe-sh.zip
ダウンロードしたconfig-cwe-sh.zipを東京リージョンにある任意のS3バケットにアップロードします。
事前準備②(テンプレートの編集)
テンプレートをダウンロードします。
40,41行目をサンプルコードをアップロードしたS3バケットおよびS3キーに変更します。
- 変更前
S3Bucket: 'awsiammedia' S3Key: 'public/sample/ImportConfigRulesFindingsSecHub/config-cwe-sh.zip'
- 変更例
S3Bucket: 'security-hub-config-rules-sh_20200211' S3Key: 'config-cwe-sh.zip'
事前準備はこれでOKです。
CFnテンプレートの展開①
CloudFormationのコンソールに移動し、事前準備したテンプレートを選択します。
CFnテンプレートの展開②
後は、特に設定を変更することなく、次へ次へでスタックを作成します。
無事にスタックの作成ができました!
作成したリソースについて
CloudWatchEvent
Lambda
動作確認
Config Ruleの作成
ルールの追加をクリック
desired-instance-typeを選択し、次へ
t2.microと入力し、次へ
ルール内容を確認し、「ルールを追加」をクリック
Security Hubの確認
検索でタイトル、desired-instance-typeと入力します。
Config Rulesの結果が表示されることが分かります。
※もしEC2インスタンスが1台もない場合、結果が出力されないため、EC2インスタンスを作成する必要があります。
おわりに
今回は、Security Hubに独自に作成したConfig Rulesを連携する方法をご紹介いたしました。 どなたかのお役に立てれば幸いです。