Sdílet prostřednictvím


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íčů.

    Snímek obrazovky domovské stránky Azure pro otevření trezoru klíčů pomocí vyhledávání nebo výběru trezoru klíčů

  3. Vyberte konfiguraci accessu.

    Snímek obrazovky s nastavením trezoru klíčů pro výběr konfigurace přístupu

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

    Snímek obrazovky s konfigurací přístupu trezoru klíčů, která umožňuje azure Resource Manageru pro nasazení šablony

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 jeho registraci v podnikových aplikacích Microsoft Entra ID>a změnit filtr vyhledávání na Aplikace Microsoftu. Vyhledejte poskytovatele prostředků zařízení. Pokud se instanční objekt nenajde, zaregistrujte Microsoft.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 nasazování spravované aplikace.