تأمين الوصول إلى HSM المُدار
تُعد Azure Key Vault Managed HSM خدمة سحابية تحمي مفاتيح التشفير. نظراً لأن هذه البيانات حساسة وحاسمة للأعمال، فأنت بحاجة إلى تأمين الوصول إلى وحدات HSM المدارة من خلال السماح فقط للتطبيقات والمستخدمين المصرح لهم بالوصول إليها. تقدم هذه المقالة نظرة عامة على نموذج التحكم يالوصول المُدار لوحدة HSM. يشرح المصادقة والتفويض، ويصف كيفية تأمين الوصول إلى HSMs المدارة.
سيرشدك هذا البرنامج التعليمي إلى مثال بسيط يوضح كيفية تحقيق فصل المهام والتحكم في الوصول باستخدام Azure RBAC وManaged HSM local RBAC. راجع التحكم في الوصول المُدار إلى HSM للتعرف على نموذج التحكم في الوصول المُدار لـ HSM.
المتطلبات الأساسية
لإكمال الخطوات الواردة في هذه المقالة، يجب أن تتوفر لديك العناصر التالية:
- اشتراك في منصة Microsoft Azure. إذا لم يكن لديك واحداً، يُمكنك الاشتراك في الإصدار التجريبي المجاني.
- الإصدار 2.25.0 من Azure CLI أو أحدث. قم بتشغيل
az --version
للعثور على الإصدار. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت Azure CLI. - إدارة HSM في اشتراكك. راجع Quickstart: Provision and activate a managed HSM using Azure CLI لتوفير HSM المُدار وتنشيطه.
Azure Cloud Shell
Azure يستضيف Azure Cloud Shell، بيئة تفاعلية يمكن استخدامها من خلال المستعرض. يمكنك استخدام Bash أو PowerShell مع Cloud Shell للعمل مع خدمات Azure. يمكنك استخدام أوامر Cloud Shell المثبتة مسبقًا لتشغيل التعليمات البرمجية في هذه المقالة دون الحاجة إلى تثبيت أي شيء على البيئة المحلية.
لبدء Azure Cloud Shell:
خيار | مثال/ رابط |
---|---|
انقر فوق جربه في الزاوية العلوية اليسرى من التعليمة البرمجية أو كتلة الأمر. تحديد جربه لا يقوم بنسخ التعليمة البرمجية أو الأمر تلقائيًا إلى Cloud Shell. | |
انتقل إلى https://shell.azure.com، أو حدد زر تشغيل Cloud Shell لفتح Cloud Shell في المتصفح لديك. | |
حدد زر Cloud Shell على شريط القوائم في أعلى اليمين في مدخل Microsoft Azure. |
لاستخدام Azure Cloud Shell:
ابدأ تشغيل Cloud Shell.
حدد الزر نسخ على كتلة التعليمات البرمجية (أو كتلة الأوامر) لنسخ التعليمات البرمجية أو الأمر.
ألصق التعليمة البرمجية أو الأمر في جلسة Cloud Shell بتحديد Ctrl+Shift+Vعلى Windows وLunix، أو بتحديد Cmd+Shift+Vعلى macOS.
حدد Enter لتشغيل التعليمات البرمجية أو الأمر.
تسجيل الدخول إلى Azure
لتسجيل الدخول إلى Azure باستخدام CLI يمكنك كتابة ما يلي:
az login
لمزيد من المعلومات حول خيارات تسجيل الدخول عبر واجهة سي إل آي، راجع تسجيل الدخول باستخدام "Azure CLI"
مثال
في هذا المثال، نقوم بتطوير تطبيق يستخدم مفتاح RSA 2,048 بت لعمليات التسجيل. يعمل تطبيقنا في جهاز ظاهري Azure (VM) بهوية مُدارة . يتم تخزين مفتاح RSA المستخدم للتوقيع في HSM المُدار لدينا.
لقد حددنا الأدوار التالية التي تدير وتنشر وتدقيق تطبيقنا:
- فريق الأمان : موظفو تكنولوجيا المعلومات من مكتب CSO (كبير مسؤولي الأمن) أو مساهمين مشابهين. فريق الأمن مسؤول عن حفظ المفاتيح بشكل صحيح. مفاتيح RSA أو EC للتوقيع، ومفاتيح RSA أو AES لتشفير البيانات.
- المطورون والمشغلون : الموظفون الذين يطورون التطبيق وينشرونه في Azure. أعضاء هذا الفريق ليسوا جزءاً من طاقم الأمن. لا ينبغي أن يكون لديهم حق الوصول إلى البيانات الحساسة مثل مفاتيح RSA. يجب أن يكون لدى التطبيق الذي يقومون بنشره حق الوصول إلى هذه البيانات الحساسة فقط.
- المدققون : هذا الدور مخصص للمساهمين الذين ليسوا أعضاءً في التطوير أو من فريق تقنية المعلومات العام. يراجعون استخدام وصيانة الشهادات والمفاتيح والأسرار لضمان الامتثال لمعايير الأمان.
هناك دور آخر خارج نطاق تطبيقنا: مسؤول الاشتراك (أو مجموعة الموارد). يقوم مسؤول الاشتراك بإعداد أذونات الوصول الأولية لفريق الأمان. أنها تمنح الوصول إلى فريق الأمان باستخدام مجموعة الموارد التي لديها الموارد المطلوبة من قبل التطبيق.
نحتاج إلى تفويض العمليات التالية لأدوارنا:
فريق الأمان
- إنشاء HSM المُدار.
- قم بتنزيل مجال أمان HSM المُدار (لمواجهة الكوارث)
- قم بتشغيل التسجيل.
- إنشاء أو استيراد مفاتيح
- إنشاء نُسخ HSM الاحتياطية المُدارة لمواجهة الكوارث.
- قم بتعيين RBAC المحلي المدار HSM لمنح الأذونات للمستخدمين والتطبيقات لعمليات محددة.
- قم بتدوير المفاتيح بشكل دوري.
المطورون والمشغلون
- احصل على مرجع (مفتاح URI) من فريق الأمان لمفتاح RSA المستخدم للتوقيع.
- قم بتطوير ونشر التطبيق الذي يصل إلى المفتاح برمجياً.
المدققون
- راجع تواريخ انتهاء صلاحية المفاتيح للتأكد من تحديث المفاتيح
- مراقبة تعيينات الأدوار للتأكد من أنه لا يمكن الوصول إلى المفاتيح إلا من قبل المستخدمين / التطبيقات المصرح لهم
- قم بمراجعة سجلات HSM المُدارة لتأكيد الاستخدام الصحيح للمفاتيح وفقاً لمعايير أمان البيانات.
يلخص الجدول التالي تعيينات الأدوار للفرق والموارد للوصول إلى HSM المُدار.
الدور | دور وحدة الإدارة | دور وحدة البيانات |
---|---|---|
فريق الأمان | مساهم HSM المدار | مسؤول HSM المُدار |
المطورون والمشغلون | بلا | بلا |
المدققون | بلا | مدقق تشفير HSM المُدار |
الهوية المُدارة للآلة الافتراضية التي يستخدمها التطبيق | بلا | مستخدم تشفير HSM المدار |
الهوية المُدارة لحساب التخزين المستخدم بواسطة التطبيق | بلا | تشفير خدمة HSM المُدار |
تحتاج أدوار الفريق الثلاثة إلى الوصول إلى موارد أخرى جنباً إلى جنب مع أذونات إدارة HSM. لنشر أجهزة ظاهرية (أو ميزة تطبيقات الويب في Azure App Service)، يحتاج المطورون والمشغلون إلى Contributor
الوصول إلى أنواع الموارد هذه. يحتاج المدققون إلى الوصول للقراءة إلى حساب التخزين حيث يتم تخزين سجلات HSM المُدارة.
لتعيين أدوار مستوى الإدارة (Azure RBAC)، يمكنك استخدام مدخل Microsoft Azure أو أي من واجهات الإدارة الأخرى مثل Azure CLI أو Azure PowerShell. لتعيين أدوار مستوى بيانات HSM المُدارة، يجب استخدام Azure CLI. لمزيد من المعلومات حول أدوار وحدة الإدارة، راجع أدوار Azure المضمنة. لمزيد من المعلومات حول أدوار وحدة بيانات HSM المدارة، راجع الأدوار المضمنة ل RBAC المحلي ل HSM المدار.
تم إنشاء مقتطفات Azure CLI في هذا القسم بالافتراضات التالية:
- أنشأ مسؤول Microsoft Entra مجموعات أمان لتمثيل الأدوار الثلاثة: Contoso Security Team وContoso App DevOps ومدققي تطبيقات Contoso. لقد أضاف المشرف المستخدمين إلى مجموعاتهم الخاصة.
- توجد جميع الموارد في مجموعة موارد ContosoAppRG.
- يتم تخزين سجلات HSM المُدارة في حساب التخزين contosologstorage.
- يقع كل من HSM المُدار بواسطة ContosoMHSM وحساب التخزين contosologstorage في نفس موقع Azure.
يقوم مسؤول الاشتراك بتعيين الدور Managed HSM Contributor
لفريق الأمان. يسمح هذا الدور لفريق الأمن بإدارة HSMs الحالية وإنشاء أخرى جديدة. إذا كان هناك HSMs حالية مُدارة، فسوف يحتاجون إلى تعيين دور "مسؤول HSM المُدار" حتى يتمكنوا من إدارتها.
# This role assignment allows Contoso Security Team to create new Managed HSMs
az role assignment create --assignee-object-id $(az ad group show -g 'Contoso Security Team' --query 'id' -o tsv) --assignee-principal-type Group --role "Managed HSM Contributor"
# This role assignment allows Contoso Security Team to become administrator of existing managed HSM
az keyvault role assignment create --hsm-name ContosoMHSM --assignee $(az ad group show -g 'Contoso Security Team' --query 'id' -o tsv) --scope / --role "Managed HSM Administrator"
يقوم فريق الأمان بإعداد التسجيل وتعيين الأدوار للمدققين وتطبيق VM.
# Enable logging
hsmresource=$(az keyvault show --hsm-name ContosoMHSM --query id -o tsv)
storageresource=$(az storage account show --name contosologstorage --query id -o tsv)
az monitor diagnostic-settings create --name MHSM-Diagnostics --resource $hsmresource --logs '[{"category": "AuditEvent","enabled": true}]' --storage-account $storageresource
# Assign the "Crypto Auditor" role to Contoso App Auditors group. It only allows them to read.
az keyvault role assignment create --hsm-name ContosoMHSM --assignee $(az ad group show -g 'Contoso App Auditors' --query 'objectId' -o tsv) --scope / --role "Managed HSM Crypto Auditor"
# Grant the "Crypto User" role to the VM's managed identity. It allows to create and use keys.
# However it cannot permanently delete (purge) keys
az keyvault role assignment create --hsm-name ContosoMHSM --assignee $(az vm identity show --name "vmname" --resource-group "ContosoAppRG" --query objectId -o tsv) --scope / --role "Managed HSM Crypto Auditor"
# Assign "Managed HSM Crypto Service Encryption User" role to the Storage account ID
storage_account_principal=$(az storage account show --id $storageresource --query identity.principalId -o tsv)
# (if no identity exists), then assign a new one
[ "$storage_account_principal" ] || storage_account_principal=$(az storage account update --assign-identity --id $storageresource)
az keyvault role assignment create --hsm-name ContosoMHSM --role "Managed HSM Crypto Service Encryption User" --assignee $storage_account_principal
يعرض هذا البرنامج التعليمي فقط الإجراءات ذات الصلة بالتحكم في الوصول بالنسبة للجزء الأكبر. لا تظهر هنا الإجراءات والعمليات الأخرى المتعلقة بنشر التطبيق في الجهاز الظاهري الخاص بك، وتشغيل التشفير باستخدام المفتاح المُدار من قِبل العميل لحساب التخزين، وإنشاء HSM المُدار للحفاظ على تركيز المثال على التحكم في الوصول وإدارة الأدوار.
مثالنا يصف سيناريو بسيطاً. يمكن أن تكون سيناريوهات الحياة الواقعية أكثر تعقيداً. يمكنك تعديل الأذونات لمخزن المفاتيح الخاص بك بناءً على احتياجاتك. لقد افترضنا أن فريق الأمان يوفر المراجع الرئيسية والسرية (عناوين URIs وبصمات الإبهام)، والتي يستخدمها فريق DevOps في تطبيقاتهم. لا يحتاج المطورون والمشغلون إلى أي وصول إلى مستوى البيانات. ركزنا على كيفية تأمين خزنة المفاتيح الخاصة بك. أعط نفس الاهتمام عند تأمين الأجهزة الافتراضية و حسابات التخزين وموارد Azure الأخرى.
الموارد
- مستندات Azure للتحكم في الوصول استناداً إلى الأدوار (RBAC)
- Azure RBAC: أدوار مضمنة
- إدارة Azure RBAC باستخدام Azure CLI
الخطوات التالية
للحصول على برنامج تعليمي حول الخطوات الأولى للمسؤول، راجع ما هو HSM المُدار؟.
لمزيد من المعلومات حول تسجيل الاستخدام لتسجيل HSM المُدار، راجع تسجيل HSM المُدار .