Security HubとTrusted Advisorを比較してみた

## はじめに
「AWSの社内標準CSPM(※)ツールとしてどのAWSサービスを案内すべきか。無料のTrusted Advisorは充足しないのか。」という主旨のお問い合わせのご対応で、Security HubとTrusted Advisorの「セキュリティチェック」の機能比較をおこなう機会がありました。
ニッチなのか意外と記事を見つけられなかったので、当時(2023年)の調査結果を現時点の情報で最新化しながら書き記しておきたいと思います。

※CSPM=Cloud Security Posture Management。クラウドセキュリティの状態管理のソリューションの総称であり、クラウドサービスの設定値にセキュリティポリシーやベストプラクティスからの逸脱がないかチェックする機能を持つ。

## Security Hubとは
AWS内のセキュリティの状態と、セキュリティ基準およびベストプラクティスに準拠しているかどうかを、包括的に把握できるサービスです。
- セキュリティ基準を用いたAWS環境の自動チェック
    - AWS基礎セキュリティベストプラクティス、CIS Benchmarkなどのチェック項目群と各リソースの設定状況を比較してPassed/Failed判定をおこなう<br>[参考: Security Hub 標準のリファレンス](https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/standards-reference.html)
- 様々なセキュリティサービスのチェック結果の統合ダッシュボード
    - Amazon GuardDuty、InspectorなどのAWSサービスや3rd partyのセキュリティサービスをまとめて可視化する<br>[参考: AWS のサービス と AWS Security Hub との統合](https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/securityhub-internal-providers.html)
    - 複数リージョン・アカウントの結果をまとめて可視化する<br>[参考: クロスリージョン集約](https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/finding-aggregation.html),[管理者アカウントおよびメンバーアカウントの管理](https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/securityhub-accounts.html)

