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

标签 azure azure-sql-database azure-rm-template

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

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

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

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

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

但是这些都没有告诉我如何包含多个用户角色映射。例如,下面是我目前拥有的内容,它可以工作并让我指定用户应该具有数据写入者角色。但是,我还想指定用户应该具有数据读取器和 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://learn.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"]
      }
    ]
  }
}

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

关于azure - 如何在 ARM (JSON) 模板的 Azure 漏洞评估基线定义中指定多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71375111/

相关文章:

azure - 如何使用 powershell 将 Azure 虚拟网络子网输出到 csv 以进行单个或多个订阅

sql-server - 有没有办法在 Azure PaaS 数据库中创建第二个登录名(使用用户)?

c# - 添加数据库迁移代码时 Azure 应用服务崩溃

.net - 将 Visual Studio for Mac 中的 .NET 项目连接到 Azure SQL Edge

azure - azure-arm 模板中的环境变量

powershell - 如何通过 Powershell 为 Azure 配置 github 等

c# - Azure 搜索 : How to create and delete an account programmatically using C#

azure - 远程创建 azure devops Windows 自托管代理

azure - 将 ADF 权限添加到 ARM 中的 key 保管库

azure - 使用 ARM 模板自动创建 Azure DevOps 组织