【发布时间】:2020-11-09 22:57:13
【问题描述】:
我正在寻找 ARM 模板来部署 Azure SQL Server,并生成随机密码,然后将该密码保存到密钥保管库中。
如果你们中有人遇到过这样的 ARM 模板,请告诉我。
【问题讨论】:
标签: sql-server azure azure-keyvault
我正在寻找 ARM 模板来部署 Azure SQL Server,并生成随机密码,然后将该密码保存到密钥保管库中。
如果你们中有人遇到过这样的 ARM 模板,请告诉我。
【问题讨论】:
标签: sql-server azure azure-keyvault
@LeonYue
您的链接的问题是下面的作者代码:
"sqlserverAdminPassword": "[concat('P', uniqueString(resourceGroup().id, '224F5A8B-51DB-46A3-A7C8-59B0DD584A41'), 'x', '!')]",
查看 uniqueString 的定义是:
根据提供的值创建确定性哈希字符串 参数。
这意味着密码不是随机的,并且可以计算出正确的参数。
您可以通过为每个部署插入一个新的 Guid 来解决此问题,但您的密码也将在每次部署时更新。
"parameters": {
"newGuid": {
"type": "string",
"defaultValue": "[newGuid()]"
}
}
"variables": {
"sqlserverAdminPassword": "[concat(uniqueString(guid(resourceGroup().id, deployment().name)), parameters('newGuid'), 'Tg2%')]"
}
newGuid 被添加为参数,因为这是使用此函数的唯一方式。
此函数只能用于参数的默认值。
【讨论】:
请参考本教程:Automatically generate a password for an Azure SQL database with ARM template:
它谈到了如何创建一个 ARM 模板,该模板将使用自动生成的密码创建一个 Azure SQL 数据库。
您可以在此处下载示例 ARM 模板解决方案:
您想和 Key Vault 中的密码相同,您可以学习:Set and retrieve a secret from Azure Key Vault using an ARM template。
【讨论】: