Security Hub コントロールを無効化したら意図せずTrsuted Advisorの項目も無効化された

# はじめに
AWSを利用している皆様は Security Hub をしっかり利用されているでしょうか。
Security Hub を利用されている方でも Trusted Advisor をしっかり利用されているでしょうか。
（Trsuted Advisorは後述するように利用プランによる制限がありますが・・・）

これらのサービスはAWSのセキュリティの改善などに繋がるサービスですが、密接につながっている部分があります。

今回、 Security Hubの コントロールの棚卸しを実施し、不要と判断したコントロールを無効化したところ、意図せず Trusted Advisor の項目も無効化しまいました。
Security HubとTrsuted Advisorは同じConfigルールを使用していました。

備忘として今回の気づきをまとめます。

# 登場するサービスについて
詳細な説明は省略します。
200文字くらいでChatGPTにまとめてもらいました。

### AWS Security Hub
AWS Security Hubは、複数のAWSアカウントやサービス全体のセキュリティ状況を統合的に可視化し、管理するサービスです。業界ベストプラクティスや規制に基づいたセキュリティチェックを自動で実施し、検出結果をダッシュボードで一元管理します。Amazon GuardDuty、Amazon Inspectorなど他のセキュリティサービスと連携し、脅威を迅速に特定し対応を促進します。

### AWS Config
AWS Configは、AWSリソースの設定履歴を記録し、構成変更を追跡・評価するサービスです。リソースの現在の状態を可視化し、カスタムルールやAWS提供のマネージドルールを用いて設定のコンプライアンスを監視します。これにより、セキュリティや運用のベストプラクティスに基づいた管理を容易に実現できます。

### AWS Trusted Advisor
AWS Trusted Advisorは、AWS環境の最適化を支援するガイドツールです。コスト最適化、パフォーマンス向上、セキュリティ強化、耐障害性向上に役立つ推奨事項を提供します。AWSリソースの設定を分析し、ベストプラクティスに基づいた改善ポイントを提示することで、運用効率と安全性を高めます。

# 各サービスの関係
ここからは、上記のサービス同士の関係について記載します。

### Security Hub と Config
Security Hubを有効化する条件として「AWS Config を有効化する」があります。このことからもSecurity HubとConfigは密接に連携していることが伺えます。
というより、Security Hubの各項目（各コントロール）のセキュリティチェックはほとんどがマネージドな Configルール を用いてチェックされています。

[Enabling and configuring AWS Config for Security Hub](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-setup-prereqs.html)にも以下のように記されています。

> AWS Security Hub uses AWS Config rules to run security checks and generate findings for most controls. ( AWS Security Hub は、AWS Config ルールを使用してセキュリティチェックを実行し、ほとんどのコントロールの検出結果を生成します。)

> Some rules, called AWS Config managed rules, are predefined and developed by AWS Config. Other rules are AWS Config custom rules that Security Hub develops.(AWS Config マネージドルールと呼ばれる一部のルールは、AWS Config によって事前定義および開発されています。その他のルールは、Security Hub が開発する AWS Config カスタムルールです。)

### Trusted Advisor と Config と Security Hub
Trusted Advisorは「AWS環境の最適化支援サービス」という性質上、様々なAWSサービスと連携（統合）が用意されています。

![スクリーンショット 2025-01-20 15.01.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3328969/340e7559-5818-af59-68a3-43b03f9446ba.png)

統合されたサービスはTrusted Advisorコンソールの各項目のページのソースとして表示されます。
Trusted Advisor独自で情報を収集するものもあれば、上記のスクショのように複数のサービスで検出された情報等を活用し、各カテゴリごとに網羅的に表示することができます。

なお、AWS Config と Trusted Advisor を統合するには以下の条件がクリアされている必要があります。
Security Hubの利用にもConfigが有効になっている必要がありますが、それに加えて特定のサポートプランを利用している必要があります。

- AWS Config が有効になっていること
- 該当する AWS Configマネージドルールが有効であること
- 特定のサポートプランを利用していること
    - AWS ビジネスサポート
    - AWS Enterprise On-Ramp
    - AWS エンタープライズサポート

