0

次のものをデプロイする ARM テンプレートを作成したいと考えています。

  1. リソース グループ
  2. リソース グループの Log Analytics ワークスペース + Sentinel を有効にする
  3. MSSP の Sentinel へのアクセスを有効にする Lighthouse コード

3 番目の手順を実行するには、subscriptionDeploymentTemplate.json スキーマを使用する必要がありますが、2 番目の手順ではリソース グループも必要なので、deploymentTemplate.json スキーマを使用します。

これらを別々に行うためのコードがありますが、それらをまとめて 1 つの大きなテンプレート ファイルを作成したいと考えています。

問題は、LAW + Sentinel 有効化コードを Microsoft.Resources/deployment リソースに配置すると、コードが機能しないことです。これをネストされたテンプレートとしてデプロイしたいので、deploymentTemplate.json スキーマを使用できます。このリソースにコードを挿入すると、テンプレートの検証中にエラーが発生しました。「デプロイ テンプレートの検証に失敗しました: 'リソース 'Microsoft.OperationalInsights/workspaces/workspace_name' はテンプレートで定義されていません。」

しかし、ネストがない場合でも同じコードが機能します。では、入れ子の場合に依存関数が機能しないのは正常ですか? 私にとっては、他のタイプのリソースの場合は問題ないように思えました。しかし、ここで、"Microsoft.OperationalInsights/workspaces" をデプロイしてから "Microsoft.OperationsManagement/solutions" をデプロイしようとすると、うまくいきません。

コードの関連部分:

"resources": [
    {
      "type": "Microsoft.Resources/deployments",
      "apiVersion": "2020-10-01",
      "name": "sentinelDeployment",
      "resourceGroup": "[parameters('rgName')]",
      "properties": {
        "mode": "Incremental",
        "template": {
          "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
          "contentVersion": "1.0.0.0",
          "parameters": {},
          "variables": {},
          "resources": [
            {
            "type": "Microsoft.Resources/deployments",
            "apiVersion": "2018-05-01",
            "name": "rgAssignment",
            "resourceGroup": "[parameters('rgName')]",
            "properties":{
                "mode":"Incremental",
                "template":{
                    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
                    "contentVersion": "1.0.0.0",
                    "parameters": {},
                    "resources": [
                      {
                        "type": "Microsoft.OperationalInsights/workspaces",
                        "apiVersion": "2020-08-01",
                        "name": "[parameters('workspaceName')]",
                        "location": "[parameters('location')]",
                        "properties": {
                          "retentionInDays": "[parameters('dataRetention')]",
                          "sku": {
                            "name": "PerGB2018"
                          },
                          "workspaceCapping": {
                              "dailyQuotaGb": "[parameters('dailyCap')]"
                          }
                        }
                      },
                      {
                        "type": "Microsoft.OperationsManagement/solutions",
                        "apiVersion": "2015-11-01-preview",
                        "name": "[format('SecurityInsights({0})', parameters('workspaceName'))]",
                        "location": "[parameters('location')]",
                        "properties": {
                          "workspaceResourceId": "[resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspaceName'))]"
                        },
                        "plan": {
                          "name": "[format('SecurityInsights({0})', parameters('workspaceName'))]",
                          "product": "OMSGallery/SecurityInsights",
                          "publisher": "Microsoft",
                          "promotionCode": ""
                        },
                        "dependsOn": [
                          "[resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspaceName'))]"
                        ]
                      }
                    ]
                }
            }
            }   
          ]
        }
      }
    }
  ]

したがって、これらのリソースの場合、「Microsoft.Resources/deployments」タイプに配置すると、テンプレートの検証中にdependsOnが機能しないようです。

それは正常ですか?もしそうなら、この問題を解決するために使用できる回避策はありますか? または、これら 3 つのことを 1 つの ARM テンプレートに実装する最良の方法は何でしょうか。

4

1 に答える 1