Åtkomst Key Vault hemlighet vid distribution av Azure Managed Applications
När du behöver skicka ett säkert värde (till exempel ett lösenord) som en parameter under distributionen kan du hämta värdet från en Azure Key Vault. Om du vill Key Vault när du distribuerar hanterade program måste du bevilja åtkomst till tjänstens huvudnamn för resursprovidern för installationen. Tjänsten Hanterade program använder den här identiteten för att köra åtgärder. För att ett värde ska kunna hämtas från Key Vault under distributionen måste tjänstens huvudnamn kunna komma åt Key Vault.
I den här artikeln beskrivs hur du konfigurerar Key Vault att fungera med hanterade program.
Aktivera malldistribution
I portalen väljer du Key Vault.
Välj Åtkomstprinciper.

Välj Click to show advanced access policies (Klicka för att visa avancerade åtkomstprinciper).

Välj Aktivera åtkomst till Azure Resource Manager för malldistribution. Välj sedan Spara.

Lägg till tjänst som deltagare
Tilldela rollen Deltagare till användaren av resursprovidern för installationen i nyckelvalvsomfånget.
Detaljerade anvisningar finns i Tilldela Azure-roller med hjälp av Azure Portal.
Referenshemlighet Key Vault referens
Om du vill skicka en hemlighet från en Key Vault till en mall i ditt hanterade program måste du använda en länkad eller kapslad mall och referera till Key Vault i parametrarna för den länkade eller kapslade mallen. Ange resurs-ID för Key Vault och namnet på hemligheten.
{
"$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": {
}
}
Nästa steg
Du har konfigurerat dina Key Vault vara tillgängliga under distributionen av ett hanterat program.
- Information om hur du skickar ett värde från Key Vault som en mallparameter finns i Använda Azure Key Vault för att skicka säkert parametervärde under distributionen.
- Exempel på hanterade program finns i Exempelprojekt för Azure-hanterade program.
- Se Kom igång med CreateUiDefinition för att lära dig om hur du skapar en UI-definitionsfil för ett hanterat program.