Microsoft Defender for Cloud を用いて、AWS 環境を CSPM で監視する

# 1. はじめに
Microsoft Defender for Cloud (以下 MDfC) の機能の一つに、マルチクラウド環境に対応しており、AWS / GCP を CSPM (Cloud Security Posture Management) 態勢管理を行い、構成情報についてベストプラクティスやレギュレーション規則に違反していないかどうか監視が行えるようになっています。本記事では、Microsoft Defender for Cloud 側から AWS アカウントに対して接続を行い、構成情報を監視する設定をご紹介します。

# 2. 何ができるのか
Azure [公式ドキュメント](https://learn.microsoft.com/ja-jp/azure/defender-for-cloud/quickstart-onboard-aws?pivots=env-settings)からは以下の記載があります。

- **エージェントの自動プロビジョニング**
    - Security Center は Azure Arc を使用して、Log Analytics エージェントを AWS のEC2 インスタンスにデプロイします
    - ポリシー管理
    - 脆弱性の管理
    - 埋め込まれたエンドポイント検出と応答 (EDR)
    - セキュリティ構成ミスの検出
- Security Center の推奨事項と AWS Security Command Hub の検出結果を 1 つのビューに表示
- Security Center のセキュリティ スコアの計算への AWS リソースの組み込み
- AWS リソースの規制コンプライアンスの評価

見たところ、エージェントの自動プロビジョニングは Azure Defender を自動導入することによるサーバー保護になるかと思います。後者は AWS Security Hub のコンプライアンス機能（AWS Config Ruleによる検知）を ASC 側で統合監視することが目的になります。

# 3. 構成概要
Microsoft Defender for Cloud によるマルチクラウドのイメージは以下になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/79ee0f3b-a445-4cf2-8ab6-3749ee64e87a.png)

# 4. やってみる
## 4.1 MDfC 側設定
- MDfC の環境設定より、AWS アカウントを追加します。
    - AWS 側のオンボードとして、AWS Organizations の管理アカウント、もしくは単一アカウントを設定します。
    - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/b5994905-7fe6-0f4f-ee22-7a61484a784d.png)
- AWS 側設定のプランを選択する
    - 次の画面では、AWS 側への監視機能として、どの機能を有効にするか選択が出来ます。
    - CSPM 機能については 2022.10 時点ではプレビュー（無料）となっていました。
    - Amazon EC2 に対する Defender for Servers の適用や、Microsoft SQL Server on Amazon EC2 に対する適用、Amazon EKS コンテナーに対する保護などを選択出来るようになっています。
    - 本設定では、CSPM 機能だけを有効にして設定を進めています。
    - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/fb29e37c-c0e2-a11f-0b61-3e730297cde1.png)
- AWS 側 CloudFormation テンプレートのダウンロード
    - 設定を進めると、AWS 側 CloudFormation テンプレートのダウンロードが出来ます。
    - このテンプレートファイルを AWS 側に適用し、API アクセスするための IAM ロールを作成します。
    - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/fee69520-6e05-103d-d0aa-4eb5605afe0d.png)
- プロファイルの作成
    - AWS 側 CloudFormation テンプレートをダウンロードしたら、設定を保存します。
    - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/82ce4084-3335-5a58-2aeb-2a2b92f21061.png)

## 4.2 AWS 側設定
- MDfC 側で作成した CloudFormation テンプレートを適用します。
    - AWS CloudFormation からテンプレート新規作成を行います。
        - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/f00737c0-91b8-4dc9-848e-c33947ad2625.png)
        - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/4452e038-9a61-cf55-314a-411e0c3f62c7.png)
    - スタック名を分かりやすいものに入れておきます。
        - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/620a3b0c-2066-d25b-a19e-26620f496d39.png)
    - 権限を確認し、作成を行います。
        - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/b45b90e6-5f38-c919-494d-5eeb406340c6.png)
- 作成されるリソースを確認します。
    - テンプレートによって、``OIDCIdentityProvider``の登録と、IAM ロールが作成されたことが分かります。
    - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/acba921b-abb1-d862-f058-77f11f0e224a.png)

AWS 側の設定は上記だけです。
AWS 側で管理されている AWS Config Rule や、AWS Security Hub に依存せず、API を用いて Microsoft Defender for Cloud 側からAWS側の態勢管理を行えるようになりました。

## 4.3 (オプション) AWS 規制コンプライアンスの追加
初期設定では、AWS Foundational Security Best Practices による CSPM 監査が適用されます。
追加として、AWS CIS 1.2.0、PCI DSS 3.2.1 ルールが追加出来るようになっています。
また、独自のルールを作成する場合は、カスタム評価（プレビュー）を用いて、自社専用のルールをカスタマイズすることもサポートされています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/4d758553-80f1-d932-01fa-87c3adea6302.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/20c3310c-d893-eb31-95dc-24321ff77db6.png)


# 5. Microsoft Defender for Cloud から CSPM 機能で AWS 側はどのように見えるのか？
マルチクラウドに対する設定が完了すると、ダッシュボード上には各クラウド (Azure / AWS / GCP) 毎のセキュアスコアが表示されるようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/ace6601d-68d2-b3d7-d8af-d94b1ae036f2.png)

Azure だけでなく、AWS 環境に対するセキュリティ態勢もボタンで切り替えることによって表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/28c2c13d-639f-ce92-0db9-e6be261d3d87.png)

推奨事項のページも、AWS セキュリティベストプラクティスの項目が日本語で見えます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/146084c3-a99a-7efb-f6f6-4ee8d7439dc8.png)

各レギュレーションルールの項目についても、日本語で解説が掲載されており、分かりやすいです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/dc4fdd72-3582-393c-852f-baf81a6521de.png)

「インベントリ」の機能から見ると、API によって取得された AWS 側のリソースが確認出来ます。
Azure ポータルから、Azure / AWS / GCP の各推奨事項やリソースが可視化出来ると、マルチクラウドを管理している方にとってメリットがあるのではと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653790/f3b27ecb-85ca-d042-8089-7867eec493c9.png)

# 6.まとめ
Microsoft Defender for Cloud から AWS との接続を試してみましたが、マルチクラウドのベースライン準拠を統一して監視したユーザーや、Defender for Servers を用いた EC2 に対するマルウェア/ EDR 対策を統一したい方向けなのかなと思います。AWS 側でも Security Hub の可視化画面などで運用しているお客様も多いと思いますが、クラウド毎に個別に監視するのが良いのか、今回のように統合監視するのが良いのかは要検討といったところになるのかなと思いました。どなたかの参考になれば幸いです。

＊本稿は、個人の見解に基づいた内容であり、所属する会社の公式見解ではありません。また、いかなる保証を与えるものでもありません。正式な情報は、各製品の販売元にご確認ください。