【Security Hub】独自に作成したConfig Rulesの連携方法について

記事タイトルとURLをコピーする

こんにちは。AWS CLIが好きな福島です。

いきなりですが、Security Hubは、AWSのセキュリティ関連のサービスのアラートや検知した情報を集約、整理、優先順位付けて一元管理できるサービスとなっていますが、 Config Rulesの実行結果については、標準ではSecurity Hubで一元管理できません。

そのため今回は、独自に作成したConfig RulesをSecurity Hubに連携する方法をAWSのブログを参考に実施しました。

aws.amazon.com

実際には、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のブログから抜粋。

https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2019/12/15/Figure1.png

この構成のCloudWatch EventおよびLambdaの実装は、 AWSから提供されているCFnテンプレートから提供されています。

ポイント

  • Config Rulesのコンプライアンスチェックの変更をトリガーにLambdaが実行されるため、独自のConfig Rulesごとに追加設定等は必要ありません。
  • 連携したConfig Ruleは、Security Hubの「タイトル」に「ConfigRule名」を入力すれば検索結果をフィルターできます。

やってみた

その前に

まず、LambdaのサンプルコードをAWSが提供しているのですが、 バージニア北部リージョン以外で実施すると以下のエラーが出力されます。 ※確認したのは、東京リージョンのみです。

f:id:swx-fukushima:20210211070132p:plain

エラーは、Lambdaのサンプルコードはバージニア北部にあるS3バケットに保存しているため、 バージニア北部リージョンからCFnを実施してくださいという内容でした。

ということで、東京リージョンでCFnを実施できないか、調査したところ、 以下の内容で実装できたので、その内容をご紹介いたします。

事前準備①(コードのダウンロード)

まず、Lambdaのサンプルコードをダウンロードします。

https://awsiammedia.s3.amazonaws.com/public/sample/ImportConfigRulesFindingsSecHub/config-cwe-sh.zip

ダウンロードしたconfig-cwe-sh.zipを東京リージョンにある任意のS3バケットにアップロードします。

f:id:swx-fukushima:20210211070709p:plain

事前準備②(テンプレートの編集)

テンプレートをダウンロードします。

https://awsiammedia.s3.amazonaws.com/public/sample/ImportConfigRulesFindingsSecHub/cloudformation_template.yaml

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のコンソールに移動し、事前準備したテンプレートを選択します。

f:id:swx-fukushima:20210211071253p:plain

CFnテンプレートの展開②

後は、特に設定を変更することなく、次へ次へでスタックを作成します。

f:id:swx-fukushima:20210211064217p:plain

f:id:swx-fukushima:20210211064233p:plain

f:id:swx-fukushima:20210211064250p:plain

無事にスタックの作成ができました!

f:id:swx-fukushima:20210211071734p:plain

作成したリソースについて

CloudWatchEvent

f:id:swx-fukushima:20210211071856p:plain

Lambda

f:id:swx-fukushima:20210211071949p:plain

動作確認

Config Ruleの作成

ルールの追加をクリック

f:id:swx-fukushima:20210211075614p:plain

desired-instance-typeを選択し、次へ

f:id:swx-fukushima:20210211075826p:plain

t2.microと入力し、次へ

f:id:swx-fukushima:20210211075952p:plain

ルール内容を確認し、「ルールを追加」をクリック

f:id:swx-fukushima:20210211080057p:plain

Security Hubの確認

検索でタイトル、desired-instance-typeと入力します。

f:id:swx-fukushima:20210211082753p:plain

Config Rulesの結果が表示されることが分かります。
※もしEC2インスタンスが1台もない場合、結果が出力されないため、EC2インスタンスを作成する必要があります。

f:id:swx-fukushima:20210211082820p:plain

おわりに

今回は、Security Hubに独自に作成したConfig Rulesを連携する方法をご紹介いたしました。 どなたかのお役に立てれば幸いです。

福島 和弥 (記事一覧)

2019/10 入社

AWS CLIが好きです。