قم بتكوين الهويات المدارة لموارد Azure على Azure VM باستخدام Azure CLI
الهويات المدارة لموارد Azure هي ميزة من ميزات معرف Microsoft Entra. تخضع كل من خدمات Azure التي تدعم الهويات المدارة لموارد Azure إلى المخطط الزمني الخاص بها. تأكد من مراجعة توافر الهويات المدارة للمورد والمشكلات المعروفة قبل البدء.
توفر الهويات المدارة لموارد Azure خدمات Azure بهوية مدارة تلقائيا في Microsoft Entra ID. يمكنك استخدام هذه الهوية للمصادقة على أي خدمة تدعم مصادقة Microsoft Entra، دون وجود بيانات اعتماد في التعليمات البرمجية الخاصة بك.
في هذه المقالة، باستخدام Azure CLI، ستتعلم كيفية تنفيذ الهويات المدارة التالية لعمليات موارد Azure على Azure VM:
- تمكين وتعطيل الهوية المدارة المعينة من قبل النظام على Azure VM
- إضافة وإزالة هوية مُدارة يعينها المستخدم على Azure VM
إذا لم يكن لديك حساب Azure بالفعل، فقم بالتسجيل للحصول على حساب مجاني قبل المتابعة.
المتطلبات الأساسية
- إذا كنت غير معتاد على الهويات المدارة للموارد Azure، فانظر ما هي الهويات المدارة لموارد Azure؟. للتعرف على أنواع الهويات المُدارة التي يعيّنها النظام ويعينها المستخدم، راجع أنواع الهويات المُدارة.
استخدم بيئة Bash في Azure Cloud Shell. لمزيد من المعلومات، راجع التشغيل السريع ل Bash في Azure Cloud Shell.
إذا كنت تفضل تشغيل أوامر مرجع CLI محلياً قم بتثبيت CLI Azure. إذا كنت تعمل على نظام تشغيل Windows أو macOS، ففكر في تشغيل Azure CLI في حاوية Docker. لمزيد من المعلومات، راجع كيفية تشغيل Azure CLI في حاوية Docker.
إذا كنت تستخدم تثبيت محلي، يُرجى تسجيل الدخول إلى Azure CLI مستخدمًا أمر az login. لإنهاء عملية المصادقة، اتبع الخطوات المعروضة في جهازك. للحصول على خيارات أخرى لتسجيل دخول، راجع تسجيل الدخول باستخدام Azure CLI.
عندما يُطلب منك، قم بتثبيت ملحق Azure CLI عند الاستخدام لأول مرة. لمزيد من المعلومات بشأن الامتدادات، راجع استخدام امتدادات مع Azure CLI.
يُرجى تشغيل إصدار az للوصول إلى الإصدار والمكتبات التابعة التي تم تثبيتها. للتحديث لآخر إصدار، يُرجى تشغيل تحديث az.
الهوية المُدارة التي يُعيّنها النظام
في هذا القسم، ستتعرف على كيفية تمكين وتعطيل الهوية المُدارة المعينة من قبل النظام على Azure VM باستخدام Azure CLI.
تمكين الهوية المُدارة المعينة من قبل النظام أثناء إنشاء Azure VM
لإنشاء Azure VM مع تمكين الهوية المُدارة المعينة من قِبَل النظام، يحتاج حسابك إلى تعيين الدور Virtual Machine Contributor. لا يلزم تعيينات دور دليل Microsoft Entra أخرى.
قم بإنشاء مجموعة الموارد للاحتواء ونشر VM والموارد المرتبطة بها، وذلك باستخدام az group create. يمكنك تخطي هذه الخطوة إذا كانت لديك بالفعل مجموعة موارد ترغب في استخدامها بدلاً من ذلك:
az group create --name myResourceGroup --location westus
قم بإنشاء جهاز ظاهري باستخدام az vm create. يقوم المثال التالي بإنشاء VM باسم myVM بهوية مُدارة من قبل النظام، كما هو مطلوب بواسطة المعلمة
--assign-identity
مع المحدد--role
و--scope
. تحدد المعلمات--admin-username
و--admin-password
اسم المستخدم الإداري وكلمة المرور لحساب تسجيل الدخول بالجهاز الظاهري. قم بتحديث هذه القيم بما يتناسب مع بيئتك:az vm create --resource-group myResourceGroup --name myVM --image win2016datacenter --generate-ssh-keys --assign-identity --role contributor --scope mySubscription --admin-username azureuser --admin-password myPassword12
تمكين الهوية المُدارة المعينة من قبل النظام على Azure VM موجود
لتمكين الهوية المُدارة المعينة من قبل النظام على جهاز ظاهري، يحتاج حسابك إلى تعيين دور Virtual Machine Contributor. لا يلزم تعيينات دور دليل Microsoft Entra أخرى.
إذا كنت تستخدم Azure CLI في وحدة تحكم محلية، فقم أولاً بتسجيل الدخول إلى Azure باستخدام az login. استخدم حساباً مرتبطاً باشتراك Azure الذي يحتوي على الجهاز الظاهري.
az login
استخدم az vm identity assign مع الأمر
identity assign
لتمكين الهوية المعينة من قبل النظام لجهاز ظاهري موجود:az vm identity assign -g myResourceGroup -n myVm
تعطيل الهوية المعينة من قبل النظام من Azure VM
إلى تعطيل هوية المعينة نظام إدارتها على VM، حسابك يحتاج الجهاز الظاهري مساهم تعيين الدور. لا يلزم تعيينات دور دليل Microsoft Entra أخرى.
إذا كان لديك جهاز ظاهري لم يعد بحاجة إلى الهوية المعينة من قبل النظام، ولكنه لا يزال بحاجة إلى هويات مخصصة للمستخدم، فاستخدم الأمر التالي:
az vm update -n myVM -g myResourceGroup --set identity.type='UserAssigned'
إذا كان لديك جهاز ظاهري لم يعد بحاجة إلى هوية مخصصة للنظام ولم يعد له هويات معينة من قبل المستخدم، فاستخدم الأمر التالي:
إشعار
القيمة none
حساسة لحالة الأحرف. يجب أن تكون صغيرة.
az vm update -n myVM -g myResourceGroup --set identity.type="none"
الهوية المُدارة التي يعيّنها المُستخدم
في هذا القسم، ستتعلم كيفية إضافة وإزالة هوية مُدارة يعينها المستخدم من Azure VM باستخدام Azure CLI. إذا قمت بإنشاء هوية مُدارة مخصصة للمستخدم في RG مختلف عن جهاز VM الخاص بك. سيتعين عليك استخدام عنوان URL الخاص بهويتك المدارة لتعيينها لجهاز VM الخاص بك. على سبيل المثال:
--identities "/subscriptions/<SUBID>/resourcegroups/<RESROURCEGROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER_ASSIGNED_ID_NAME>"
قم بتعيين هوية مُدارة يعينها المستخدم أثناء إنشاء Azure VM
لتعيين هوية مخصصة للمستخدم إلى جهاز ظاهري أثناء إنشائه، يحتاج حسابك إلى تعيينات الأدوار Virtual Machine Contributor و Managed Identity Operator . لا يلزم تعيينات دور دليل Microsoft Entra أخرى.
يمكنك تخطي هذه الخطوة إذا كان لديك بالفعل مجموعة موارد ترغب في استخدامها. قم بإنشاء مجموعة موارد لاحتواء ونشر الهوية المُدارة التي حددها المستخدم، باستخدام az group create. تأكد من استبدال قيم معلمات
<RESOURCE GROUP>
و<LOCATION>
بقيمك الخاصة. :az group create --name <RESOURCE GROUP> --location <LOCATION>
قم بإنشاء هوية يديرها المستخدم باستخدام az identity create. تحدد المعلمة
-g
مجموعة الموارد حيث يتم إنشاء الهوية المُدارة التي يعينها المستخدم، وتحدد المعلمة-n
اسمها.هام
عند إنشاء الهويات المُدارة التي يحددها المستخدم، يتم دعم الأحرف الأبجدية الإنجليزية الرقمية (0-9، وa-z، وA-Z) والواصلة (-) فقط. لكي يعمل التعيين إلى جهاز ظاهري أو مقياس جهاز ظاهري للعمل بشكل صحيح، يقتصر الاسم على 24 حرفًا. لمزيد من المعلومات، راجع "الأسئلة المتداولة والمشكلات المعروفة".
az identity create -g myResourceGroup -n myUserAssignedIdentity
تحتوي الاستجابة على تفاصيل عن الهوية المُدارة التي تم إنشاؤها بواسطة المستخدم، على غرار ما يلي. يتم استخدام قيمة معرف المورد المعينة للهوية المُدارة التي عيّنها المستخدم في الخطوة التالية.
{ "clientId": "73444643-8088-4d70-9532-c3a0fdc190fz", "clientSecretUrl": "https://control-westcentralus.identity.azure.net/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<myUserAssignedIdentity>/credentials?tid=5678&oid=9012&aid=73444643-8088-4d70-9532-c3a0fdc190fz", "id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>", "location": "westcentralus", "name": "<USER ASSIGNED IDENTITY NAME>", "principalId": "e5fdfdc1-ed84-4d48-8551-fe9fb9dedfll", "resourceGroup": "<RESOURCE GROUP>", "tags": {}, "tenantId": "733a8f0e-ec41-4e69-8ad8-971fc4b533bl", "type": "Microsoft.ManagedIdentity/userAssignedIdentities" }
قم بإنشاء جهاز ظاهري باستخدام az vm create. يُنشئ المثال التالي جهاز ظاهري مقترناً بالهوية الجديدة المعينة من قِبل المستخدم، كما هو محدد بواسطة المعلمة
--assign-identity
مع المحدد--role
و--scope
. تأكد من استبدال قيم المعلمات<RESOURCE GROUP>
و<VM NAME>
و<USER NAME>
و<PASSWORD>
و<USER ASSIGNED IDENTITY NAME>
و<ROLE>
و<SUBSCRIPTION>
بقيمك الخاصة.az vm create --resource-group <RESOURCE GROUP> --name <VM NAME> --image <SKU linux image> --admin-username <USER NAME> --admin-password <PASSWORD> --assign-identity <USER ASSIGNED IDENTITY NAME> --role <ROLE> --scope <SUBSCRIPTION>
قم بتعيين هوية مُدارة يعينها المستخدم إلى Azure VM موجود
لتعيين هوية مخصصة للمستخدم إلى جهاز افتراضي، يحتاج حسابك إلى تعيينات الأدوار Virtual Machine Contributor وManaged Identity Operator. لا يلزم تعيينات دور دليل Microsoft Entra أخرى.
قم بإنشاء هوية يعينها المستخدم باستخدام az identity create. تحدد المعلمة
-g
مجموعة الموارد حيث يتم إنشاء الهوية المعينة من قبل المستخدم، وتحدد المعلمة-n
اسمها. تأكد من استبدال قيم المعلمات<RESOURCE GROUP>
و<USER ASSIGNED IDENTITY NAME>
بقيمك الخاصة:هام
لا يتم حالياً دعم إنشاء هويات مُدارة يحددها المستخدم بأحرف خاصة (مثل الشرطة السفلية) في الاسم. الرجاء استخدام الأحرف الأبجدية الرقمية. تحقق مرة أخرى من أجل التحديثات. لمزيد من المعلومات انظر الأسئلة الشائعة والمشكلات المعروفة
az identity create -g <RESOURCE GROUP> -n <USER ASSIGNED IDENTITY NAME>
تحتوي الاستجابة على تفاصيل عن الهوية المُدارة التي تم إنشاؤها بواسطة المستخدم، على غرار ما يلي.
{ "clientId": "73444643-8088-4d70-9532-c3a0fdc190fz", "clientSecretUrl": "https://control-westcentralus.identity.azure.net/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>/credentials?tid=5678&oid=9012&aid=73444643-8088-4d70-9532-c3a0fdc190fz", "id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>", "location": "westcentralus", "name": "<USER ASSIGNED IDENTITY NAME>", "principalId": "e5fdfdc1-ed84-4d48-8551-fe9fb9dedfll", "resourceGroup": "<RESOURCE GROUP>", "tags": {}, "tenantId": "733a8f0e-ec41-4e69-8ad8-971fc4b533bl", "type": "Microsoft.ManagedIdentity/userAssignedIdentities" }
قم بتعيين الهوية المعينة من قبل المستخدم لجهاز VM الخاص بك باستخدام az vm identity assign. تأكد من استبدال قيم معلمات
<RESOURCE GROUP>
و<VM NAME>
بقيمك الخاصة.<USER ASSIGNED IDENTITY NAME>
هي خاصية مورد الهوية المُدار التي عيّنها المستخدمname
، كما تم إنشاؤها في الخطوة السابقة. إذا قمت بإنشاء هوية مُدارة مخصصة للمستخدم في RG مختلف عن جهاز VM الخاص بك. سيتعين عليك استخدام عنوان URL الخاص بهويتك المدارة.az vm identity assign -g <RESOURCE GROUP> -n <VM NAME> --identities <USER ASSIGNED IDENTITY>
قم بإزالة الهوية المُدارة المعينة من قبل المستخدم من Azure VM
لإزالة الهوية تعيين المستخدم إلى VM، حسابك يحتاج الجهاز الظاهري مساهم تعيين الدور.
إذا كانت هذه هي الهوية المُدارة الوحيدة التي عيّنها المستخدم والمخصصة للجهاز الظاهري، فستتم إزالة UserAssigned
من قيمة نوع الهوية. تأكد من استبدال قيم معلمات <RESOURCE GROUP>
و<VM NAME>
بقيمك الخاصة. ستكون <USER ASSIGNED IDENTITY>
خاصية name
للهوية المعينة من قبل المستخدم، والتي يمكن العثور عليها في قسم الهوية بالجهاز الظاهري باستخدام az vm identity show
:
az vm identity remove -g <RESOURCE GROUP> -n <VM NAME> --identities <USER ASSIGNED IDENTITY>
إذا لم يكن جهاز VM الخاص بك يحتوي على هوية مُدارة معينة من قبل النظام وتريد إزالة جميع الهويات المعينة من قبل المستخدم منه، فاستخدم الأمر التالي:
إشعار
القيمة none
حساسة لحالة الأحرف. يجب أن تكون صغيرة.
az vm update -n myVM -g myResourceGroup --set identity.type="none" identity.userAssignedIdentities=null
إذا كان جهاز VM الخاص بك يحتوي على كل من الهويات المعينة من قبل النظام والمخصصة للمستخدم، فيمكنك إزالة جميع الهويات المعينة من قبل المستخدم عن طريق التبديل لاستخدام النظام المعين فقط. استخدم أمر التالي:
az vm update -n myVM -g myResourceGroup --set identity.type='SystemAssigned' identity.userAssignedIdentities=null
الخطوات التالية
- نظرة عامة على الهويات المُدارة لموارد Azure
- للحصول على التشغيل السريع الكامل لإنشاء جهاز Azure الظاهري، راجع: