この記事について

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には以下のようなセキュリティに関連するサービスがいくつもあります。

これらのサービスを単独で利用する場合、マネージメントコンソールから各サービスの画面に移動して、管理する必要があります。

もし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つでも該当したら、積極的に活用してきましょう!