Toegang tot Key Vault-geheim bij het implementeren van door Azure beheerde toepassingen

Wanneer u tijdens de implementatie een veilige waarde (zoals een wachtwoord) als parameter moet doorgeven, kunt u de waarde ophalen uit een Azure Key Vault. Als u toegang wilt krijgen tot de Key Vault bij het implementeren van beheerde toepassingen, moet u toegang verlenen tot de service-principal van de resourceprovider van het apparaat. De service Beheerde toepassingen gebruikt deze identiteit om bewerkingen uit te voeren. Als u tijdens de implementatie een waarde uit een Key Vault wilt ophalen, moet de service-principal toegang hebben tot de Key Vault.

In dit artikel wordt beschreven hoe u key vault configureert voor gebruik met beheerde toepassingen.

Sjabloonimplementatie inschakelen

  1. Meld u aan bij de Azure-portal.

  2. Open uw sleutelkluis. Voer sleutelkluizen in het zoekvak in of selecteer Sleutelkluizen.

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

  3. Selecteer De configuratie van Access.

    Screenshot of the key vault setting to select access configuration.

  4. Selecteer Azure Resource Manager voor sjabloonimplementatie. Selecteer Vervolgens Toepassen.

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

Service toevoegen als inzender

Wijs de rol Inzender toe aan de gebruiker van de resourceprovider van het apparaat op het bereik van de sleutelkluis. De rol Inzender is een bevoorrechte beheerdersrol voor de roltoewijzing. Voor gedetailleerde stappen gaat u naar Azure-rollen toewijzen met behulp van Azure Portal.

De resourceprovider van het apparaat is een service-principal in uw Microsoft Entra-tenant. Vanuit Azure Portal kunt u controleren of deze is geregistreerd door naar Microsoft Entra ID>Enterprise-toepassingen te gaan en het zoekfilter te wijzigen in Microsoft-toepassingen. Zoek naar de resourceprovider van het apparaat. Als deze niet wordt gevonden, registreert u de Microsoft.Solutions resourceprovider.

Key Vault-geheim verwijzen

Als u een geheim van een Sleutelkluis wilt doorgeven aan een sjabloon in uw beheerde toepassing, moet u een gekoppelde of geneste sjabloon gebruiken en verwijzen naar de Key Vault in de parameters voor de gekoppelde of geneste sjabloon. Geef de resource-id van de sleutelkluis en de naam van het geheim op.

{
  "$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": {
  }
}

Volgende stappen

U hebt uw Key Vault zo geconfigureerd dat deze toegankelijk is tijdens de implementatie van een beheerde toepassing.