【问题标题】:Storing and retrieving the SQL Admin password for SQL Azure存储和检索 SQL Azure 的 SQL 管理员密码
【发布时间】:2019-02-11 20:30:41
【问题描述】:

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

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

在操作模式中,创建和排序密码的用户/角色将是操作经理,部署工程师不应该知道密码。

这是上下文,仅在 Azure Key Vault 中创建/存储一个 [Secret] 就足够了吗? 并且没有使用加密密钥?

我在上面的方法中遗漏了什么关键的东西吗?

【问题讨论】:

  • 猜猜这取决于你对我有多保密。我们通常将 arm 模板参数链接到 keyvault 并让 keyvault 在部署时注入它。在大多数情况下,这对我们有好处。

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


【解决方案1】:

Key Vault 可帮助您保护应用程序在本地或云中使用的加密密钥和其他机密。 Azure 上越来越多的服务现在将 Azure Key Vault 作为其秘密/密钥来源,用于部署、数据甚至磁盘加密等。

在 Azure 资源管理器模板中,您可以提供 references to secrets in Azure KeyVault,在 2.9 Azure SDK 中,您可以使用 VS 中可用的工具来使这变得像保存机密一样简单。完成这项工作需要几个步骤,但我们在此版本中为您简化了操作。

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

另请注意,执行部署的用户需要对保管库中的机密具有读取权限。

参考: Key Vault Support in ARM Templates.

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

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

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    您可以从 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
            }
        }
    }
    

    【讨论】:

    • 这会创建一个 kv,而不是检索密钥
    猜你喜欢
    • 2015-08-05
    • 1970-01-01
    • 2010-11-19
    • 2018-07-31
    • 2022-01-18
    • 2013-03-16
    • 2016-08-23
    • 1970-01-01
    • 2016-05-08
    相关资源
    最近更新 更多