AzureのMicrosoft Defender for CloudでAWSのセキュリティチェックをやってみる

2022.12.28

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Azure の Microsoft Defender for Cloud には CSPM (Cloud Security Posture Management) 機能があり、AWS アカウントに対してもリソースのセキュリティチェックができるため、試してみました。

Microsoft Defender for Cloud の AWS 接続機能

Microsoft Defender for Cloud では、AWS アカウントに接続して次の機能を利用することができます。今回は CSPM を試します。

  • CSPM (Cloud Security Posture Management)
    • AWS リソースのセキュリティ評価(セキュリティチェック)
  • Microsoft Defender for Servers
    • サポートされている Windows と Linux の EC2 インスタンスで脅威検出および高度な防御機能を提供
  • Microsoft Defender for Containers
    • サポートされている Amazon EKS クラスターで脅威検出および高度な防御機能を提供
  • Microsoft Defender for SQL
    • AWS EC2、AWS RDS Custom for SQL Server で実行されている SQL Server で脅威検出および高度な防御機能を提供

詳細は次のドキュメントに記載されています。

AWS アカウントを Microsoft Defender for Cloud に接続する | Microsoft Learn

CSPM 機能を試してみた

AWS のセキュリティチェックを行う設定は、AWS アカウント単位で設定する方法と AWS Organizations の組織単位で設定する方法があります。両方試してみます。

手順は次のドキュメントに記載されています。

AWS アカウントを Microsoft Defender for Cloud に接続する | Microsoft Learn

前提条件として、Microsoft Defender for Cloud を有効化済みの状態から始めています。


AWS アカウント単位の設定

始めは Azure の設定からです。

Microsoft Defender for Cloud の環境設定メニューを開き、環境を追加からアマゾン ウェブ サービスを選択します。

AWS アカウントの情報を入力します。オンボード単一のアカウントを選択します。

次に、利用する機能を選択します。今回は Defender CSPM 機能のみ利用します。また、Monitoring coverageの設定において、Agentless scanning (preview) 機能は無効で構成しています。

AWS アカウントで展開する CloudFormation のテンプレートが提示されるため、ダウンロードします。

上記画面でAWS へ移動を選択すると AWS の CloudFormation 画面が開きますが、リージョンがフランクフルトなので、いつも利用しているリージョンに変更してもよいです。今回は東京リージョンを利用します。

CloudFormation サービスでスタックの作成から新しいリソースを使用 (標準)を選択します。

先ほど Azure でダウンロードした CloudFormation テンプレートをアップロードして次に進みます。

スタックの名前を入力して次に進みます。パラメータを変更する必要はありません。

ステップ 3 のオプションは今回はデフォルトのまま進むことにします。

ステップ 4 では、内容を確認した後に IAM リソースが作成されることを承認して送信を選択します。

スタックがCREATE_COMPLITEであることを確認できれば、AWS 側の設定は終了です。IAM ID プロバイダーと IAM ロールが作成されています(Microsoft Defender for Cloud で利用する機能により作成されるリソースは異なります)。

最後に、Azure 側でレビューと生成画面に進み、内容を確認して作成します。

環境設定メニューから作成したコネクタを確認できます。

AWS アカウントを選択して標準メニューを開くと、利用する標準を選択できます。今回は初期設定であるAWS Foundational Security Best PracticesMicrosoft cloud security benchmarkを利用する設定としています。

執筆時点で次の 4 つの標準がありました。

  • AWS CIS 1.2.0
  • AWS Foundational Security Best Practices
  • AWS PCI DSS 3.2.1
  • Microsoft cloud security benchmark

チェック項目は評価の表示から確認できます。

チェック項目の一例です。

ドキュメントにも推奨事項の記載があります。

AWS リソースに関する Microsoft Defender for Cloud のすべての推奨事項の参照テーブル | Microsoft Learn

チェック結果はセキュリティ態勢の画面から確認できます。1 日おいてから確認したところ、チェック結果が表示されていました。

試しに 1 つの項目を確認したところ、Unhealthy なリソースを確認できました。


組織単位の設定

AWS Organizations の組織の追加も試してみます。AWS アカウント IDには AWS Organizations の管理アカウントの ID を入力します。組織内で対象外とするアカウントも指定することもできますが、今回は指定しません。

プランは単一のアカウントを追加したときと同様に Defender CSPM のみをオンにしています。

AWS で展開する CloudFormation のダウンロード画面です。単一のアカウントのときと異なり、StackSets として展開するように指示されます。

CloudFormation テンプレートをダウンロードして AWS の管理アカウントで StackSets を展開します。

ダウンロードしたテンプレートをアップロードして次に進みます。

StackSet 名を入力して次に進みます。

ステップ 3 のオプションは、今回はデフォルトのまま進みます。

ステップ 4 では展開する OU およびリージョンを指定します。他の項目は、今回はデフォルトとしています。

最後のレビューでは、内容を確認した後に IAM リソースが作成されることを承認して送信を選択します。

オペレーションがSUCCEEDEDであることを確認できれば完了です。

最後に、Azure 側で AWS で作成した StackSet 名を入力して次に進みます。

最後に、Azure 側でレビューと生成画面を確認して作成します。

エラー「error occured for security connector: Identity provider is missing from AWS account/s. Defender for Cloud cannot authenticate without it. Create the identity provider to complete the onboarding」が出てしまいました。

管理アカウントに CloudFormation テンプレートを展開できていないことが原因だと思われたため、管理アカウントにおいてもダウンロードした CloudFormation テンプレートをスタックとして展開することでエラーを解消できました。

以上で、設定は終わりです。

環境設定では管理アカウントが ★ マークで表示され、階層化されて組織内のアカウントが表示されました。モザイク部分は AWS のアカウント ID です。

セキュリティ態勢においても管理カウントが ★ マークで表示され、組織内のアカウントのチェック結果も確認できました。

さいごに

Azure の Microsoft Defender for Cloud サービスの CSPM (Cloud Security Posture Management) 機能を用いて AWS のセキュリティチェックを試してみました。

この記事がどなたかのご参考になれば幸いです。