来自keyvault的Azure SQL密码不满足复杂性,但来自变量时则不满足

时间:2019-05-16 15:59:54

标签: sql json azure

我正在尝试使用json ARM在Azure中创建Azure SQL Server。 在我的json中,当我将密码放入变量中时,安装就可以了。 当我从密钥库获得相同的密码时,它不符合复杂性政策。

我的模板有效,但是在创建sql ressource时出现错误消息

密码验证失败。密码不够复杂,因此不符合策略要求。

我使用的密码是: P @ ssw0rd01isCompleX

我认为我已经正确配置了json,它不起作用。 我已经删除了对json参数中对keyvault的调用,以使Visual Studio为我创建它。 我尝试使用其他密码。

我正在使用Visual Studio,因此我删除了对keyvault的调用,以使Visual Studio为我添加它。...相同的结果

密钥库设置为启用对Azure资源管理器的模板访问。

部署的输出显示了密码的空白值,也许是正常现象,也许是症状。...

17:51:46-名称类型值
17:51:46-===============
17:51:46-environmentName字符串dev
17:51:46-adminlogin字符串adminlogin

17:51:46-apv-eun-dev-sql SecureString
17:51:46-utcValue字符串2019-05-16 T15:51:40 +00:00

您对此有一个想法吗?

json文件:

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "EnvironmentName": {
      "type": "string",
      "allowedValues": [
        "prod",
        "pprd",
        "uat",
        "dev"
      ]
    },
    "adminlogin": {
      "type": "string"
    },
    "apv-eun-dev-sql": {
      "type": "securestring"
    },
    "utcValue": {
      "type": "string",
      "defaultValue": "[utcNow('yyyy-MM-dd THH:mm:ss zzzz')]"
    }
  },
  "variables": {
  },
  "resources": [
    {
      "apiVersion": "2015-05-01-preview",
      "type": "Microsoft.Sql/servers",
      "location": "[resourceGroup().location]",
      "name": "[concat('apv-eun-', parameters('EnvironmentName'),'-sql-001')]",
      "properties": {
        "administratorLogin": "parameters('adminlogin')",
        "administratorLoginPassword": "parameters('apv-eun-dev-sql')",
        "version": "12.0"
      },
      "tags": { "ONEData": "Rules" }
    }
  ],
  "outputs": {}
}

json参数文件:

{

  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",

  "contentVersion": "1.0.0.0",

  "parameters": {
    "EnvironmentName": {
      "value": "dev"
    },
    "adminlogin": {
      "value": "adminlogin"
    },
    "apv-eun-dev-sql": {
      "reference": {
        "keyVault": {
          "id": "/subscriptions/XXX/resourceGroups/XXX/providers/Microsoft.KeyVault/vaults/apv-eun-dev-akv-001"
        },
        "secretName": "apv-eun-dev-sql"
      }
    }
  }
}

1 个答案:

答案 0 :(得分:0)

不确定,但这似乎是语法问题。

在json文件中,您有:

"administratorLogin": "parameters('adminlogin')",
"administratorLoginPassword": "parameters('apv-eun-dev-sql')"

应为:

"administratorLogin": "[parameters('adminlogin')]",
"administratorLoginPassword": "[parameters('apv-eun-dev-sql')]"

来源: https://github.com/rjmax/ArmExamples/blob/master/keyvaultexamples/KeyVaultUse.parameters.json

https://github.com/rjmax/ArmExamples/blob/master/keyvaultexamples/KeyVaultUse.json

https://docs.microsoft.com/fr-fr/azure/azure-resource-manager/resource-manager-keyvault-parameter