この記事について
AWS Security Hubを実際のプロジェクトに導入して、AWSのセキュリティ周りのあれこれがとても便利に/快適になったので、そのことについて共有します!
この記事に書く内容
- AWS Security Hubとは
- 実際にAWS Security Hubを導入してよかったこと
- AWS Security Hubを利用すべきケース
この記事の対象読者
- AWS Security Hubについて知らない人/知りたい人
- AWS Security Hubの利用を検討している人
AWS Security Hubとは
まずAWS Security Hubを一言で表すと
AWSや3rd-Party製のセキュリティ関連データを統合管理することができるサービスです!
AWSには以下のようなセキュリティに関連するサービスがいくつもあります。
- Amazon GuardDuty : 脅威検知サービス
- Amazon Inspector : 脆弱性管理サービス
- AWS Config : リソース管理/コンプライアンスチェックサービス
これらのサービスを単独で利用する場合、マネージメントコンソールから各サービスの画面に移動して、管理する必要があります。
もしAWSアカウントにてGuardDutyとInspectorを利用している場合、脆弱性を検出して確認する際はInspectorの画面に移動して、不正アクティビティを検出して確認する際はGuardDutyの画面に移動するというような運用になります。これだと機能ごとに画面を切り替えるのが少し面倒です。。。
セキュリティサービスの多くはリージョナルサービスです。そのためサービスを切り替えるだけでなく、リージョンの切り替えも発生します。
またAWSアカウントを複数管理しているケースも多いかと思います。そういった場合はAWSアカウントの切り替えも必要になります。
管理の対象が多くなればなるほど、面倒になっていきます。。
この問題を解決するのがSecurity Hubです!
Security Hubを利用すれば、アカウント/リージョン/種類の異なるセキュリティサービスを1つのSecurity Hubの画面にて統合的に管理することができます!
またAWSだけでなく3rd partyのセキュリティツールにも対応しているため、より広い範囲での統合管理が可能です!
料金もかなり安く、手軽に利用することが可能です!
実際にAWS Security Hubを導入してよかったこと
それでは私が実際にプロジェクトにおいて、Security Hubを導入してよかったことを紹介してきます!
プロジェクトの特徴をまとめます。
- 利用するのは単一のAWSアカウント
- 以下のセキュリティサービスを利用
- Amazon GuardDuty : 不正アクティビティの検出/通知を行うため
- AWS Config : コンプライアンスチェックの実施を行うため
- 3rd partyのセキュリティツールとしてCloud Storage Security Antivirus for Amazon S3というS3スキャンツールを利用
よかったこと① : GuardDutyのリージョン統合がシンプルになった
GuardDutyはAWSアカウント上にて不正なアクティビティを検出して、それを通知することができます。
GuardDutyは利用するリージョン全てにおいて有効化することが推奨されています。
GuardDuty は、サポートされているすべての AWS リージョン で有効にすることをお勧めします。
https://rdocs.aws.amazon.com/ja_jp/guardduty/latest/ug/guardduty_regions.html
有効化自体はすぐに行えるのですが、通知するための実装が大変です。
各リージョンにてEventBridgeルールを設定して、集約するリージョンのEventBridgeイベントバスに通知を集めます。(下の図だと東京リージョンに通知を集めています。)
そして東京リージョンにてEventBridgeルールを設定して、SNS/chatbotを経由してslackへの通知を行っています。
つまり
- 各リージョンでのGuardDutyの有効化
- 各リージョンでのEventBridgeルールの設定
- 集約リージョンでのEventBridgeルールの設定
- chatbot/SNSの実装
を行う必要がありました。。。
しかしSecurity Hubを導入した場合、これが大幅に簡素化されます!
Security Hubにはクロスリージョン集約機能というものがあります。
クロスリージョン集約機能を有効化するだけで、複数リージョンのSecurity Hubの検出結果を1つのリージョンに集約することができます。
この機能を使うと、各リージョンにてEventBridgeルールを設定する必要がなくなります。
以下を行うことで、同様のことができるようになります!
- 各リージョンでのGuardDuty/Security Hubの有効化
- 集約リージョンにてSecurity Hubのクロスリージョン集約を有効化
- 集約リージョンでのEventBridgeルールの設定
- chatbot/SNSの実装
各リージョンにてEventBridgeルールの設定をしなくて済むため、構成がシンプルになり、実装が簡単になりました!
よかったこと② : セキュリティ周りの通知実装がシンプルになった
今回プロジェクトにおいてセキュリティ周りの通知は以下の3つがあります。
- GuardDuty : 不正なアクティビティを検出して通知
- Config : コンプライアンスチェックを行い、準拠していないリソースがあれば通知
- (3rd party) Cloud Storage Security Antivirus for Amazon S3 : S3にファイルがアップロードされたらウィルススキャンを行い、ウィルスを検出したら通知
それぞれ通知できるように実装する必要があります。
AWSのセキュリティサービスではEventBridgeと連携できるのですが、EventBridgeのパートナーではない3rd Partyツールは一度SNSを経由してEventBridgeと連携する必要があります。Cloud Storage Security Antivirus for Amazon S3はEventBridgeと連携できないため、SNSを経由してEventBridgeと連携します。
SecurityHubを利用するならば、一度SecurityHubに検出結果を集約することで、通知の実装がシンプルになります!
さらにSecurity HubにはASFFというSecurity Hubで管理できるデータフォーマットがあります!Security Hubと統合可能な3rd Partyのツール(今回の場合はCloud Storage Security Antivirus for Amazon S3 )も検出結果がASFFに変換されます。そのためEventBridgeでのルール定義がシンプルになります!
AWS Security Hubを利用すべきケース
以下のケースにおいては、Security Hubを利用するべきだと思います!
- GuardDutyを利用する場合
- 複数のセキュリティサービス(AWSおよびSecurityHubと連携可能なサービス)を利用する場合
- 複数のAWSアカウントを管理しており、セキュリティサービスを1つ以上利用する場合
最後
何となくSecurity Hubがどういうものか、利用したらどういうメリットがあるか理解いただけましたか!?
SecurityHubは安価に利用できるサービスです!もし「利用すべきケース」に1つでも該当したら、積極的に活用してきましょう!