Share via


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 het Azure-portaal.

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

    Schermopname van de Startpagina van Azure om een sleutelkluis te openen met behulp van zoeken of door sleutelkluis te selecteren.

  3. Selecteer De configuratie van Access.

    Schermopname van de sleutelkluisinstelling om de toegangsconfiguratie te selecteren.

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

    Schermopname van de toegangsconfiguratie van de sleutelkluis waarmee Azure Resource Manager kan worden geïmplementeerd voor sjabloonimplementatie.

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 de registratie controleren bij Microsoft Entra ID>Enterprise-toepassingen en het zoekfilter wijzigen in Microsoft-toepassingen. Zoek naar de resourceprovider van het apparaat. Als de service-principal 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.