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
Accedi al portale di Azure.
Aprire l'insieme di credenziali delle chiavi. Immettere gli insiemi di credenziali delle chiavi nella casella di ricerca o selezionare Insiemi di credenziali delle chiavi.
Selezionare Configurazione di accesso.
Selezionare Azure Resource Manager per la distribuzione di modelli. Selezionare quindi Applica.
Aggiungere il servizio come collaboratore
Assegnare il ruolo Collaboratore all'utente del provider di risorse dell'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 i 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 se è registrato passando alle applicazioni Microsoft Entra ID>Enterprise e modificare il filtro di ricerca in Applicazioni Microsoft. Cercare Provider di risorse dell'appliance. Se non viene trovato, registrare il Microsoft.Solutions
provider di risorse.
Fare riferimento al segreto di Key Vault
Per passare un segreto da un insieme di credenziali delle chiavi a un modello nell'applicazione gestita, è necessario usare un modello collegato o annidato e fare riferimento all'insieme di credenziali delle chiavi 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 sul passaggio di un valore da un insieme di credenziali delle chiavi come parametro di modello, vedere Usare Azure Key Vault per passare il valore del parametro sicuro durante la distribuzione.
- Per altre informazioni sulla sicurezza dell'insieme di credenziali delle chiavi, vedere Sicurezza e autenticazione di Azure Key Vault in Azure Key Vault.
- Per esempi di applicazioni gestite, vedere Progetti di esempio per applicazioni gestite di Azure.
- Per informazioni su come creare un file di definizione dell'interfaccia utente per un'applicazione gestita, vedere Introduzione a CreateUiDefinition.