MicrosoftのDefender CSPMでAWSの態勢管理をしてみた

## MicrosoftのDefender CSPMとは
名前の通り、クラウドのセキュリティ態勢管理を提供するソリューションです。
MicrosoftのCNAPPソリューションであるDefender for Cloudの一機能として、CSPM領域を提供するのがDefender CSPMです。

Microsoftのソリューションなので、Azureの態勢管理しかできないと思われがちですが、**実は違います**。

下記のページにもある通り、**AWS** (Amazon Web Service) 及び**GCP** (Google Cloud) の態勢管理を行うこともでき、仮想マシン、ストレージ、データベース、IAM、コンテナなどの主要リソースをサポートしています。

https://learn.microsoft.com/ja-jp/azure/defender-for-cloud/multicloud-resource-types-support-foundational-cspm


## AWSアカウントをDefender CSPMに接続してみる
ということで、さっそくAWSアカウントをDefender CSPMに接続してみたいと思います。

##### AWSアカウントをDefender CSPMに接続するための前提条件
* Microsoft Azure サブスクリプション
 -Microsoft Defender for Cloudの有効化が必要
 ‐サブスクリプション所有者権限
* AWS アカウント

https://learn.microsoft.com/ja-jp/azure/defender-for-cloud/quickstart-onboard-aws

##### AWSアカウントの作成
Azureのサブスクリプションは既に持っているので、まずはAWSの無料利用枠を入手するところから始めます。

https://aws.amazon.com/jp/free/?all-free-tier.sort-by=item.additionalFields.SortRank&all-free-tier.sort-order=asc&awsf.Free%20Tier%20Types=*all&awsf.Free%20Tier%20Categories=*all

メールアドレスや請求先住所、クレジットカード情報を入力した後SMSで本人確認を行えば、数分で手続きは完了です。無料利用枠の範囲であれば課金はかかりません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452501/6fd9fa15-4e19-8eb8-3be5-4e7d2e3d6f58.png)

::: note Info
CloudFormationを作成後、裏でAWSへのAPIコール課金（月額数百円程度）が発生することがあります。検証後不要な場合は削除することをおすすめします。
:::


アカウント作成が完了しコンソール画面にサインインした後、右上のアカウント名をクリックし、表示された**アカウントID**を控えておきます。Defender CSPMとの接続に利用します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452501/91ad5017-bc5f-d23d-983e-29d3889dcf2c.png)


##### AWSアカウントをDefender CSPMと接続する
:::note info
Foundational CSPM (基本的なCSPM) とDefender CSPMの違いは下記に記載があります。
 
 https://learn.microsoft.com/ja-jp/azure/defender-for-cloud/concept-cloud-security-posture-management#plan-availability
 
基本的なCSPMは無料で利用することができ、Defender CSPMの場合は対象リソース※あたり月5.11ドルの課金が発生します。

https://azure.microsoft.com/ja-jp/pricing/details/defender-for-cloud/?msockid=07154257fbbf62533cbb5776ffbf641e

※AWSの場合はCompute	EC2 インスタンス（割り当て解除済みは除く）、S3 バケット、RDS インスタンスが課金の対象です。https://learn.microsoft.com/ja-jp/azure/defender-for-cloud/concept-cloud-security-posture-management#plan-pricing
:::

上記で作成したAWSの無料アカウントを、Defender CSPMと接続します。
1.  Azure Portal : https://portal.azure.com へアクセス
1. 「ホーム」＞「Defender for Cloud」＞「環境設定」
1. 「環境を追加」から「アマゾン ウェブ サービス」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452501/b5da482f-ddcb-b3bd-16fa-9ef8e05effbb.png)

1. AWSアカウント作成時に入手したアカウントIDなどの必要情報を入力し、「次へ：プランの選択]をクリックします
※今回は「管理アカウント」を選択しましたが、試用版のみ利用する場合は「単一のアカウント」でOKです。その場合手順12～16は不要です。
※スキャン間隔は4,6,12,24時間から選択可能です。間隔が短いほど多くのAPIコール課金が発生します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452501/d323a0bb-bf65-9c62-02e7-c4f32e52afd5.png)

1. プランの選択画面で有効にしたいプランを選択します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452501/5df9d044-8bb2-e6ec-2286-d73f497541be.png)

