الوصول إلى سر مخزن المفاتيح عند نشر تطبيقات Azure المُدارة
عندما تحتاج إلى تمرير قيمة آمنة (مثل كلمة المرور) كمعامل أثناء النشر، يمكنك استرداد القيمة من Azure Key Vault . للوصول إلى Key Vault عند نشر التطبيقات المُدارة، يجب منح حق الوصول إلى مدير خدمة موفر موارد الأجهزة . تستخدم خدمة التطبيقات المُدارة هذه الهوية لتشغيل العمليات. لاسترداد قيمة بنجاح من Key Vault أثناء النشر، يجب أن يكون مدير الخدمة قادراً على الوصول إلى Key Vault.
توضح هذه المقالة كيفية تكوين Key Vault للعمل مع التطبيقات المُدارة.
تفعيل نشر النموذج
سجل الدخول إلى مدخل Azure.
افتح مخزن المفاتيح. أدخل مخازن المفاتيح في مربع البحث أو حدد Key vaults.
حدد Access configuration.
حدد Azure Resource Manager for template deployment. ثم، حدد Apply.
أضف الخدمة كمساهم
عيّن دور المساهم لمستخدم موفر موارد الأجهزة في نطاق المخزن الأساسي. دور المساهم هو دور مسؤول متميز لتعيين الدور. للحصول على خطوات مفصلة، انتقل إلى تعيين أدوار Azure باستخدام مدخل Microsoft Azure.
موفر موارد الأجهزة هو كيان خدمة في مستأجر Microsoft Entra. من مدخل Microsoft Azure، يمكنك التحقق مما إذا كان مسجلا بالانتقال إلى تطبيقات Microsoft Entra ID>Enterprise وتغيير عامل تصفية البحث إلى تطبيقات Microsoft. ابحث عن Appliance Resource Provider. إذا لم يتم العثور عليه، فسجل موفر الموارد Microsoft.Solutions
.
مرجع Key Vault secret
لتمرير سر من Key Vault إلى نموذج في التطبيق المُدار الخاص بك، يجب عليك استخدام نموذج مرتبط أو متداخل والإشارة إلى Key Vault في معلمات النموذج المرتبط أو المتداخل. أدخل معرف المورد لـ Key Vault واسم السر.
{
"$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": {
}
}
الخطوات التالية
لقد قمت بتكوين Key Vault بحيث يمكن الوصول إليه أثناء نشر تطبيق مُدار.
- للحصول على معلومات حول تمرير قيمة من Key Vault كمعلمة قالب، انتقل إلى استخدام Azure Key Vault لتمرير قيمة معلمة آمنة أثناء النشر.
- لمعرفة المزيد حول أمان key vault، انتقل إلى أمان Azure Key Vault والمصادقة في Azure Key Vault.
- للحصول على أمثلة التطبيقات المدارة، انتقل إلى نماذج المشاريع لتطبيقات Azure المدارة.
- لمعرفة كيفية إنشاء ملف تعريف واجهة المستخدم لتطبيق مدار، انتقل إلى بدء استخدام CreateUiDefinition.