Acceso al secreto de Key Vault al implementar Azure Managed Applications
Cuando tiene que pasar un valor seguro (por ejemplo, una contraseña) como un parámetro durante la implementación, puede recuperar el valor de Azure Key Vault. Para acceder a Key Vault cuando se implementa Managed Applications, debe conceder acceso a la entidad de servicio del proveedor de recursos de dispositivos. El servicio Managed Applications utiliza esta identidad para ejecutar operaciones. Para recuperar correctamente un valor de un almacén de claves durante la implementación, es necesario que la entidad de servicio pueda obtener acceso al almacén de claves.
En este artículo se describe cómo configurar Key Vault para que funcione con Managed Applications.
Habilitar la implementación de plantillas
Inicie sesión en Azure Portal.
Abra el almacén de claves. Escriba almacenes de claves en el cuadro de búsqueda o seleccione Almacenes de claves.
Seleccione Configuración de acceso.
Seleccione Azure Resource Manager para la implementación de plantillas. Luego, seleccione Aplicar.
Agregar servicio como colaborador
Asigne el rol de Colaborador al usuario del proveedor de recursos del dispositivo en el ámbito del almacén de claves. El rol Colaborador es un rol de administrador con privilegios para la asignación de roles. Para obtener los pasos detallados, consulte Asignación de roles de Azure mediante Azure Portal.
El Proveedor de recursos del dispositivo es una entidad de servicio en el inquilino de Microsoft Entra. En Azure Portal, puedes comprobar su registro en Microsoft Entra ID>Aplicaciones empresariales y cambia el filtro de búsqueda a Aplicaciones de Microsoft. Busque por proveedor de recursos de dispositivos. Si no se encuentra la entidad de servicio, registra el proveedor de recursos Microsoft.Solutions
.
Referencia a secreto de Key Vault
Para pasar un secreto desde Key Vault a una plantilla de la aplicación administrada, debe usar una plantilla vinculada o anidada y hacer referencia a Key Vault en los parámetros de la plantilla vinculada o anidada. Proporcione el identificador de recurso de Key Vault y el nombre del secreto.
{
"$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": {
}
}
Pasos siguientes
Has configurado Key Vault para que esté accesible durante la implementación de una aplicación administrada.
- Para obtener información sobre cómo pasar un valor de Key Vault como parámetro de plantilla, consulte Uso de Azure Key Vault para pasar el valor de parámetro seguro durante la implementación.
- Para obtener más información sobre la seguridad del almacén de claves, consulte Seguridad de Azure Key Vault y Autenticación en Azure Key Vault.
- Para ver ejemplos de aplicaciones administradas, consulte Ejemplos de proyectos para aplicaciones administradas de Azure.
- Para aprender a crear un archivo de definición de interfaz de usuario para una aplicación administrada, consulte Comenzar con CreateUiDefinition.