1. 「設定」をクリックすると、Defender CSPMの中でさらにどの機能を有効化するのかを細かく選択することができます。今回はDefender CSPMのすべての機能を有効化します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452501/53175b69-6654-78c3-6db8-538e6d7256e5.png)

7. AWS側での設定に必要なCloudFormationのテンプレートをダウンロードします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452501/4497bbb0-296f-e59b-46bd-e2c559b897de.png)

1. AWSコンソール：https://aws.amazon.com/jp/console に移動し、CloudFormationを作成します
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452501/2ddf022a-4130-43d3-541d-d2eaf9ba9784.png)
 
1. 「スタックの作成」＞「既存のテンプレートを選択」＞「テンプレートファイルのアップロード」で先ほどAzure Portalからダウンロードしたテンプレートをアップロードします
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452501/792438e2-493b-ed4f-1008-931810ddbe31.png)
 
1. パラメータがきちんと入力されていることを確認し、任意のスタック名を入力します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452501/419360ef-72e8-f2d1-a32f-561d692d050b.png)

1. 特にカスタム項目がなければデフォルトのまま手順を進め、しばらく待ってCompleteになれば完了です
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452501/2498af9b-d3ab-e87e-e653-c34a52867544.png)

1. 次はStackSetsを作成します。左端ペインの「StackSets」から「StackSetを作成」を選択します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452501/2a7351c3-fea1-e878-172e-be2bcf5c7cd8.png)

1. 先ほどと同じように「テンプレートの準備完了」＞「テンプレートファイルのアップロード」を選択し、Azure Portalからダウンロードしたテンプレートファイルをアップロードします
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452501/1aab3961-33aa-f578-d961-2dcad281c83f.png)
 
1. パラメータがきちんと入力されていることを確認し、任意のStackSet名を入力します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452501/34b4c0a2-b21f-c1fd-c719-2fbca2b20034.png)

1. 特にカスタム項目がなければ「デプロイオプションの設定」まで進み、「新しいスタックのデプロイ」＞「スタックをアカウントにデプロイ」＞アカウントIDを入力＞「リージョンの指定」でap-southeast-2を選択します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452501/1ebc1010-100e-e595-3908-f528e75a7214.png)

1. レビュー後、StackSetのステータスがActiveになったことを確認し、StackSetの名前をコピーします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452501/76c4e6b0-08f0-48c3-d03a-c44a5f7db863.png)

1. Azure Portalに戻り、「スタックセット名」に先ほど作成したStackSetの名前を入れ、「レビューと作成」に進みます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452501/03974de2-695d-35a9-833b-c218d70043ea.png)

1. 「Defender for Cloud」の「環境設定」のページに戻り、「最新の情報に更新」を選択。先ほど接続したAWSアカウントが表示されていれば接続完了です
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452501/7df36caf-8ac1-567e-59bd-b4dc4d6d6610.png)

## 接続したAWSアカウントで出来ること
AWSアカウントを接続した後は、環境毎にどのようなセキュリティ標準を適用するか選ぶことができます。
Microsoftの作成した、**「Microsoft Cloud Security Benchmark」** のみならず、AWSの作成した **「AWS Foundational Security Best Practices」** も参照することができます。
その他CIS、NIST、PCI DSSなどの基準に対し、自社の環境がどこまで対応できているのかをチェックすることができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452501/412d6865-879c-842c-1ccd-1c52992c1303.png)

https://learn.microsoft.com/ja-jp/azure/defender-for-cloud/concept-regulatory-compliance

https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/fsbp-standard.html

今回はAWS環境の中にリソースを作成していないため、環境の状態を評価することはできませんが、リソースがある場合には下記のような推奨事項に対して、 **環境が正しく構成されているのか** の評価を行うことができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452501/bf695a34-248a-6c30-c023-ebad1228d1fe.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452501/3b168c52-53f6-680f-9a2c-2e3f24b90933.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452501/c4e676c6-245d-4016-ff79-c4844e0733ec.png)

その他、Microsoft Cloud Security Benchmarkで定義されている推奨事項は下記に記載があるので、興味がある方は見てみてください。

https://learn.microsoft.com/ja-jp/security/benchmark/azure/overview#controls