Přístup k tajnému kódu služby Key Vault při nasazování spravovaných aplikací Azure

Pokud během nasazování potřebujete předat zabezpečenou hodnotu (třeba heslo), můžete ji načíst ze služby Azure Key Vault. Pokud chcete získat přístup ke službě 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é aplikace používá tuto identitu ke spouštění operací. Aby bylo možné úspěšně načíst hodnotu ze služby Key Vault během nasazování, musí mít instanční objekt přístup ke službě Key Vault.

Tento článek popisuje, jak nakonfigurovat službu Key Vault tak, aby fungovala se spravovanými aplikacemi.

Povolení nasazení šablony

  1. Přihlaste se k portálu Azure.

  2. Otevřete trezor klíčů. Do vyhledávacího pole zadejte trezory klíčů nebo vyberte trezory klíčů.

    Screenshot of the Azure home page to open a key vault using search or by selecting key vault.

  3. Vyberte konfiguraci accessu.

    Screenshot of the key vault setting to select access configuration.

  4. Vyberte Azure Resource Manager pro nasazení šablony. Pak vyberte Použít.

    Screenshot of the key vault's access configuration that enables Azure Resource Manager for template deployment.

Přidání služby jako přispěvatele

Přiřaďte roli Přispěvatel uživateli poskytovatele prostředků zařízení v oboru trezoru klíčů. Role Přispěvatel je privilegovaná role správce pro přiřazení role. Podrobný postup najdete v tématu Přiřazení rolí Azure pomocí webu Azure Portal.

Poskytovatel prostředků zařízení je instanční objekt ve vašem tenantovi Microsoft Entra. Na webu Azure Portal můžete ověřit, jestli je zaregistrovaná, a to tak, že přejdete do podnikových aplikací Microsoft Entra ID>a změníte filtr vyhledávání na Aplikace Microsoftu. Vyhledejte poskytovatele prostředků zařízení. Pokud se nenajde, zaregistrujteMicrosoft.Solutions poskytovatele prostředků.

Referenční tajný kód služby Key Vault

Pokud chcete předat tajný klíč ze služby Key Vault do šablony ve spravované aplikaci, musíte použít propojenou nebo vnořenou šablonu a odkazovat na službu Key Vault v parametrech pro propojenou nebo vnořenou šablonu. Zadejte ID prostředku služby Key Vault a název tajného kódu.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-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 key vault 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 key vault."
      }
    },
    "vaultSubscription": {
      "type": "string",
      "defaultValue": "[subscription().subscriptionId]",
      "metadata": {
        "description": "The name of the subscription that contains the key vault."
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Resources/deployments",
      "apiVersion": "2022-09-01",
      "name": "dynamicSecret",
      "properties": {
        "mode": "Incremental",
        "expressionEvaluationOptions": {
          "scope": "inner"
        },
        "template": {
          "$schema": "https://schema.management.azure.com/schemas/2019-04-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": "2022-05-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 službu Key Vault tak, aby byla přístupná během nasazení spravované aplikace.