🐴

Quick SightでSecurty Hubの可視化に挑戦

2024/08/11に公開

はじめに

マルチアカウントで運用しているAWS Securty Hubの情報をダッシュボードで一括管理したいと思っています。New Relicを使うと綺麗にダッシュボード化できるようですが、New Relic自体のコストが高いので悩んでいます。
Quick Sightであれば、コストが低く抑えられそうだったため、可能性を探るべく簡単なダッシュボードを作ってみました。

準備

作成したリソースは

  • Amazon S3
  • Amazon QuickSight
    の2つのみです。

この記事をかなり参考にさせていただきました↓
https://qiita.com/RuyPKG/items/c32282fe57c33346a534

私の場合、S3に対して行った準備は以下になります。
①securityhub-to-quicksightというバケットを作成
②バケット内にQuickSightへ読み込ませたいCSVファイルを配置
③バケット内にCSVファイルの情報を記載したjsonを配置

test.csv
"ID","タイトル","コントロールステータス","重要度","不合格のチェック","不明なチェック","利用不可のチェック","合格したチェック","カスタムパラメータ"
"IAM.6","Hardware MFA should be enabled for the root user","失敗","重要","1","0","0","0","UNSUPPORTED"
"ECR.1","ECR private repositories should have image scanning configured","失敗","高","7","0","0","2","UNSUPPORTED"
"CloudTrail.1","CloudTrail should be enabled and configured with at least one multi-Region trail that includes read and write management events","失敗","高","1","0","0","0","UNSUPPORTED"
"GuardDuty.1","GuardDuty should be enabled","失敗","高","1","0","0","0","UNSUPPORTED"
"Inspector.1","Amazon Inspector EC2 scanning should be enabled","失敗","高","1","0","0","0","UNSUPPORTED"
"EC2.10","Amazon EC2 should be configured to use VPC endpoints that are created for the Amazon EC2 service","失敗","中","4","0","0","0","UNSUPPORTED"
"IAM.5","MFA should be enabled for all IAM users that have a console password","失敗","中","4","0","0","0","UNSUPPORTED"
"IAM.3","IAM users' access keys should be rotated every 90 days or less","失敗","中","2","0","0","3","UNSUPPORTED"
manifest.json
{
    "fileLocations": [
        {
            "URIs": [
                "https://securityhub-to-quicksight.s3.ap-northeast-1.amazonaws.com/test.csv"
            ]
        }
    ],
    "globalUploadSettings": {
        "format": "CSV",
        "delimiter": ",",
        "containsHeader": "true"
    }
}

その後、QuickSightへログインして、「新しい分析」->「新しいデータセット」->「S3」のように選んでいくと、先ほど設定したS3の情報を入力するように指示があります。

これらを設定するとデータをインポートしてくれるので準備は完了です。その後、自分の欲しいデータに合わせてダッシュボードを作成していきます。

注)初めてQuickSightを使用する場合は、アカウントの登録が求められます。

アウトプット

最終的にこのようなダッシュボードができました。結構良い感じかなとは思います。初めての操作に戸惑って20分程度はかかりましたが、直感的なUIではあるので、触りながら少しずつ慣れることができました。

簡単に作ってみるだけであればそこまで難しくはなかったですが、これを運用で使っていくとなると更新のしやすさが気になります。もう少し調べていきます。

<気になること>
・更新のしやすさ(できれば即時で反映できる仕組みにしたい。EventBridgeとの連携?)
・時系列で管理できるか(先週と今週の比較のような)
・AthenaやGlueを使うとより細かなダッシュボードができそう

Discussion