[AWS Trusted Advisor が AWS Config を利用した 64 の新しいチェックを追加](https://aws.amazon.com/jp/about-aws/whats-new/2023/10/aws-trusted-advisor-64-checks-aws-config/)

## Trusted Advisor の情報ソース
### それぞれのソースの表示
ここからは冒頭に記載した
>今回、 Security Hubの コントロールの棚卸しを実施し、不要と判断したコントロールを無効化したところ、意図せず Trusted Advisor の項目も無効化しまいました。
> Security HubとTrsuted Advisorは同じConfigルールを使用していました。

についてです。

Trsusted AdvisorではSecurity Hubを情報ソースとして使用しています。
![スクリーンショット 2025-01-24 13.54.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3328969/df5e05cd-6bf7-fd16-d0cb-6b5c5c91751d.png)

このように、どのコントロールを参照しているか確認できます。

また、Configも情報ソースとして使用しています。
![スクリーンショット 2025-01-27 17.42.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3328969/200d7277-ca60-69c6-ce9d-0d9309b3c92b.png)

同じように、どのConfigのマネージドルールを参照しているか確認できます。

### Seucurity Hubのソースとして扱わないけどSecurity Hubでも利用するConfigルール
では次に、以下のパターンをご紹介します。


Security Hubの[RDS.14 Amazon Aurora クラスターではバックトラックが有効になっている必要があります](https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/rds-controls.html#rds-14)というコントロールがあります。


このコントロールは裏では `aurora-mysql-backtracking-enabled` というConfigルールを使用しています。上記のリンクのドキュメントにも記載されています。
![スクリーンショット 2025-01-27 17.47.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3328969/133a0117-731d-df5d-84c0-8994ecefcfdf.png)


そして、この Configuルールは Trsusted Advisorでも利用されており、耐障害性のカテゴリに表示されます。
ソースはConfigとして表示されています。
![スクリーンショット 2025-01-27 17.43.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3328969/3207523f-eac8-aeb1-41bc-e8fddb67cb72.png)


何が言いたいかというと、

:::note warn
Security Hubのコントロールに使用されていてもTrsusted Advisor上ではConfigとして扱われるケースがある（Security Hubのソースとしては扱われない）
:::

ということです。

上記で紹介した [ECR.1 ECRプライベートリポジトリでは、イメージスキャンを設定する必要があります](https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/ecr-controls.html#ecr-1)も、ページを確認すると Configルールの `ecr-private-image-scanning-enabled` を使用しています。

ECR.1ではTrsusted Advisor上ではソースがSecurity Hubとして扱われています。
RDS.14ではソースがConfigとして扱われています。

上記の2つのルールはどちらもConfigルールを使っているのですが、ソースがSecurity Hubなのか、Configになるのか、この違いがドキュメントでは見つけることができませんでした。

### 困ること

例えば以下のような目的でSecurity HubとTrsuted Advisorを運用したとします。

- Security HubのスコアをKPIとしており、不要な項目を無効化したい
- Trusted AdvisorはAWSの最適化を目指す目的で、基本的に全項目を確認したい

この場合、今回例にあげた ECR.1 と RDS.14 を無効化したいとなった場合、Trsuted AdvisorでSecurity Hubのソースを確認します。
結果、ECR.1は Trsuted Advisor の Security Hubソースとして利用しているのでこの背景も加味して無効化の可否を検討することができます。


RDS.14 は Security Hubソースとしては確認できません。（RDS.14で使用しているConfigルールを確認し、 Trsuted Advisor の Configソースから確認する必要があります。）
これに気付けないと、意図せず Trsuted Advisorの項目を無効化してしまいます。

以上が本記事でお伝えしたかった内容です。

ここまで厳密に考慮する必要があるケースは稀かと思いますが、意図せず Trsuted Advisor の項目を無効化してしまう、というリスクがあるのだなあという学びがありました。
（正直、ややこしいのでもう少し Trsuted AdvisorのソースとConfigルールの関係が把握しやすくなればいいなあと思いました。）