存储和检索SQL Azure的SQL管理员密码

时间:2019-02-11 20:30:42

标签: sql azure azure-sql-database azure-keyvault arm-template

当我使用ARM模板创建SQL Azure数据库时-需要提供主SQL Admin。

我打算将此密码值存储在Azure Keyvault中,并让ARM仅使用秘密标识符。

在操作模式下,创建和分配密码的用户/角色将是Opertaions Manager,并且部署工程师应该不知道密码。

这是上下文,仅在Azure Key Vault中创建/存储[秘密]是否足够? 而且没有使用加密密钥吗?

我在上述方法中是否缺少任何关键内容?

2 个答案:

答案 0 :(得分:1)

Key Vault可帮助您保护应用程序在内部部署或在云中使用时使用的密钥和其他机密。现在,越来越多的Azure服务将Azure Key Vault集成为它们的秘密/密钥源,用于诸如部署,数据甚至磁盘加密之类的事情。

在Azure资源管理器模板中,您可以提供references to secrets in Azure KeyVault;在2.9 Azure SDK中,您可以使用VS中提供的工具,使此操作与保存机密一样简单。要完成这项工作,需要执行一些步骤,但在此版本中,我们已使您轻松完成该工作。

  1. 为要在部署期间使用的秘密创建密钥保管库
  2. 将秘密放入金库
  3. 在密钥保管库上设置属性,以允许Azure资源管理器在部署期间检索机密
  4. 编写部署模板以引用Key Vault中的secureStrings

还请注意,执行部署的用户将需要对Vault中的机密具有读取权限。

参考: Key Vault Support in ARM Templates.

这是一个教程: Create an Azure Key Vault using an ARM template

它可以帮助您从Azure Keyvault存储和检索密码。

希望这会有所帮助。

答案 1 :(得分:0)

您可以从KeyVault存储中检索它,如下所示:

template.json:

   "resources": [
        {
            "type": "Microsoft.KeyVault/vaults",
            "name": "[parameters('name')]",
            "apiVersion": "2016-10-01",
            "location": "[parameters('location')]",
            "properties": {
                "enabledForDeployment": "[parameters('enabledForDeployment')]",
                "enabledForTemplateDeployment": "[parameters('enabledForTemplateDeployment')]",
                "enabledForDiskEncryption": "[parameters('enabledForDiskEncryption')]",
                "accessPolicies": "[parameters('accessPolicies')]",
                "tenantId": "[parameters('tenant')]",
                "sku": {
                    "name": "[parameters('sku')]",
                    "family": "A"
                }
            }
        }
    ]

parameters.json:

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "name": {
            "value": "ContosoAKV"
        },
        "location": {
            "value": "centralus"
        },
        "sku": {
            "value": "Standard"
        },
        "accessPolicies": {
            "value": []
        },
        "tenant": {
            "value": "XXXXXXXXXXXXXXXXXXXXXXXX"
        },
        "enabledForDeployment": {
            "value": false
        },
        "enabledForTemplateDeployment": {
            "value": false
        },
        "enabledForDiskEncryption": {
            "value": false
        }
    }
}