Přístup Key Vault tajného klíče při nasazení Azure Managed Applications

Pokud během nasazení potřebujete předat zabezpečenou hodnotu (třeba heslo) jako parametr, můžete načíst hodnotu z Azure Key Vault. Pro přístup k Key Vault při nasazování spravovaných aplikací musíte udělit přístup k instančnímu objektu poskytovatele prostředků zařízení . Služba spravovaných aplikací používá tuto identitu ke spuštění operací. Chcete-li úspěšně načíst hodnotu z Key Vault během nasazení, instanční objekt musí být schopný získat přístup k Key Vault.

Tento článek popisuje, jak nakonfigurovat Key Vault pro práci se spravovanými aplikacemi.

Povolit nasazení šablony

  1. Na portálu vyberte svůj Key Vault.

  2. Vyberte Zásady přístupu.

    Vybrat zásady přístupu

  3. Vyberte Kliknutím zobrazíte pokročilé zásady přístupu.

    Zobrazit pokročilé zásady přístupu

  4. Pro nasazení šablony vyberte Povolit přístup k Azure Resource Manager. Pak vyberte Uložit.

    Povolit nasazení šablony

Přidat službu jako přispěvatele

Přiřaďte roli přispěvatele k uživateli poskytovatele prostředků zařízení v oboru trezoru klíčů.

Podrobný postup najdete v tématu přiřazení rolí Azure pomocí Azure Portal.

Reference Key Vault tajný klíč

Chcete-li předat tajný kód z Key Vault do šablony ve spravované aplikaci, je nutné použít propojenou nebo vnořenou šablonu a odkazovat na Key Vault v parametrech pro propojenou nebo vnořenou šablonu. Zadejte ID prostředku Key Vault a název tajného klíče.

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "The location where the resources will be deployed."
      }
    },
    "vaultName": {
      "type": "string",
      "metadata": {
        "description": "The name of the keyvault that contains the secret."
      }
    },
    "secretName": {
      "type": "string",
      "metadata": {
        "description": "The name of the secret."
      }
    },
    "vaultResourceGroupName": {
      "type": "string",
      "metadata": {
        "description": "The name of the resource group that contains the keyvault."
      }
    },
    "vaultSubscription": {
      "type": "string",
      "defaultValue": "[subscription().subscriptionId]",
      "metadata": {
        "description": "The name of the subscription that contains the keyvault."
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Resources/deployments",
      "apiVersion": "2018-05-01",
      "name": "dynamicSecret",
      "properties": {
        "mode": "Incremental",
        "expressionEvaluationOptions": {
          "scope": "inner"
        },
        "template": {
          "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
          "contentVersion": "1.0.0.0",
          "parameters": {
            "adminLogin": {
              "type": "string"
            },
            "adminPassword": {
              "type": "securestring"
            },
            "location": {
              "type": "string"
            }
          },
          "variables": {
            "sqlServerName": "[concat('sql-', uniqueString(resourceGroup().id, 'sql'))]"
          },
          "resources": [
            {
              "type": "Microsoft.Sql/servers",
              "apiVersion": "2018-06-01-preview",
              "name": "[variables('sqlServerName')]",
              "location": "[parameters('location')]",
              "properties": {
                "administratorLogin": "[parameters('adminLogin')]",
                "administratorLoginPassword": "[parameters('adminPassword')]"
              }
            }
          ],
          "outputs": {
            "sqlFQDN": {
              "type": "string",
              "value": "[reference(variables('sqlServerName')).fullyQualifiedDomainName]"
            }
          }
        },
        "parameters": {
          "location": {
            "value": "[parameters('location')]"
          },
          "adminLogin": {
            "value": "ghuser"
          },
          "adminPassword": {
            "reference": {
              "keyVault": {
                "id": "[resourceId(parameters('vaultSubscription'), parameters('vaultResourceGroupName'), 'Microsoft.KeyVault/vaults', parameters('vaultName'))]"
              },
              "secretName": "[parameters('secretName')]"
            }
          }
        }
      }
    }
  ],
  "outputs": {
  }
}

Další kroky

Nakonfigurovali jste Key Vault, aby byly dostupné během nasazování spravované aplikace.