## Trusted Advisorとは
「コスト最適化」、「パフォーマンス」、「セキュリティ」、「耐障害性」、「サービス制限」「運用上の優秀性」の6つの観点から、利用者のAWS環境をAWSが自動で精査し、推奨設定のお知らせをしてくれるサービスです。
- ベストプラクティスを用いた全リージョン無償自動チェック<br>[参考: AWS Trusted Advisor チェックリファレンス](https://docs.aws.amazon.com/ja_jp/awssupport/latest/user/trusted-advisor-check-reference.html)
- Security Hub AWS基礎ベストプラクティス(耐障害性除く)チェック結果の統合<br>[参考: AWS Security Hub のコントロールを AWS Trusted Advisor で表示する](https://docs.aws.amazon.com/ja_jp/awssupport/latest/user/security-hub-controls-with-trusted-advisor.html)

## セキュリティチェック利用の観点でのサービス比較
2024年3月時点の比較表です。注意すべき差異は太字で強調しています。
| 比較対象 | Security Hub | Trusted Advisor |
| --- | --- | --- |
| 主な用途 | 設定値チェック(主にセキュリティ) 、複数サービス統合ダッシュボード | 設定値チェック（セキュリティ含む6カテゴリ） |
| サービス種別 | リージョナルサービス | グローバルサービス |
| コスト | **有償** | 無償 |
| サービス利用開始処理 | **要**<br>（Security Hub有効化に加え、チェック開始にはAWS Config、セキュリティ基準の有効化が必要） | 不要<br>（自動的にチェック開始） |
| サポートプランによる機能制限 | 特になし | デベロッパープラン以下では下記の**機能制限あり**<br>　•Trusted Advisor標準のチェック項目が限定的(「セキュリティ関連チェック項目数」参照）<br>　•他サービス統合表示不可(「サービス統合表示」参照)<br>　•他アカウント統合表示不可(「アカウント統合表示」参照)<br>　•EventBridgeのTrusted Advisor項目ステータス更新イベント作成不可(「検出通知」参照)<br>　•CLIコマンド利用不可(「検出結果エクスポート」参照) |
| 検出抑制 | リソースの「抑制」や項目の「無効」処理が可能 | リソース単位での「非表示」処理によって抑制可能 |
| サービス統合表示 | GuardDuty、Inspector等多岐<br>[参考: AWS のサービス と AWS Security Hub との統合](https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/securityhub-internal-providers.html) | なし（**ビジネスプラン以上**のみ[Security Hub](https://docs.aws.amazon.com/ja_jp/awssupport/latest/user/security-hub-controls-with-trusted-advisor.html)、[Compute Optimizer](https://docs.aws.amazon.com/ja_jp/awssupport/latest/user/compute-optimizer-with-trusted-advisor.html)統合表示可） |
| アカウント統合表示 | •OrganizationsまたはSecurity Hubの招待機能にて可能<br>•Organizations管理アカウント以外へのSecurity Hub管理委任可能<br>[参考: 管理者アカウントおよびメンバーアカウントの管理](https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/securityhub-accounts.html) | •Organizations管理アカウントのTrusted Advisor組織ビューにて可能（Organizations利用および管理アカウントの**ビジネスプラン以上**が前提）<br>•Organizations管理アカウント以外へのTrusted Advisor**管理委任は不可**<br>[参考: AWS Trusted Advisor の組織ビュー](https://docs.aws.amazon.com/ja_jp/awssupport/latest/user/organizational-view.html) |
| リージョン統合表示 | リージョン集約機能にて可能<br>[参考: クロスリージョン集約](https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/finding-aggregation.html) | グローバルサービスのためデフォルトでリージョン集約可 |
| 検出通知 | EventBridge、SNSで実装可能（Security Hub有効化リージョン利用）<br>通知設定したアカウントに統合されている検出内容をまとめて通知可能<br>[参考: 自動的に送信される結果の EventBridge ルールの設定](https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/securityhub-cwe-all-findings.html) | •**ビジネスプラン以上**のみのEventBridge、SNSで実装可能（バージニア利用）<br>[参考: Amazon EventBridge を使用した AWS Trusted Advisor チェック結果のモニタリング](https://docs.aws.amazon.com/ja_jp/awssupport/latest/user/cloudwatch-events-ta.html)<br>•無償の週次レポーティング機能あり<br>[参考: 通知設定の設定](https://docs.aws.amazon.com/ja_jp/awssupport/latest/user/get-started-with-aws-trusted-advisor.html#preferences-trusted-advisor-console)<br>ただしいずれも**通知設定したアカウント以外の検出内容は通知されない** |
| 検出結果エクスポート | •CSVダウンロード<br>(チェック対象リソースなどの詳細は**チェック項目ごとにダウンロードが必要**)<br>[参考: コントロールリストのダウンロード](https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/securityhub-standards-view-controls.html#standard-details-download-controls)<br>•CLI<br>[参考: get-findings](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/securityhub/get-findings.html) | •Excelダウンロード<br>(チェック項目ごとにシートが分かれるため、チェック項目ステータスを一覧化したい際は**加工が必要**)<br>[参考: 結果のダウンロード](https://docs.aws.amazon.com/ja_jp/awssupport/latest/user/get-started-with-aws-trusted-advisor.html#download-check-results)<br>•CLI<br>(**ビジネスプラン以上**のみ可かつ**コマンド組み合わせ必要**)<br>[参考： AWS-CLIでTrusted Advisorのステータスを見たい](https://dev.classmethod.jp/articles/trusted-advisor-aws-cli/) |
| チェック項目カテゴリ | AWS基礎セキュリティベストプラクティス (FSBP)の場合、5つの大カテゴリ 検出・識別・保護・応答・復旧<br>[参考: コントロールのカテゴリ](https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/control-categories.html)<br>「復旧＞耐障害性」以外はTrusted Advisorセキュリティカテゴリ連携対象となっているため、概ねセキュリティ関連の項目とみなせる<br>[参考: AWS Security Hub のコントロールを AWS Trusted Advisor で表示する](https://docs.aws.amazon.com/ja_jp/awssupport/latest/user/security-hub-controls-with-trusted-advisor.html) | 6つのカテゴリ<br>　•コスト最適化（デベロッパープラン以下は不可）<br>　•パフォーマンス（デベロッパープラン以下は不可）<br>　•耐障害性（デベロッパープラン以下は不可）<br>　•**セキュリティ（デベロッパープラン以下は一部可）**<br>　•サービス制限（全サポートプラン可）<br>　•運用上の優秀性（デベロッパープラン以下は不可）<br>[参考: AWS Trusted Advisor チェックリファレンス](https://docs.aws.amazon.com/ja_jp/awssupport/latest/user/trusted-advisor-check-reference.html) |
| チェック項目識別子 | コントロールID<br>（Trusted Advisorに統合されるとチェックIDもアサインされることがTrusted AdvisorのCLIで確認可能） | チェックID |
| セキュリティ関連チェック項目数 | AWS基礎セキュリティベストプラクティス (FSBP)の場合、248項目（過去情報:2023年3月時点198項目、2022年8月時点134項目)<br>[参考: AWS Foundational Security Best Practices (FSBP) 標準](https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/fsbp-standard.html) | デベロッパープラン以下：**6項目**（過去情報:2023年3月・2022年8月時点6項目)<br>ビジネスプラン以上：上記6項目を含んで**30項目**（過去情報:2023年3月・2022年8月時点20項目)<br>[参考: セキュリティ](https://docs.aws.amazon.com/ja_jp/awssupport/latest/user/security-checks.html)　 |


## おわりに
初期設定不要・無償という手軽さの面ではTrusted Advisorにメリット有ですが、そもそもセキュリティに特化したサービスではないことから、サポートプランによってチェック機能、アカウント統合機能、検出通知機能が大きく制限されるデメリットがあり、セキュリティチェックツールとしてはやはりSecurity Hubに軍配が上がります。

また、ビジネスプラン以上のサポートを保有しTrusted Advisorのフル機能（Security Hubのチェック結果取込含む）が利用可能になっている状況においても、管理委任不可・通知集約不可といったアカウント統合機能の自由度の低さがネックになるため、CSPM運用を考える際にはマルチアカウント管理をおこないやすいSecurity Hubをメイン利用していくことが第一選択肢となりそうです。
ご覧くださった方にとって少しでもご参考になれば幸いです。