如何在我的 ARM (JSON) 模板中的 Azure 漏洞评估基线定义中指定多行?

How do I specify multiple rows in an Azure Vulnerability Assessment baseline definition in my ARM (JSON) template?

我正在尝试将一些 Azure 漏洞评估基线定义添加到我的 ARM 模板中。我使用 JSON 作为我的 ARM 模板。不过,我找不到任何关于如何指定某些 VA 基线定义的文档,即那些需要在基线中包含多行的文档。

具体来说,我正在尝试为 VA2109 添加基线定义。我可以找到有关如何在一般意义上定义基线 VA 条目的文档,在此处...

https://docs.microsoft.com/en-us/azure/templates/microsoft.sql/servers/databases/vulnerabilityassessments/rules/baselines?tabs=json

然后我可以在这里找到VA2109的描述...

https://docs.microsoft.com/en-us/azure/azure-sql/database/sql-database-vulnerability-assessment-rules#authentication-and-authorization

但是这些都没有告诉我如何包含多个用户角色映射。例如,下面是我目前拥有的,它可以工作并让我指定用户应该具有数据编写器角色。但是,我还想指定用户应具有数据 reader 和 ddl 管理员角色。

{
  "type": "Microsoft.Sql/servers/databases/vulnerabilityAssessments/rules/baselines",
  "apiVersion": "2021-02-01-preview",
  "name": "[concat(variables('sqlServerName'), '/', variables('databaseName'), '/default/VA2109/Default')]",
  "dependsOn": [
    "[resourceId('Microsoft.Sql/servers/databases', variables('sqlServerName'), variables('databaseName'))]"
  ],
  "properties": {
    "baselineResults": [
      {
        "result": ["wibuser", "db_datawriter"]
      }
    ]
  }
}

我能够使用 PowerShell 找到我想要的示例。在 PowerShell 中,您可以只提供数组和数组。 PowerShell 示例可在此处找到...

https://docs.microsoft.com/en-us/powershell/module/sqlserver/new-sqlvulnerabilityassessmentbaseline?view=sqlserver-ps#example-2--create-a-new-security-check-baseline-manually

所以我调整了我的 ARM 来做同样的事情,但是它抛出了一个错误,指出无效的 ARM 模板。我尝试过的调整后的 ARM 如下所示 ...

{
  "type": "Microsoft.Sql/servers/databases/vulnerabilityAssessments/rules/baselines",
  "apiVersion": "2021-02-01-preview",
  "name": "[concat(variables('sqlServerName'), '/', variables('databaseName'), '/default/VA2109/Default')]",
  "dependsOn": [
    "[resourceId('Microsoft.Sql/servers/databases', variables('sqlServerName'), variables('databaseName'))]"
  ],
  "properties": {
    "baselineResults": [
      {
        "result": [
          ["wibuser", "db_datawriter"],
          ["wibuser", "db_datareader"]
        ]
      }
    ]
  }
}

有人知道在使用 ARM JSON 时如何在 VA 基线资源中指定多行吗?或者也许知道在哪里可以找到所有这些 VA 定义的文档?

请注意,baselineResults 是一个行数组。
您需要将每一行作为 JSON 对象添加到该数组。

另外请注意,每个结果行都应包含所有列,因此您还应包含“主体类型”和“身份验证类型”行。

它应该看起来像这样:

{
  "type": "Microsoft.Sql/servers/databases/vulnerabilityAssessments/rules/baselines",
  "apiVersion": "2021-02-01-preview",
  "name": "[concat(variables('sqlServerName'), '/', variables('databaseName'), '/default/VA2109/Default')]",
  "dependsOn": [
    "[resourceId('Microsoft.Sql/servers/databases', variables('sqlServerName'), variables('databaseName'))]"
  ],
  "properties": {
    "baselineResults": [
      {
        "result":  ["wibuser", "db_datawriter", "SQL_USER", "NONE"]
      },
      {
        "result":  ["wibuser", "db_datareader", "SQL_USER", "NONE"]
      }
    ]
  }
}

我为“主体类型”和“身份验证类型”行添加了虚拟值,请自行填写