1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Azure PolicyでDefender for Cloudの推奨事項の通知を強制する

Posted at

シングルテナントで複数のAzureサブスクリプションを管理していて、Defender for Cloudのセキュリティ推奨事項を通知したい場合、各サブスクリプションに「ワークフローの自動化」と通知用のLogicAppを作成するのが面倒なのでPolicyで強制した手順をまとめる。

前提

今回検証するサブスクリプション群は以下のような構成になっています。
image.png

通知用のLogicAppを作成する

まずは通知用のLogicAppを作成するのですが、中身については今回省略します。
通知先はメールやSlackなどお好みですが、重要なのはトリガーです。

トリガーの検索で「Security Center」と検索すると候補が出てくるので、「Azure Security Center のレコメンデーションが作成またはトリガーされたとき」を選択します。
※Azure Security CenterはDefender for Cloudの旧名です
※アラート、推奨事項、コンプライアンス評価でトリガーが分かれているので通知したいトリガーを選んでOKですが、今回は「推奨事項」の前提で進めます。
image.png

接続情報は自動で作成されるので、あとは後続処理を実装(割愛)

ポリシーの定義を作成する

ポリシーの定義は管理グループの「検証グループ」に作成し、割り当てます。
スコープが「検証グループ」になっていることを確認して、「Azure Security Center 推奨事項に対してワークフローの自動化をデプロイする」を検索し、複製します。
image.png

ベースとなるこのポリシーはDefender for Cloudのワークフローが配下のリソースに対して設定されているかをチェックし、なければ設定までしてくれる内容になっています。

定義の場所は「検証グループ」を選択して、名前は自由に付けます。
その後、実際のポリシーを修正します。
image.png

ポリシー修正箇所は以下です。

  • parametersセクションのlogicAppTrigger(381行目付近)に「Azure_Security_Center_のレコメンデーションが作成またはトリガーされたとき」を追加(ManualはLogicApp側でRegacyになっていたので使わない)
"logicAppTrigger": {
        "type": "String",
        "metadata": {
          "displayName": "ロジック アプリ トリガー",
          "description": "トリガーされるロジック アプリのトリガー コネクタ。使用可能な値: '手動 (着信 HTTP 要求)'、'Azure Security Center 推奨事項が作成またはトリガーされたとき'。"
        },
        "allowedValues": [
          "Manual (Incoming HTTP request)",
          "When an Azure Security Center Recommendation is created or triggered",
          "Azure_Security_Center_のレコメンデーションが作成またはトリガーされたとき"
        ]
      }
  • 162行目triggerMapにも「Azure_Security_Center_のレコメンデーションが作成またはトリガーされたとき」を追加
"triggerMap": {
        "Manual (Incoming HTTP request)": "manual",
        "When an Azure Security Center Recommendation is created or triggered": "When_an_Azure_Security_Center_Recommendation_is_created_or_triggered",
        "Azure_Security_Center_のレコメンデーションが作成またはトリガーされたとき": "Azure_Security_Center_のレコメンデーションが作成またはトリガーされたとき"
}

これで保存します。

Policyの割り当て

Policyの定義ができたので管理グループに割り当てます。
image.png

パラメーターは以下のように設定します。
image.png
「入力またはレビューが必要なパラメーターのみを表示する」のチェックを外すことですべてのパラメーターが確認できます。
特に推奨事項の状態はデフォルトだと全て通知対象なので絞ったほうが良いでしょう。

ロジックアプリトリガーは先程追加した「Azure_Security_Center_のレコメンデーションが作成またはトリガーされたとき」を選択しましょう。

これで作成するとポリシーが適用されます。

結果の確認

管理グループのポリシーからポリシーの準拠状況を確認できます。
まだ「未開始」となっており、少し時間がかかります。
image.png

配下のサブスクリプションは何も設定していないため、しばらくすると「準拠していない」と判断されます。
image.png

ポリシーの仕様として準拠していないリソースを自動作成するのは配下に新しいリソースができた場合になります。
現在「管理グループ」配下には既存のサブスクリプションが2つ存在しますが、これら準拠するように李リソースを作成するには「修正タスク」を作成する必要があります。
image.png

修復を行うことでDefender for Cloudにワークフローが追加されました!
image.png

デプロイのログは各サブスクリプションの「デプロイ」から参照できます。
image.png

新しいサブスクリプションを管理グループに追加する

検証グループにサブスクリプションを追加してみます。
image.png

こちらもしばらくすると準拠していないと判断されます。
image.png

ただしこのパターンは配下に新しいリソースができた場合に当てはまりますので修復タスクが自動で実行され、ワークフローが自動で作成されます。
これで新規のサブスクリプションが作成された場合でも自動で必要なリソースを作成してるようになりました。

以上、参考になれば幸いです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?