Segreto di accesso di Key Vault quando si distribuiscono le Applicazioni gestite di Azure
Quando è necessario passare un valore protetto (ad esempio una password) come parametro durante la distribuzione, è possibile recuperare il valore da Azure Key Vault. Per accedere a Key Vault durante la distribuzione delle applicazione gestite è necessario concedere l'accesso all'entità servizio Provider di risorse di Appliance. Il servizio Applicazioni gestite usa questa identità per eseguire le operazioni. Per recuperare correttamente un valore da un insieme di credenziali delle chiavi durante la distribuzione, l'entità servizio deve essere in grado di accedere all'insieme di credenziali delle chiavi.
Questo articolo descrive come configurare Key Vault per lavorare con le applicazioni gestite.
Abilitare la distribuzione di modelli
Accedere al portale di Azure.
Aprire l'insieme di credenziali delle chiavi. Immettere insiemi di credenziali delle chiavi nella casella di ricerca oppure selezionare Insiemi di credenziali delle chiavi.
Selezionare Configurazione accesso.
Selezionare Azure Resource Manager per la distribuzione modelli. Selezionare quindi Applica.
Aggiungere il servizio come collaboratore
Assegnare il ruolo Collaboratore all'utente del Provider di risorse Appliance nell'ambito dell'insieme di credenziali delle chiavi. Il ruolo Collaboratore è un ruolo di amministratore con privilegi per l'assegnazione di ruolo. Per la procedura dettagliata, vedere Assegnare ruoli di Azure usando il portale di Azure.
Il Provider di risorse appliance è un'entità servizio nel tenant di Microsoft Entra. Dal portale di Azure è possibile verificare la registrazione passando a Microsoft Entra ID>Applicazioni aziendali e impostando il filtro di ricerca su Applicazioni Microsoft. Cercare Provider di risorse appliance. Se l'entità servizio non viene trovata, registrare provider di risorse Microsoft.Solutions
.
Fare riferimento al segreto di Key Vault
Per passare un segreto da un'istanza di Key Vault a un modello nell'applicazione gestita, è necessario usare un modello collegato o annidato e fare riferimento a Key Vault nei parametri per il modello collegato o annidato. Fornire l'ID risorsa di Key Vault e il nome del segreto.
{
"$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": {
}
}
Passaggi successivi
Key Vault è stato configurato per essere accessibile durante la distribuzione di un'applicazione gestita.
- Per informazioni su come passare un valore da un Key Vault come parametro del modello, vedere Usare Azure Key Vault per passare valori di parametro protetti durante la distribuzione.
- Per altre informazioni sulla sicurezza dell'insieme di credenziali delle chiavi, vedere Sicurezza di Azure Key Vault e Autenticazione in Azure Key Vault.
- Per esempi di applicazioni gestite, vedere Progetti di esempio per applicazioni gestite di Azure.
- Per informazioni sulla creazione di un file di definizione dell'interfaccia utente per un'applicazione gestita, vedere Introduzione a CreateUiDefinition.