قم بتكوين المفاتيح المُدارة بواسطة العميل لحساب Azure Batch الخاص بك باستخدام Azure Key Vault وManaged Identity
بشكل افتراضي، يستخدم Azure Batch المفاتيح المُدارة بواسطة النظام الأساسي لتشفير جميع بيانات العميل المخزنة في Azure Batch Service، مثل الشهادات وبيانات تعريف المهمة/ المهمة. اختياريا، يمكنك استخدام المفاتيح الخاصة بك، أي المفاتيح التي يديرها العميل، لتشفير البيانات المخزنة في Azure Batch.
يجب إنشاء المفاتيح التي تقدمها في Azure Key Vault، ويجب الوصول إليها باستخدام الهويات المُدارة لموارد Azure.
هناك نوعان من الهويات المدارة: مخصص من قِبَل النظام ومخصص من قِبَل المستخدم.
يمكنك إما إنشاء حساب Batch الخاص بك باستخدام الهوية المدارة المعينة من قبل النظام، أو إنشاء هوية مدارة منفصلة يعينها المستخدم لها حق الوصول إلى المفاتيح التي يديرها العميل. راجع جدول المقارنة لفهم الاختلافات وتحديد الخيار الأفضل لحلك. على سبيل المثال، إذا كنت تريد استخدام نفس الهوية المدارة للوصول إلى موارد Azure متعددة، يلزم وجود هوية مدارة يعينها المستخدم. إذا لم يكن الأمر كذلك، فقد تكون الهوية المُدارة المعينة من قِبل النظام، والمرتبطة بحساب Batch الخاص بك كافية. يمنحك استخدام هوية مدارة معينة من قبل المستخدم أيضا خيار فرض المفاتيح المدارة من قبل العميل عند إنشاء حساب Batch، كما هو موضح بعد ذلك.
قم بإنشاء حساب Batch بهوية مُدارة مُعينة من قِبل النظام
إذا لم تكن بحاجة إلى هوية مُدارة منفصلة عن طريق المستخدم، فيمكنك تمكين الهوية المُدارة المعينة من قِبل النظام عند إنشاء حساب Batch الخاص بك.
هام
لا يمكن استخدام هوية مدارة معينة من قبل النظام تم إنشاؤها لحساب Batch لتشفير بيانات العميل كما هو موضح في هذا المستند كهوية مدارة يعينها المستخدم على تجمع Batch. إذا كنت ترغب في استخدام نفس الهوية المدارة على كل من حساب Batch وتجمع Batch، فاستخدم هوية مدارة مشتركة يعينها المستخدم بدلا من ذلك.
مدخل Azure
في مدخل Microsoft Azure، عند إنشاء حسابات مجمعة، اختر System assigned في نوع الهوية ضمن علامة التبويب خيارات متقدمة.
بعد إنشاء الحساب، يمكنك العثور على GUID فريد في حقل معرف الهوية الأساسي ضمن قسم Properties. سيظهر نوع الهوية System assigned
.
تحتاج إلى هذه القيمة لمنح حساب Batch هذا حق الوصول إلى Key Vault.
Azure CLI
عندما تقوم بإنشاء حساب دفعة جديد، حدد SystemAssigned
للمعلمة --identity
.
resourceGroupName='myResourceGroup'
accountName='mybatchaccount'
az batch account create \
--name $accountName \
--resource-group $resourceGroupName \
--locations regionName='West US 2' \
--identity 'SystemAssigned'
بعد إنشاء الحساب، يمكنك التحقق من تمكين الهوية المُدارة المعينة من قِبل النظام على هذا الحساب. تأكد من ملاحظة PrincipalId
، حيث إن هذه القيمة مطلوبة لمنح حساب Batch هذا حق الوصول إلى Key Vault.
az batch account show \
--name $accountName \
--resource-group $resourceGroupName \
--query identity
إشعار
يتم استخدام الهوية المُدارة التي يخصصها النظام والتي تم إنشاؤها في حساب Batch، فقط لاسترداد المفاتيح المُدارة من قِبل العميل من Key Vault. هذه الهوية غير متوفرة في مجمعات Batch. لاستخدام هوية مُدارة عيّنها المستخدم في مستودع، راجع تكوين الهويات المُدارة في تجمعات Batch.
إنشاء هوية مُدارة يعينها المستخدم
إذا كنت تفضل ذلك، يمكنك إنشاء هوية مدارة معينة من قبل المستخدم يمكن استخدامها للوصول إلى المفاتيح التي يديرها العميل.
تحتاج إلى قيمة معرف العميل لهذه الهوية حتى تتمكن من الوصول إلى Key Vault.
قم بتكوين مثيل Azure Key Vault
يجب إنشاء Azure Key Vault الذي يتم إنشاء مفاتيحك فيه في نفس المستأجر مثل حساب Batch الخاص بك. لا تحتاج إلى أن تكون في نفس مجموعة الموارد أو حتى في نفس الاشتراك.
إنشاء Azure Key Vault
عند إنشاء مثيل Azure Key Vault باستخدام مفاتيح يديرها العميل لـ Azure Batch، تأكد من تمكين كل من حذف ناعم وحماية التطهير.
أضف نهج وصول إلى مثيل Azure Key Vault
في مدخل Microsoft Azure، بعد إنشاء Key Vault، في نهج الوصولضمنSetting، أضف الوصول إلى الحساب المجمَّع باستخدام الهوية المُدارة. ضمن أذونات المفاتيح، حددGet وWrap Key وUnwrap Key.
في الحقل تحديد ضمن الرئيسي، قم بملء أحد الخيارات التالية:
- بالنسبة للهوية المُدارة المخصصة من قِبل النظام: أدخل
principalId
الذي استردته مسبقاً، أو اسم حساب الدُفعة. - بالنسبة للهوية المُدارة التي يعينها المستخدم: أدخل معرّف العميل الذي استردته مسبقاً، أو اسم الهوية المُدارة التي عيّنها المستخدم.
قم بإنشاء مفتاح في Azure Key Vault
في مدخل Microsoft Azure، انتقل إلى مثيل Key Vault في قسم key، وحدد Generate/Import. حدد Key Type ليكون RSA
وحجم مفتاح RSA ليكون 2048
بت على الأقل. أنواع المفاتيحEC
غير مدعومة حالياً كمفتاح يديره العميل في حساب دفعة.
بعد إنشاء المفتاح، انقر فوق المفتاح الذي تم إنشاؤه حديثاً والإصدار الحالي، وانسخ Key Identifier ضمن قسم properties. تأكد من أنه ضمن العمليات المسموح بها، يتم تحديد مفتاح الالتفاف ومفتاح فك الالتفاف.
قم بتمكين المفاتيح المُدارة بواسطة العميل على حساب Batch
الآن بعد أن أصبحت المتطلبات الأساسية في مكانها الصحيح، يمكنك تمكين المفاتيح المدارة من قبل العملاء على حساب Batch الخاص بك.
مدخل Azure
في مدخل Microsoft Azure، انتقل إلى صفحة الحساب المجمع. ضمن قسم Encryption، قم بتمكين المفتاح المُدار من قِبل العميل. يمكنك استخدام Key Identifier مباشرةً، أو يمكنك تحديد خزنة المفاتيح ثم النقر فوق Select a key vault and key.
Azure CLI
بعد إنشاء حساب Batch بهوية مُدارة مُعيَّنة من قِبل النظام، ومنح حق الوصول إلى Key Vault، قم بتحديث حساب Batch باستخدام {Key Identifier}
URL ضمنkeyVaultProperties
parameter. قم أيضا بتعيين --encryption-key-source
ك Microsoft.KeyVault
.
az batch account set \
--name $accountName \
--resource-group $resourceGroupName \
--encryption-key-source Microsoft.KeyVault \
--encryption-key-identifier {YourKeyIdentifier}
قم بإنشاء حساب Batch بهوية مُدارة مُعيَّنة من قِبل المستخدم، ومفاتيح مُدارة بواسطة العميل
كمثال باستخدام عميل .NET لإدارة الدفعات، يمكنك إنشاء حساب Batch يحتوي على هوية مدارة معينة من قبل المستخدم ومفاتيح يديرها العميل.
string subscriptionId = "Your SubscriptionID";
string resourceGroupName = "Your ResourceGroup name";
var credential = new DefaultAzureCredential();
ArmClient _armClient = new ArmClient(credential);
ResourceIdentifier resourceGroupResourceId = ResourceGroupResource.CreateResourceIdentifier(subscriptionId, resourceGroupName);
ResourceGroupResource resourceGroupResource = _armClient.GetResourceGroupResource(resourceGroupResourceId);
var data = new BatchAccountCreateOrUpdateContent(AzureLocation.EastUS)
{
Encryption = new BatchAccountEncryptionConfiguration()
{
KeySource = BatchAccountKeySource.MicrosoftKeyVault,
KeyIdentifier = new Uri("Your Key Azure Resource Manager Resource ID"),
},
Identity = new ManagedServiceIdentity(ManagedServiceIdentityType.UserAssigned)
{
UserAssignedIdentities = {
[new ResourceIdentifier("Your Identity Azure Resource Manager ResourceId")] = new UserAssignedIdentity(),
},
}
};
var lro = resourceGroupResource.GetBatchAccounts().CreateOrUpdate(WaitUntil.Completed, "Your BatchAccount name", data);
BatchAccountResource batchAccount = lro.Value;
تحديث إصدار المفتاح المُدار بواسطة العميل
عند إنشاء إصدار جديد من المفتاح، قم بتحديث حساب Batch لاستخدام الإصدار الجديد. اتبع الخطوات التالية:
- انتقل إلى حساب Batch الخاص بك في مدخل Microsoft Azure واعرض إعدادات التشفير.
- أدخل عنوان URL لإصدار المفتاح الجديد. بالتناوب، يمكنك تحديد Key Vault والمفتاح مرة أخرى لتحديث الإصدار.
- احفظ تغييراتك.
يمكنك أيضاً استخدام Azure CLI لتحديث الإصدار.
az batch account set \
--name $accountName \
--resource-group $resourceGroupName \
--encryption-key-identifier {YourKeyIdentifierWithNewVersion}
تلميح
يمكنك إجراء استدارة تلقائية لمفاتيحك عن طريق إنشاء نهج تدوير المفتاح داخل Key Vault. عند تحديد معرف مفتاح لحساب Batch، استخدم معرف المفتاح بدون إصدار لتمكين التشغيل التلقائي باستخدام نهج تدوير صالح. لمزيد من المعلومات، راجع كيفية تكوين تدوير المفتاح في Key Vault.
استخدم مفتاحاً مختلفاً لتشفير Batch
لتغيير المفتاح المستخدم لتشفير Batch، اتبع الخطوات التالية:
- انتقل إلى حساب Batch الخاص بك، واعرض إعدادات التشفير.
- أدخل URI للمفتاح الجديد. بالتناوب، يمكنك تحديد Key Vault واختيار مفتاح جديد.
- احفظ تغييراتك.
يمكنك أيضاً استخدام Azure CLI لاستخدام مفتاح مختلف.
az batch account set \
--name $accountName \
--resource-group $resourceGroupName \
--encryption-key-identifier {YourNewKeyIdentifier}
الأسئلة الشائعة
- هل المفاتيح المُدارة بواسطة العميل مدعومة لحسابات Batch الحالية؟ لا. لا يتم دعم المفاتيح التي يديرها العميل إلا لحسابات Batch الجديدة.
- هل يمكنني تحديد أحجام مفاتيح RSA أكبر من 2048 بت؟ نعم، يتم أيضاً دعم أحجام مفاتيح RSA من
3072
و4096
بت. - ما العمليات المتاحة بعد إبطال المفتاح الذي يديره العميل؟ العملية الوحيدة المسموح بها هي حذف الحساب إذا فقدت Batch الوصول إلى المفتاح الذي يديره العميل.
- كيف يمكنني استعادة الوصول إلى حساب Batch الخاص بي إذا قمت بحذف مفتاح Key Vault عن طريق الخطأ؟ نظراً لتمكين الحماية من التطهير والحذف المبدئي، يمكنك استعادة المفاتيح الحالية. لمزيد من المعلومات، راجع استرداد Azure Key Vault.
- هل يمكنني تعطيل المفاتيح التي يديرها العميل؟ يمكنك إعادة تعيين نوع التشفير لحساب Batch إلى "المفتاح المُدار من Microsoft" في أي وقت. يمكنك حذف المفتاح أو تغييره بعد ذلك.
- كيف يمكنني تدوير مفاتيحي؟ لا يتم تدوير المفاتيح التي يديرها العميل تلقائيا ما لم يكن المفتاح بدون إصدار مع تعيين نهج تدوير المفتاح المناسب داخل Key Vault. لتدوير المفتاح يدويا، قم بتحديث معرف المفتاح المقترن بالحساب.
- بعد استعادة الوصول، ما المدة التي سيستغرقها حساب Batch مرة أخرى؟ قد يستغرق الوصول إلى الحساب مرة أخرى ما يصل إلى 10 دقائق بمجرد استعادة الوصول.
- أثناء عدم توفر الحساب المجمَّع، ماذا يحدث لمواردي؟ سيستمر تشغيل أي تجمعات نشطة عند فقدان الوصول الدفعي إلى المفتاح المدار من قبل العميل. ومع ذلك، ستنتقل العقد في هذه التجمعات إلى حالة غير متوفرة، وستتوقف المهام عن التشغيل (وستتم إعادة وضعها في قائمة الانتظار). بمجرد استعادة الوصول، تصبح العقد متاحة مرة أخرى، وتتم إعادة تشغيل المهام.
- هل تنطبق آلية التشفير هذه على أقراص VM في تجمع Batch؟ لا. بالنسبة لمجمعات تكوين الخدمات السحابية (التي تم إيقافها)، لا يتم تطبيق أي تشفير لنظام التشغيل والقرص المؤقت. بالنسبة لتجمعات تكوين الجهاز الظاهري، يتم تشفير نظام التشغيل وأي أقراص بيانات محددة باستخدام مفتاح مدار بواسطة النظام الأساسي ل Microsoft بشكل افتراضي. حاليا، لا يمكنك تحديد المفتاح الخاص بك لهذه الأقراص. لتشفير القرص المؤقت لـ VMs لمجموعة Batch باستخدام مفتاح مدار بنظام Microsoft الأساسي، يجب عليك تمكين خاصية diskEncryptionConfiguration في تجمع Virtual Machine Configuration. بالنسبة للبيئات شديدة الحساسية، نوصي بتمكين تشفير القرص المؤقت، وتجنب تخزين البيانات الحساسة على نظام التشغيل وأقراص البيانات. لمزيد من المعلومات، راجع إنشاء تجمع مع تمكين تشفير القرص
- هل الهوية المُدارة المعينة من قِبل النظام في حساب الدُفعة متاحة على عُقد الحوسبة؟ لا. يتم استخدام الهوية المُدارة المعينة من قِبل النظام حالياً فقط للوصول إلى Azure Key Vault للمفتاح المُدار بواسطة العميل. لاستخدام هوية مُدارة يعينها المستخدم في عُقد الحوسبة، راجع تكوين الهويات المُدارة في تجمعات Batch.
الخطوات التالية
- تعرف على المزيد حول أفضل ممارسات الأمان في Azure Batch.
- تعرف على المزيد حول Azure Key Vault.